/ WPUDKS 3.3 / .VERSION / / / / COPYRIGHT (C) 1980 / DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754 / / THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED / ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE / INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER / COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY / OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY / TRANSFERRED. / / THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE / AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT / CORPORATION. / / DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS / SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. / /++ / FACILITY: / / ABSTRACT: / / ENVIRONMENT: / / AUTHOR: CREATION DATE: / / MODIFIED BY: / / 039 EMcD 12-Sep-85 Add Nordic translations / 038 EMcD 28-Aug-85 Show insert_overstrike Key / 037 EMcD 13-JUl-85 Display FAO Gold Commands (conditional) / 036 AH 28-OCT-84 EXTENSION TO 035 / 035 AH 28-SEP-84 ADD CODE TO SAVE/RESTORE SYSTEM / VALUES ACROSS DIRECTORY READ/WRITES / 034 AH 17-AUG-84 CHANGE TEXT FOR ALT CHR DISPLAY / 033 AH 17-JUL-84 MORE OF ONE SCREEN; 20 LINES + 1 KEYSTR / 032 AH 13-JUL-84 SET UDK KEYSTROKE INPUT TO ONE SCREEN / 031 AH 12-JUL-84 ASSIGN NUMBER TO OLD EDITS / 030 AH 11-JUL-84 BELL ON ILLEGAL INPUT / 029 JAC 10-JUL-84 ALLOW DELETES AT END OF FULL UDKS / 028 AH 09-JUL-84 CHANGE TO LOAD FROM LOC 0 / 027 JAC 13-JUN-84 REFINEMENT OF BELOW / 026 JAC 12-JUN-84 FIX TO FULL UDK'S PROBLEMS / 025 JAC 08-JUN-84 MR. H'S FIX TO SQUEEZE ACROSS SECTORS / 024 JAC 30-MAY-84 ADAM'S FIX TO UNDEFINED UDK0 / 023 JAC 08-MAY-84 100 UDK DEVELOPMENT / 022 DKR 30-MAY-84 Changed "Tabcen" to "G-Tab" for when / Gold:Tab is entered / 021 EJL 08-may-84 added technical character / Removed all occurances of USERNO / 020 AH 21-MAR-84 ADDED CODE FOR COLUMN CUT / 019 WJY 03-FEB-84 DECmate I compatability. / 018 DMB 31-AUG-83 Added new key names for DM2V15 / 017 WCE 17-AUG-83 Removed code that generates CDF/CIF's / 016 TCW 19-MAY-83 CHANGE POSITION OF COMMAND KEY / 015 EPS 28-SEP-82 FIXED CODE MODIFIED IN 0014 / 014 EPS 23-SEP-82 FIXED CODE MODIFIED IN 0013 / 013 EPS 10-SEP-82 ADDED END OF TABLE CHECK / 012 EPS 09-SEP-82 ADDED HELP KEY FOR DECMATE II / 011 EH 30-SEP-81 Removed "MAIN" from message at CUDMS3 / 010 GDH 01-SEP-81 New Write-out code conventions. / 009 JM 01-SEP-81 Fixed GOLD CONT SRCH & SEL for ENGCAN / 008 TT 07-JUL-81 Removed superfluous conditionals / 007 DM,JM 15-SEP-80 Merged Scandi and Europe/English / 006 REG 12-AUG-80 ADDED THIS STANDARD HEADER / 005 CMW 06-AUG-80 MADE GRAMMATICAL DUTCH CHANGES / 004 DSS 09-JUL-80 MODIFIED FOR ENGLISH/FRENCH-CANADIAN / 003 CMW 06-MAY-80 ENTERED CANADA TRANSLATIONS / 002 DSS 17-APR-80 ENTERED DUTCH FIXES / 001 CMW GLT 01/10/80 ADDED FRENCH, DUTCH, GERMAN TRANSLATIONS / / Note: changes other than text translation / / must be performed on this module. CUDTAB / / must be modified to reflect any keyboard / / changes. (see CUDTAB). / / French diacritical substitutions: / / "&["=degree;"["=L.A.E, "]"=L.G.E; "&" not usable / / German diacritical substitutions: / / "["=L.U.A, "\"=L.U.O, "]"=L.U.U; "&" causes / / capitalization / 2.L-1 RLT 09/09/77 CHANGE OVERLAY LENGTH / 2.K-1 RLT 08/31/77 CHANGE TO ASSEMBLE PROPERLY / 2.G-1 MB PUT IN NEW OVERLAY TO HELP EDITOR / /-- / / WPUDKS - USER DEFINED KEYS / / ***** NOTE-- THE EDITOR LOADS THIS OVERLAY, AND KNOWS ITS LENGTH ***** / *200 JMP I .+3 JMP I .+1 7600 RXLOAD *RXLDLS RXEWT=4 RXEWT 0 RXQBLK=11 RXQBLK . DLOUDK / ++++ 000 / ++++ /C028 CDF 20 / ++++ -DSOUDK 0 /D017 / /D017 / THIS IS THE PATCH TO PAGE ZERO THAT WILL CONTAIN THE ROUTINES /D017 / THAT WILL TAKE CARE OF THE CDFS AND CIFS. /D017 / /D017 / CONSTANT USED TO FORM A CDF CIF CALL TO CIDPAT /D017 / /D017 CDIF00=CDF CIF /D017 / /D017 / THE USER FIELD CONSTANTS /D017 / /D017 USRFL0=-20 /D017 USRFL1=-10 /D017 USRFL2=0 /D017 / FIELD 2 / *100 / THE FIRST 100 LOCATIONS ARE USED FOR THE SYSTEM / /D017 CDIMNU=JMS . /D017 XX /D017 JMS CIDPAT / CALL THE ALL PURPOSE ROUTINE /D017 CDIF00+USRFL0 / FOR A CDF CIF MENU /D017 / /D017 CDFMNU=JMS . /D017 XX / THIS WILL CREATE A CDF FOR THE MENU FIELD /D017 JMS CIDPAT / CALL THE GENERAL ROUTINE THAT HANDLES ALL CDF OR CIFS /D017 CDF+USRFL0 / THE ARGUEMENT FOR CIDPAT /D017 / /D017 CIFMNU=JMS . /D017 XX / CREATE A CIF MENU FIELD /D017 JMS CIDPAT / RUOTINE THAT WILL CREATE THE INSRTUCTION /D017 CIF+USRFL0 /D017 / /D017 CDFMYF=JMS . /D017 XX / GENERATE A CDF INSTRUCTION FOR THIS FIELD /D017 JMS CIDPAT / ROUTINE THAT WILL CREATE THE INSTRUCTION /D017 CDF+USRFL2 / THIS FEILD IS USER FIELD ONE /D017 / /D017 CIDPAT, /D017 XX / THE ALL POURPOSE ROUTINE FOR THE INSTRUCTIONS /D017 DCA CIDTM1 / SAVE THE AC /D017 RAL / ++++ /D017 DCA CIDTM3 / SAVE LINK /D017 RIF / FIND OUT THE INSTRUCTION FIELD SO TO SET THE DATA /D017 / FIELD TO THE SAME /D017 TAD CDF0 /D017 DCA .+1 / STORE TO EXECUTE /D017 CIDTM2, /D017 XX / LOCATION LEFT FOR THE INSTRUCTION /D017 AC7776 / NOW GET THE ADDRESS OF THE CALLER /D017 TAD CIDPAT / SUBTRACTING THE 2 GETS YOU TO THE ADDRESS /D017 DCA CIDTM2 /D017 AC7777 /D017 TAD I CIDTM2 / GET THE ADDRESS OF THE CALLER FROM THE PROGRAM /D017 DCA CIDTM2 / STORE IT SO A RETURN CAN BE MADE FROM THE /D017 / INTERNAL ROUTINE /D017 RIF /D017 TAD I CIDPAT / GET AND STORE THE GENERATED INSTRUCTION /D017 DCA I CIDTM2 /D017 TAD CIDTM3 / ++++ /D017 CLL RAR / RESTORE LINK /D017 TAD CIDTM1 / GET THE OLD CONTENTS OF THE AC /D017 JMP I CIDTM2 / JUMP TO THE INSTRUCTION NOW CREATED /D017 / /D017 CIDTM1, /D017 0 /D017 CIDTM3, 0 / NOW TO USE SOME OF THE SPACE SAVED ON PAGE 0 TO REMOVE SOME /A024 / INDIRECTS AND MAKE ROOM FOR SOME MORE CODE /A024 CUDILX, CUDILM / CHECK FOR INPUT BUFFER OUT OF ROOM /A024 CUDFMX, CUDFMS / HANDLE OUT OF ROOM /A024 CUDSTX, CUDSTR / STORE KEYSTROKE IN UDK /A024 CURWUX, CURWUD / READ/WRITE UDK BLOCK /A024 CUDCOX, CUDCOD / DECODE UDK DIRECTORY ENTRY /A024 CURWDX, CURWDI / READ/WRITE UDK DIRECTORY /A024 CUDXBC, CUDXBF / BUFFER ADDRESS /A024 CUDREX, CUDRET / PROGRAM EXIT /A026 CUDPOX, CUDPOS / POSITION CURSOR /A026 CUDOUX, CUDOUT / OUTPUT CHARACTER TO SCREEN /A026 CUDP7, 7 / CONSTANT /A026 CUDSLX, CUDSLM / CHECK FOR ROOM IN OUTPUT BUFFER /A027 CUDGCX, CUDGCR / GET USER INPUT FROM KEYBOARD /A031 CUDIMX, CUDIMV / MOVE FROM PLACE TO PLACE /A031 CUM120, -120 / CHARACTERS ON LINE /A031 BUFEND, CUDBUF+CUBFSZ-1 / END OF BUFFER 1 /A033 XBFEND, CUDXBF+CUBFSZ-1 / END OF BUFFER 2 /A033 MDLUM1, -DLUDKS-1 / -START BLOCK -1 /A033 DLUDP1, DLUDKS+1 / START BLOCK + 1 /A033 DLUDM1, DLUDKS-1 / START BLOCK -1 /A033 DLUCUN, DLUDKS+CUNBLK / START BLOCK + NUMBER OF BLOCKS /A033 DECIMAL /A032 /D033 MSCRCT, -1600 / NUMBER OF CHARACTERS DISPLAYED /A032 MLINCT, -19 / NUMBER OF LINES /A033 OCTAL /A032 CUDFMY, CUDFMM / POINTER TO A MESSAGE DISPLAY /A032 CUDDSX, CUDDSP / POINTER TO KEYSTROKE DISPLAY /A032 CUDDIX, CUDDIS / POINTER TO UDK DISPLAY /A032 CNTSCX, CNTSCR / TEST NUMBER OF CHARS. ON SCREEN /A032 CUDCLX, CUDCL0 / CLOSE UDK /A033 CUDDGX, CUDDG0 / ACCEPT AND SCAN KEYBOARD INPUT /A033 CUDK4, CUUDF1 / POINTER; MOVED FOR ROOM /A035 / THE FOLLOWING ARE MOVED HERE FROM PAGE 2 /M024 6 LINES CUDIPT, 0 / ADDRESS OF UDK DIRECTORY SLOT CUUDKB, 0 / STARTING BLOCK CUUDKW, 0 CUUDKY, 0 / RELATIVE ADDRESS OF FIRST WORD OF UDK CUUDKD, 0 / USED ELSEWHERE AS WORKING POINTER CUUDKC, 0 / STARTING BLOCK / END M024 CUDRUB, 0 / VALUE FOR RUBOUT /M033 CUDNRB, 0 / NEGATIVE RUBOUT TO RESTORE VALUE /M033 CUDLIN, 0 / COUNTER FOR CUM120 /A031 LINCNT, 0 / COUNTER FOR NUMBER OF CHARS. /A032 CUGASW, 1 / MOVED FROM PAGE 3 /M024 / ......... A035 ......... / PLACE FOR SYSTEM VERSION, GENERATION DATE, OTHER VALUES / VALUES PLACED IN BLOCK "DLUDKS" IN SOURCE "WPUDKD" CUDP3, 3 / CONSTANT, MASK CUFUNC, 0 / TEMP STORE FOR DISK FUNCTION UDSYNM=14 / NUMBER OF PARAMETERS SAVED /A036 UDSYDA, ZBLOCK UDSYNM / EDITOR RULERS DLRLRE /A036 / PRINTER SETTINGS DLRLRP /A036 / SYSTEM PARAMETERS DLSVAL /A036 / START OF UDK DEFINITIONS DLUDKD /A036 / SYSTEM VERSION #; 8 BIT ASCII; 3 WORDS SYSVER / BASE LEVEL SYSBAS / REV. LEVEL SYSREV / BUILD DAY BLDDY / MONTH BLDMO / YEAR BLDYR / "UD" UDK DIRECTORY BLOCK IDENTFIER, WORD 1 CURWAA, 0 CUDILA, 0 / "K"0 WORD 2 ENDCOD=. / ........ END A035 .......... PAGE CDFMYF=CDFBUF / INSTRUCTION TO RETURN TO THIS FIELD /A017 CUDBUF=UDKSTR / THE BUFFER IS AT THE SAME ADDRESS AS IN THE / MENU FIELD / CUUDKR, XX / CUUDDF - DEFINE USER KEYS CLA RDF TAD CIDF0 DCA CUUDKX CDFMYF JMS CUUDDF CUUDKX, XX JMP I CUUDKR CURWDI, XX / POINTED TO BY CURWDX /C024 DCA QUQBLK+RXQDRV / SET DRIVE /C027 RDF TAD CDF0 DCA QUQBLK+RXQBFD / SET CDF TAD I CURWDI / FUNCTION DCA QUQBLK+RXQFNC / .......... A035 ............. / RESTORE VALUES BEFORE DIRECTORY WRITE TAD QUQBLK+RXQFNC / GET FUNCTION DCA CUFUNC / SAVE THE REQUESTED FUNCTION BECAUSE I DON'T / KNOW IF THE PARAMETER BLOCK IS INVIOLATE TAD CUFUNC / TEST FOR WRITE AND CUDP3 / 3=READ; (2)004=WRITE SZA CLA / SKIP IF WRITE JMP CURWYY / IS READ JMS I CUDIMX / MOVE VALUES TO BUFFER FOR WRITE CUDBUF+CUBFSZ-UDSYNM / DESTINATION /C036 UDSYDA / SOURCE -UDSYNM / COUNT /C036 CURWYY, / ........ END A035 ......... TAD (CUDBUF DCA QUQBLK+RXQBAD TAD (DLUDKS DCA QUQBLK+RXQBLK JMS QURX / WRITE OUT NEW UDK BLOCK CLA / ............ A035 ............... TAD CUFUNC / TEST ROR READ AND CUDP3 SNA CLA / 3=READ JMP CURWZZ / NOT READ JMS I CUDIMX / MOVE VALUES FROM BUFFER TO SAVE UDSYDA / DESTINATION CUDBUF+CUBFSZ-UDSYNM / SOURCE /C036 -UDSYNM / COUNT /C036 CURWZZ, /........... END A035 ........... ISZ CURWDI JMP I CURWDI QURX, XX CLA CIFSYS / ++++ ENQUE / ++++ QUBLK CIFSYS / ++++ JWAIT TAD QUQBLK+RXQCOD SNA / ++++ JMP .-4 JMP I QURX / QUBLK, DSKQUE / ++++ 0 / ++++ 0 QUQBLK, ZBLOCK 17 / /D023 PAGE CUDPTR= X0 CUDCUR= X1 CUDNXT= X2 / /D023 CDFUDK=CDFMNU / CUUDDF, 0 / THIS ROUTINE ACCEPTS CHARACTERS FROM THE / KEYBOARD AND STORES THEM IN THE UDK / SPECIFIED BY THE NUMBER IN MNTMP1. / TAD MNUCAL+1 / GET UDK TO MODIFY FROM THE MENU TAD (MNTMP1 DCA T1 CDFMNU TAD I T1 CDFMYF DCA CUDNUM / SAVE UDK NUMBER AC7777 / TURN OFF UDK'S CIFSYS / ++++ UDKOPS CIFMNU / JMS I IOACAL / Definition of user key #. Press gold halt to 0 / default output routine CUDMS1 / string address 0 / Cursor position IFNDEF FRENCH < IFNDEF CANADA < 10 / Cursor position (not in french or canada) >> CUDNUM, 0 / UDK number IFDEF V30NOR < CUTRYK > / /D033 TAD CUDNUM / UDK NO. /C023 /D033 TAD (CUDBUF / /C023 /D033 DCA CUDADR TAD CUDNUM / FIGURE OUT VALUE FOR RUBOUT CIA TAD (-EDUDK0 DCA CUDRUB / AND SAVE IT TAD CUDRUB / NOW GET NEG. RUBOUT VALUE CIA DCA CUDNRB / AND SAVE IT ALSO JMS I CURWDX /READ UDK DIRECTORY (CURWDI) /C024 RXERD TAD CUDNUM / CONSTRUCT ADDRESS OF DIRECTORY ENTRY TAD (CUDBUF DCA CUDIPT TAD CUDIPT / SAVE FOR INDIRECT USE DCA T3 IAC / SET HERE IN CASE CLEARED BY "CUUNDF" DCA CUGASW / AND PROGRAM NOT RELOADED TAD I T3 / GET ADDRESS OF UDK FROM DIRECTORY SZA CLA / IS THE UDK DEFINED JMP CUDK1 / YES, DO DECODE AND SQUEEZE JMS CUUNDF / NO, FIND LAST UDK; NO RETURN IF NO ROOM/C027 JMP CUDK2 CUDK1, JMS I CUDCOX / DECODE DIRECTORY ENTRY (CUDCOD) /C024 TAD CUUDKY / SET UP POINTER TO INPUT BUFFER TAD CUDXBC / (CUDXBF /C024 DCA CUDPTR CUDK2, JMS I CURWUX / READ THE FIRST BLOCK OF THE UDK(CURWUD) /C024 RXERD CUDXBF CUUDKC /D031 JMS CUUDF1 / CONTINUATION OF CODE JMP I CUDK4 / CONTINUATION OF CODE /A031 CUDRET, / PROGRAM EXIT /M031 CIFSYS / ENABLE UDK'S /M031 UDKOPS /M031 JMP I CUUDDF / DONE /D035 CUDK4, CUUDF1 / MOVED TO PAGE 0 FOR ROOM /A031 PAGE CUUDF1, /D031 XX JMS I CUDDIX / SHOW USER THE UDK DEFINITION /C032 CUDINP, JMS I CUDDGX / GET FIRST CHAR /C023 /C033 JMP I CUDREX / HLT SET, JUST RETURN /C031 JMP CUDINP / ILLEGAL INPUT - NOT DIG, (DIG), RET /A030 DCA CUDCHR / SAVE CHAR TAD CUDCHR / GET CHAR BACK TAD CUDRUB / AND MAKE SURE IT WASN'T A RUBOUT SZA CLA JMP CUDIN2 / NOT, KEEP GOING TAD CUDP7 / WAS, RING THE BELL (WAS TAD (7 ) /C026 JMS I CUDOUX / DING-DONG AVON CALLING (CUDOUT) /C026 JMP CUDINP / AND LOOK FOR SOMETHING BETTER / CUDIN2, JMS CUDIN3 / DISPLAY HEADER /A032 TAD CUGASW / SQUEEZE ONLY IF WE ARE ACCESSING AN /A023 SZA CLA / EXISTING UDK; OTHERWISE WE ARE AT THE /A023 / RIGHT PLACE TO START INSERTING /A023 JMS CUDGAR / SQUEEZE /BACK FROM MOVING ALL THE UDK'S. /CUUDKB CONTAINS FIRST BLOCK OF THIS UDK /CUUDKY CONTAINS RELATIVE WORD / /READ BLOCK CONTAINED IN CUUDKB INTO CUDBUF /SET UP CUDPTR USING CONTENTS OF CUUDKY /STORE UDK # & WE ARE READY TO STORE INPUT / JMS I CURWUX / READ A BLOCK (CURWUD) /C024 RXERD CUDXBF CUUDKB TAD CUUDKB / REFERENCE POINTER DCA CUUDKD / WORKING CLA CMA / SET UP POINTER TAD CUUDKY TAD CUDXBC / (CUDXBF /C024 DCA CUDPTR JMS I CUDSLX / CHECK BUFFER BOUNDRIES /A033 NOP / STORAGE CANNOT BE FULL / TESTED IN UNDEFINED UDK OR / DEFINED UDK HAS BEEN DELETED TAD CUDNUM / OK; ENCODE & STORE UDK NUMBER TAD (CUUDID JMS I CUDSTX / (CUDSTR) /C024 /D033 JMP CUNORM / STORAGE FULL; SHOULD NOT GET HERE /C027 / FULL STORAGE WITH UNDEFINED UDK /C027 / TAKEN CARE OF IN (CUUNDF) /C027 / JMP I CUDFMX / NO ROOM, QUIT (CUDFMS) /C024 /D026 / DCA I CUDPTR /D023 /D031 TAD (-120 / RESET LINE CHAR COUNT TAD CUM120 / RESET LINE COUNT /A031 DCA CUDLIN TAD MLINCT / NUMBER OF LINES TO DISPLAY /A033 DCA LINCNT JMS I CUDSLX / TEST FOR BUFFER FULL BEFORE STORE /A033 NOP /A033 TAD CUDCHR / GET CHAR BACK JMP CUDIN1 / AND STORE IT CUDIN4, /A033 JMS I CUDSLX / TEST FOR BUFEER AND STORAGE FULL /A033 JMP I CUDFMX / STORAGE FULL /A033 TAD LINCNT / TEST FOR FULL SCREEN /A033 SNA CLA /A033 JMP I CNTSCX / SCREEN FULL; LOOK FOR R.O. OR G-HALT /A033 CUDINL, JMS I CUDDGX / GET A CHAR /C023 /C033 JMP I CUDCLX / HALT SET, ALL DONE /C023 /C033 JMP CUDINL / ILLEGAL INPUT /A030 TAD CUDRUB / CHECK IF RUBOUT ? SNA JMP CUDRUT / YES, REMOVE LAST CHAR TAD CUDNRB / NO, GET CHAR BACK CUDIN1, /D033 JMS I CUDSLX / SEE IF ROOM, NEEDED WHEN IN LAST BLOCK/A027 /D033 / CHAR IN AC IN, & OUT IF OK TO STORE /A027 /D033 JMP I CUDFMX / NO ROOM, AC = 0 /A027 /D032 JMS CUDDSP / DISPLAY CHAR; ABLE TO STORE /C027 /D033 JMS I CNTSCX / COUNT CHARS. ON SCREEN /A032 JMS I CUDDSX / DISPLAY KEYSTROKE; ABLE TO STORE /A032 / EXCEPT IF SCREEN FULL /A032 JMP CUDINL / JUMP IF CHARACTER IGNORED /A015 JMS I CUDSTX / STORE CHAR (CUDSTR) /C024 /D033 JMP I CUDFMX / NO MORE ROOM (CUDFMS) /C024 TAD CUUDKD / KEEP POINTERS IN SYNC /A023 DCA CUUDKC /A023 /D033 JMP CUDINL / ALL O.K., KEEP GOING JMP CUDIN4 / SEE IF ROOM BEFORE NEXT KEYSTROKE /A033 / /M031 CUDRET, CIFSYS / ++++ /M031 UDKOPS / TURN UDK'S BACK ON /M031 JMP I CUUDF1 / AND RETURN /C023 CUDCHR, 0 /A023 /D033 CUDRUB, 0 /A023 /D033 CUDNRB, 0 /A023 /D033 CUDADR, 0 /A023 /D033 CUDSWT, 0 /A023 / /RUBOUT OUT A CHARACTER /WATCH OUT FOR UDK BEGINNING, BUFFER BOUNDRY, BLOCK HANDLING /CUUDKB: STARTING BLOCK; CUUDKY: STARTING WORD CUDRUT, JMS CUDRU0 / CHECK FOR END OF BUFFER, ADJUST POINTERS TAD CUDNUM TAD (CUUDID CIA TAD I T1 SNA CLA / IS CURRENT CHARACTER THE UDK ID? JMP CUDRBL / YES, SET SWITCH DCA I T1 / COMMAND; LEGAL TO REMOVE CHARACTER CMA TAD T1 / BACK UP POINTER DCA CUDPTR JMS I CURWUX / WRITE THE ALTERED BLOCK (CURWUD) /C024 RXEWT+2000 CUDXBF CUUDKD JMS I CURWUX / SET UP TO REPAINT THE SCREEN (CURWUD) /C024 RXERD CUDXBF CUUDKB TAD CUUDKY / SET POINTER TO FIRST WORD TAD CUDXBC / (CUDXBF /C024 DCA CUDPTR TAD CUUDKB / RESET BLOCK POINTER DCA CUUDKC JMS CUDIN3 / DISPLAY HEADER /A032 JMS I CUDDIX / DISPLAY UDK /C032 TAD CUUDKC / KEEP POINTERS IN SYNC. DCA CUUDKD JMP CUDRU9 CUDRBL, TAD CUDP7 / MOURNING BELLS ARE RINGING (WAS (7 ) /C026 JMS I CUDOUX / (CUDOUT) /C026 CUDRU9, /D033 JMP CUDINL / TRY SOMETHING ELSE /C023 JMP CUDIN4 /A033 CUNORM, /A026 CIFMNU /A026 JMS I IOACAL /A026 CUDMSC, 0 /A026 /C033 /D033 CUDMS8 /^ANO ROOM --- ^A^S /A026 CUDMS3 / ^A UDK ... GOLD MENU ... ^S^S /A033 CUDMSA /CR,LF,LF /A026 /D033 CUDMSB /CR,LF /A026 IFDEF V30NOR < CUTRYK /A039 CUNUL /A039 > CUDMS7 /PRESS GOLD MENU ... /A026 CUDMSC / DUMMY ARG TO FILL CUDMS3 /A033 JMS I CUDPOX / POSITION CURSOR /A026 CUNOR1, /A026 JMS I CUDGCX / GET G. M. /A026 JMP CUNOR2 / GOLD HALT; NOT LEGAL /A026 TAD (-EDMENU /A026 SNA CLA /A026 JMP I CUDREX / (CUDRET) FOUND G.M., EXIT /A026 CUNOR2, /A026 TAD CUDP7 / (7 ;BELL /A026 JMS I CUDOUX / (CUDOUT) /A026 CLA /A031 CDFSYS / CLEAR HALT SWITCH SO NEXT /A031 DCA I HLTFLG / CALL TO READ DOESN'T FIND IT /A031 / CHAR GET ROUTINE RESETS DATA FIELD JMP CUNOR1 / TRY AGAIN /A026 / ************* M032 ************ / ****** MADE SUBROUTINE AND MOVED FROM "CUDIN2" ****** CUDIN3, 0 CIFMNU JMS I IOACAL / Modifying user key #. Press Gold HALT to 0 / default output routine CUDMS2 / string address 0 / cursor position IFNDEF FRENCH < IFNDEF CANADA < 10 / cursor position (not in french or canada) >> CUDNUM / UDK number /D033 100 / cursor position IFDEF V30NOR < CUTRYK > 200 JMP I CUDIN3 / *********** M032 *********** PAGE CUDCL0, / SET UP TO CLOSE UDK JMS I CURWDX / READ DIRECTORY (CURWDI) /C024 RXERD TAD CUDPTR / SAVE CURRENT ADDRESS DCA T3 TAD CUDNUM / CONSTRUCT DIRECTORY ADDRESS TAD CUDGBB / ADDRESS OF CUDBUF DCA T1 TAD CUDNUM / TEST FOR ID TAD (CUUDID CIA TAD I T3 SZA CLA / IF ID THEN NULL UDK JMP CUDCLS / NOT NULL, NORMAL EXIT DCA I T3 / NULL, CLEAR ID HERE JMP CUDCL1 / CLEAR DIRECTORY ENTRY /C033 CUDCLS, /D033 TAD (-DLUDKS-1 / CONSTRUCT DIRECTORY ENTRY TAD MDLUM1 / -DLUDKS-1; /A033 TAD CUUDKB BSW CLL RTL DCA I T1 / BLOCK PART OF ADDRESS TAD CUUDKY TAD I T1 CUDCL1, /C033 DCA I T1 / RELATIVE WORD PART OF ADDRESS JMS I CURWDX / WRITE THE DIRECTORY (CURWDI) /C024 RXEWT+2000 JMS I CURWUX / WRITE THE CURRENT BUFFER (CURWUD) /C024 RXEWT+2000 CUDXBF CUUDKD JMP I CUDREX / (CUDRET) /C026 / CUDFMS MOVED FROM HERE TO A COUPLE OF PAGES HENCE /M023 / / / CUDDIS / THIS ROUTINE DISPLAYS THE UDK POINTED TO BY CUDADR / ON THE SCREEN STARTING FROM LINE 2. ON RETURN, IT LEAVES / THE AC ZERO AND CUDPTR POINTING TO THE END (FINAL 0) OF / THE UDK. / CUDDIS, 0 CIFMNU JMS I IOACAL / Clear from the second line to EOS 0 / Using default output routine CUDMS5 / String to clear screen 100 / cursor position 200 / cursor position /C033 / /D031 TAD (-120 / RESET LINE CHAR COUNT TAD CUM120 / RESET LINE COUNT /A031 DCA CUDLIN TAD MLINCT /A033 DCA LINCNT / CLEAR CHAR COUNTER /A032 JMP CUDDI2 / TEST FOR END OF STORAGE FIRST /A023 CUDDI1, TAD I CUDPTR / GET A CHAR SNA / END OF UDK STRING ? JMP CUDDID / YES, GO CHECK INPUT JMS I CUDDSX / NO, DISPLAY CHAR /C032 NOP /FILLER /A015 CLA CUDDI2, JMS I CUDILX / CHECK FOR BUFFER & BLOCK END (CUDILM) /C024 /D033 JMP CUDDID / OUT OF DATA /A023 NOP / CAN'T BE OUT OF DATA /A033 JMP CUDDI1 / AND BACK FOR MORE / CUDDID, AC7777 / SET CUDPTR BACK ONE TAD CUDPTR / SO THAT NEXT STORE WILL OVERWRITE DCA CUDPTR / TRAILING ZERO JMP I CUDDIS / RETURN / / CUDGAR / THIS ROUTINE TAKES THE UDK POINTED TO BY CUDADR / DELETES IT, MOVE ALL FOLLOWING UDK'S DOWN, AND / RETURNS THE NEW VALUE TO START STORING THIS UDK. / CALLED WITH: / JMS CUDGAR / RETURN (AC=0) / CUDGAR, 0 JMS I CURWDX /CLEAR DIRECT'Y ENTRY IN CASE THIS(CURWDI)/C024 RXERD / IS THE LAST UDK IN STORAGE JMS I CUDIMX / MOVE DIRECTORY TO BUFFER /A031 CUDIBB, DIRBUF / DESTINATION /A031 CUDBUF / SOURCE /A031 -CUUDNM / COUNT /A035 TAD CUDNUM /D031 TAD CUDGBB / ADDRESS OF CUDBUF TAD CUDIBB / ADDRESS OF BUFFER /A031 DCA T1 / CORE ADDRESS OF ENTRY DCA I T1 / CLEAR THE UDK ADDRESS /D031 JMS I CURWDX / WRITE THE DIRECTORY (CURWDI) /C024 /D031 RXEWT+2000 JMS CUDG01 / SET UP AND READ UDK BLOCK CUDG20, TAD CUDCUR / SET UP ZERO UDK WE ARE DELETING DCA CUDNXT / WE NEED TO DO THIS BECAUSE WE MAY SET / "CUDCUR" IN "CUDOLM" TAD I CUDCUR / GET A KEYSTROKE SNA CLA / TEST FOR END JMP CUDG21 / FOUND END OF UDK DCA I CUDNXT / NOT END, CLEAR KEYSTROKE JMS CUDOLM / BE CAREFUL ABOUT END OF STORAGE JMP CUDG20 / DO ANOTHER CUDG21, JMS CUDG01 / SET POINTERS AND READ BLOCK / WE GOT HERE AFTER DISPLAY OF UDK & A LEGAL KEYSTROKE / SO WE ARE GOING TO OVERWRITE UDK JUST DISPLAYED BY / MOVING EVERY THING ELSE UP. ASSUME NO HOLES, AND IF / NEXT CHAR FROM UDK IS NOT ID THERE ARE NO MORE UDK'S. /D031JMS I CUDILX /HAVE WE REACHED THE END OF INPUT?(CUDILM)/C024 /D031NOP / WE CANNOT BE AT END OF STORAGE /D031 / BECAUSE OF INPUT ALGORITHM ISZ CUDPTR / POINTER DECREMENTED AT END OF DISPLAY / SO ADJUST HERE JMS I CUDILX / IS THE INPUT BUFFER NOW EMPTY? /A031 NOP / CANNOT BE END OF STORAGE, /A031 / SO IGNORE OUT-OF-DATA RETURN /A031 CUDG05, TAD I CUDPTR / THERE IS AT LEAST ONE MORE CHARACTER. DCA CUDKNM / SAVE THE UDK # TAD CUDKNM / CHECK FOR UDK ID TAD (-CUUDID SPA JMP CUDG90 / NOT AN ID WHERE WE EXPECTED ONE, END TAD (-CUUDNM SMA CLA JMP CUDG90 / NOT AN ID, END JMS CUDOLM / CHECK FOR END OF BUFFER /A031 TAD CUDKNM / NOW WE CAN MOVE THIS UDK. DCA I CUDCUR / MOVES UDK # TO OUTPUT CUDG10, JMS CUDOLM / CHECK FOR ROOM IN OUTPUT BUFFER JMS I CUDILX / TEST FOR END OF INPUT BUFFER (CUDILM) /M025 NOP / INPUT CANNOT END W/O TERMINATING 0 /M025 TAD I CUDPTR DCA T1 / SAVE BECAUSE MIGHT BE TERMINATING 0 TAD T1 DCA I CUDCUR / AND STUFF IT TAD T1 SNA CLA JMP CUDG80 / FOUND END OF UDK / NEXT TWO LINES MOVED BACK 7 LINES /D025 JMS I CUDILX / TEST FOR END OF INPUT BUFFER (CUDILM) /C024 /D025 NOP / INPUT CANNOT END W/O TERMINATING 0 JMP CUDG10 CUDKNM, 0 CUDG01, / PART OF ZERO UDK 0 CLA CMA / SET UP POINTER TAD CUUDKY TAD CUDGBB / ADDRESS OF CUDBUF DCA CUDCUR TAD CUUDKB / SET UP WORKING BLOCK DCA CUUDKD JMS I CURWUX / READ UDK BLOCK (CURWUD) /C024 RXERD CUDGBB, CUDBUF CUUDKB JMP I CUDG01 PAGE / / CUDDSP / Display the character contained in the AC on the screen. Print the names / of the GOLD sequences, if there are names. If the name will not fit on the / line then go to the next line on the screen. / / If character to be displayed is negative (a WPKBDA character) /A013 / and beyond EDUKND, it will not be displayed or stored. /A013 / ROUTINE WILL EXIT TO CALL+1 IF CHARACTER IS NOT DISPLAYABLE /A015 / ROUTINE WILL EXIT TO CALL+2 IF CHARACTER IS DISPLAYABLE (AND STORABLE)/A015 CUDDSP, 0 DCA T1 / Save the character in the AC in a temporary TAD T1 / Get it back in AC TAD (-40 / Encode it for comparisons later DCA T2 / SAVE IT LIKE THIS TAD T2 / Get it back into AC SPA SNA / Is it a printable character? JMP CUDDS3 / No. SPECIAL CHAR: GO DISPLAY by name / Yes. Print it in UDK format... AC0001 JMS CUDLCK / SEE IF ROOM FOR ONE CHAR TAD T1 / Get the raw character JMS CUDIOT / Print it CUDDS2, TAD (40 / and print a trailing space JMS CUDIOT TAD T1 / Put the raw character back into AC ISZ CUDDSP /BUMP RETURN ADDRESS /A015 JMP I CUDDSP / and return to caller / / Special character printing code. Print the name of the sequence on the / screen. / CUDDS3, AC0006 / SEE IF ROOM FOR 6 CHARS on this line IFDEF SCANDI < IAC / check for 7 characters, if Scandinavian > IFDEF FRENCH < TAD (2 / check for 8 characters, if french > IFDEF GERMAN < TAD (2 / or German > JMS CUDLCK TAD T2 / Get the encoded character SZA / Is it a space? TAD (40 / Yes: decode it. CIA / Make encoded characters positive values. TAD (EDUKND /CHECK /A013 SMA SZA /FOR /A013 JMP CUDDS6 /BEYOND END OF TABLE, IF SO JUMP /A013 TAD (-EDUKND /RESTORE CODE /A013 JMS CUDSS0 / SPECIAL DISPLAY FOR UDK /A023 JMP CUDDS2 / UDK DISPLAYED /A023 CLL RAL / Multiply by two to skip table parameters. TAD (CUDTAB / Get beginning of table DCA T2 / Store the table pointer TAD I T2 / Get the character description DCA CUDDS4 / Install it in the IOA call TAD T2 / Get the table pointer again IAC / Increment it to point to the table parameter DCA CUDDS5 / Install pointer in IOA call TAD I CUDDS5 / Get the argument pointed to. SNA CLA / Is there one? DCA CUDDS5 / No, clear the argument parameter. CIFMNU JMS I IOACAL / Print the character name CUDIOT / Using the special I/O routine CUDDS4, XX / Description text CUDDS5, XX / Argument (if any--0000 if none.) JMP CUDDS2 / return to the subroutine mainline CUDDS6, CLA /CLEAR AC /A013 /D0014 ISZ CUDDSP /BUMP RETURN ADDRESS TO SKIP STORE /A013 JMP I CUDDSP /EXIT, GRACEFULLY /A013 / CUDLCK, 0 / CHECKS THE LINE COUNT TO SEE IF THERE / IS ENOUGH ROOM FOR THE NEXT GROUP OF CHARS. / SIZE OF THE GROUP IS IN THE AC, WHEN CALLED. / TAD CUDLIN / ADD IN LINE COUNT SMA CLA / SEE IF OVERFLOWED ? JMP CUDLC1 / YES, GIVE CR-LF, ETC. JMP I CUDLCK / NO, RETURN / CUDLC1, / TEST FOR LAST LINE /A032 TAD (15 / CR JMS I CUDOUX / (CUDOUT) /C026 TAD (12 / LF JMS I CUDOUX / (CUDOUT) /C026 /D031 TAD (-120 / RESET COUNTER TAD CUM120 /A031 DCA CUDLIN ISZ LINCNT / BUMP NUMBER OF LINES ON SCREEN /A033 NOP / ALL WE ARE DOING IS BUMPING THE / COUNTER; IT IS TESTED AT "CUDIN4" JMP I CUDLCK / AND RETURN / /D031 CUDLIN, -120 / CROSS-FEILD CALLABLE ROUTINE THAT INCREMENTS THE / NUMBER OF CHARS ON A LINE COUNT AND DISPLAYS THE CHAR / IN THE AC ON THE SCREEN USING CUDOUT. IT DOESN'T DISPLAY THE CHAR / IF THE CHAR COUNT (CUDLIN) GOES TO ZERO. CUDIOT, 0 DCA T2 / SAVE CHAR FOR A WHILE RDF TAD CIDF0 / MAKE CDF CIF DCA CUDIOR CDFMYF / MAKE SURE WE'RE IN THE RIGHT PLACE TAD T2 / GET CHAR BACK SNA / SEE IF END OF IOA STRING ? JMP CUDIOR / YES, RETURN ISZ CUDLIN / SEE IF END OF LINE REACHED JMS I CUDOUX / NO, DISPLAY CHAR /D033 JMS CUDIO1 / COUNT CHARS DISPLAYED /A032 CLA / YES, DON'T DISPLAY AND CLEAR AC CUDIOR, .-. JMP I CUDIOT / RETURN /D033 CUDIO1, / COUNT CHARS SENT TO SCREEN /A032 /D033 0 /A032 /D033 ISZ LINCNT /A032 /D033 JMS I CUDOUX /A032 /D033 JMP I CUDIO1 /A032 CUDGCR, 0 / THIS ROUTINE CHECKS THE KEYBOARD FOR INPUT. / IT NORMALLY RETURNS WITH THE NEXT INPUT CHARACTER / IN THE AC. / CALLED WITH: / JMS CUDGCR / HALT FLAG SET RETURN (AC=0) / REGULAR RETURN (AC CONTAINS CHARACTER) / JMP CUDGC2 / DON'T JWAIT YET CUDGC1, CIFSYS / ++++ JWAIT CUDGC2, CDFSYS TAD I HLTFLG / CHECK HALT FLAG CDFMYF SZA CLA JMP I CUDGCR / SET, JUST RETURN CIFSYS / ++++ XLTIN / ++++ JMP CUDGC1 / CHECK KEYBOARD TAD (-EDPWFL / SEE IF POWER FAIL SNA JMP I CUDGCR / YES, PRETEND IT'S A HALT TAD (EDPWFL / NO, GET CHAR BACK ISZ CUDGCR / AND RETURN WITH CHAR JMP I CUDGCR / CUDSTR / STORE A CHARACTER AWAY IN A UDK / CALLED WITH CHAR TO STORE IN AC: / JMS CUDSTR OR JMS I CUDSTX /C024 / NO MORE ROOM RETURN (AC=0) / REGULAR RETURN (AC=0) / CUDSTR, 0 / POINTED TO BY CUDSTX /C024 /D015 SNA /CHARACTER TO STORE? /A0014 /D015 JMP CUDST1 /NO, SKIP STORAGE STUFF /A0014 /D033 JMS I CUDSLX / ROOM FOR TWO CHARACTERS?(CUDSLM)/C027 /D033 JMP CUDST1 / NO DCA I CUDPTR / STORE CHAR JMS I CUDSLX / (CUDSLM) TO GET NEXT BUFFER /C027 NOP IAC TAD CUDPTR / GOING TO INSERT TERMINATING 0 DCA T1 DCA I T1 /D033 ISZ CUDSTR /M0014 JMP I CUDSTR / YES, RETURN / / Substring to cut down on message sizes for CUDMS6,7,1 and 2 /A039 / / IFDEF V30NOR < CUTRYK, TEXT ' &TRYKK P\E &GULL ' /Press Gold.. /A039 CUEL, TEXT '!&EL.' /Or /A039 CUNUL, TEXT ' ' / Dummy for CUDMS7 /A039 > /---------------------------- PAGE / CHECK FOR FULL OUTPUT BUFFER (CUDBUF) / BECAUSE WE ARE DELETING A UDK / WE CAN NEVER RUN OUT OF BLOCKS CUDOLM, XX TAD CUDCUR / CONTAINS ADDR OF LAST CHAR STORED CIA /D033 TAD (CUDBUF+CUBFSZ-1 TAD BUFEND / ADDRESS OF END OF BUFFER 1 /A033 SZA CLA JMP CUDOL9 / STILL ROOM, EXIT JMS I CURWUX / FULL, WRITE BLOCK (CURWUD) /C024 RXEWT+2000 CUDBUF CUUDKD ISZ CUUDKD / BUMP TO NEXT BLOCK TAD (CUDBUF-1 DCA CUDCUR / RESET POINTER CUDOL9, JMP I CUDOLM / CHECK FOR FULL INPUT BUFFER (CUDBUF+400) / CALL+1: OUT OF DATA; CALL+2: CONTINUE / IF FROM "CUUNDF" (UNDEFINED), AC = -3; ELSE AC = 0; USED IN LAST BLOCK CUDILM, XX DCA CUDILA / SAVE CHAR. COUNT FOR END CONDITION /A033 / SET = -2 BY UNDEFINED; ELSE = 0 /A033 TAD CUUDKC / CURRENT BLOCK IN CORE /M033 CIA /M033 /D033 TAD (DLUDKS+CUNBLK / LAST BLOCK /M033 TAD DLUCUN / LAST BLOCK /A033 SNA CLA / ANOTHER TO READ? /M033 JMP CUDIL7 / OUT OF DATA /M033 TAD CUDPTR / CONTAINS ADDR OF LAST CHAR RETRIEVED CIA /D033 TAD (CUDXBF+CUBFSZ-1 / ADDR OF END OF BUFFER TAD XBFEND / ADDR. OF END OF BUFFER 2 /A033 SZA CLA JMP CUDIL8 / BUFFER NOT EMPTY, CONTINUE ISZ CUUDKC / BUMP TO NEXT BLOCK JMS I CURWUX / READ IT (CURWUD) /C024 RXERD CUDXBF CUUDKC TAD (CUDXBF-1 / SET POINTER TO BUFFER-1 DCA CUDPTR CUDIL8, ISZ CUDILM / BUMP RETURN FOR MORE DATA CUDIL9, JMP I CUDILM / ************ A033 ************* CUDIL7, / IN LAST BLOCK; MUST BE AT LEAST 3 PLACES LEFT / IF FROM UNDEFINED UDK; ELSE DOESN'T MATTER / ZERO TERMINATOR WILL BE ENCOUNTERED TAD CUDPTR CIA TAD CUDILA / CONSTANT TO ADJUST FOR SPACE LEFT /D033 TAD (CUDXBF+CUBFSZ-1 TAD XBFEND / ADDR. OF END OF BUFFER 2 /A033 /D033 SZA CLA SMA CLA /A033 JMP CUDIL8 / STILL ROOM JMP CUDIL9 / NO ROOM / ************* END A033 ************ / READ/WRITE UDK BLOCK. / ARGUMENTS: FUNCTION, BUFFER, BLOCK CURWUD, / POINTED TO BY CURWUX /C024 XX DCA QUQBLK+RXQDRV / WAS JMS SETUSD /C027 RDF TAD CDF0 DCA QUQBLK+RXQBFD / RETURN FIELD TAD I CURWUD ISZ CURWUD DCA QUQBLK+RXQFNC / FUNCTION TAD I CURWUD ISZ CURWUD DCA QUQBLK+RXQBAD / BUFFER TAD I CURWUD ISZ CURWUD DCA CURWAA TAD I CURWAA DCA QUQBLK+RXQBLK / BLOCK JMS QURX CLA JMP I CURWUD / DECODE ADDRESS OF UDK IN DIRECTORY BLOCK CUDCOD, / POINTED TO BY CUDCOX /C024 XX TAD I CUDIPT / ADDRESS OF ADDRESS AND (CUBKMS / KEEP BLOCK PART BSW / TO BITS 6,7,8,9 CLL RTR / TO BITS 8,9,10,11 /D033 TAD (DLUDKS+1 / + STARTING BLOCK # TAD DLUDP1 / DLUDKS+1; STARTING BLOCK /A033 DCA CUUDKB TAD I CUDIPT AND (CUWDMS / KEEP WORD PART DCA CUUDKY / RELATIVE WORD ADDRESS TAD CUUDKB DCA CUUDKC / SET UP WORKING POINTER JMP I CUDCOD / CUDIPT, CUUDKB, CUUDKW, CUUDKY, CUUDKD, CUUDKC MOVED TO PAGE 0 /M023 CUDFMS, / NO MORE ROOM (POINTED TO BY CUDFMX) /C026 JMS CUDFMM / MESSAGE ROUTINE /A032 CUDMS3 / ARGUMENT /A032 JMP CUTSC1 / LOOK FOR LEGAL INPUT /A033 /D033 CUDFUL, /C026 / TAD (7 / RING-A-DING /D026 / JMS CUDOUT /D026 / CIFMNU /D026 / JMS I IOACAL /D026 / 0 /D026 / CUDMS4 /D026 / -2700 /D026 /D033 JMP I .+1 / GET NEXT INPUT /A029 /D033 CUDINL /A029 /D029 JMS CUDPOS /A026 /D029 JMS I CUDGCX / READ CHARACTER /C031 /D029 JMP CUDCL0 / HLT SET, FINISH UP (WAS CUDCLS) /C026 /D029 CLA /A027 / TAD (-EDMENU / SEE IF USER TYPED GOLD MENU /D027 / SNA CLA /C026 /D027 / JMP I CUDREX / (CUDRET) /A026 /D027 /D029 TAD CUDP7 / (TAD (7 ) /A026 /D029 JMS I CUDOUX / (CUDOUT) /A026 /D029 JMP CUDFUL / NO, KEEP CHECKING / ********** A032 *********** / MOVED FROM CUDFMS AND MADE SUBROUTINE CUDFMM, 0 TAD I CUDFMM / LOAD MESSAGE ADDRESS DCA CUDFM1 ISZ CUDFMM / BUMP FOR RETURN CIFMNU / GIVE MESSAGE /C026 JMS I IOACAL 0 /C026 CUDFM1, CUDMS3 /"^a---text---^s^s" /C026 /C029 /C033 CUDMSA /"RET,LF,LF" /C026 /D033 CUDMSB /"RET,LF" /C026 CUDMS9 /"DELETE KEYSTROKE(S)" /A029 /D033 CUDMSB /"RET,LF" /A029 IFDEF V30NOR < CUEL CUTRYK > CUDMS6 /"PRESS GOLD HALT ... " /A026 /D033 CUDMSB /"RET,LF" /A026 JMP I CUDFMM / *************** END A032 *********** CUDOUT, 0 JMP CUDOU2 CUDOU1, CIFSYS JWAIT CUDOU2, CIFSYS TTYOU JMP CUDOU1 JMP I CUDOUT CUDPOS, /A026 0 /A026 CIFMNU /A026 JMS I IOACAL /A026 0 /A026 CUDMS4 /"^P" /A026 -2700 /A026 JMP I CUDPOS /A026 / ********** A033 *********** CNTSCR, JMS I CUDFMY / MESSAGE ROUTINE CUDMS0 / UDK FULL CUTSC1, JMS I CUDDGX / GET KEYBOARD INPUT JMP I CUDCLX / G-HALT; CLOSE UDK JMP CUTSC1 / ILLEGAL INPUT TAD CUDRUB / IS IT R.O.? SNA CLA JMP CUDRUT / YES; R.O. LAST AND GO TO NORMAL INPUT TAD CUDP7 / NO; RING BELL AND TRY AGAIN JMS I CUDOUX JMP CUTSC1 / ************** END A033 ********** PAGE / BE SURE THERE IS ROOM FOR TWO CHARACTERS IN LAST BLOCK / ELSE CHECK BUFFER BOUNDRY; WRITE BLICK & ZERO BUFFER / AS NECESSARY. / CALL+1: NO ROOM, AC CLEAR, CHAR IN T1 / CALL+2: STILL ROOM, CHAR IN AC CUDSLM, XX DCA T1 / SAVE CHARACTER /D033 TAD (DLUDKS+CUNBLK / TEST FOR LAST BLOCK TAD DLUCUN / LAST BLOCK /A033 CIA TAD CUUDKD SNA CLA JMP CUDSL3 / LAST BLOCK FOUND /D033 TAD (CUDXBF+CUBFSZ-1 / NOT LAST; TEST FOR BUFFER END TAD XBFEND / ADDR. OF END OF BUFFER 2; BUFFER END? /A033 CIA TAD CUDPTR SZA CLA JMP CUDSL1 / STILL ROOM JMS I CURWUX / NO ROOM IN THIS BLOCK; WRITE (CURWUD) /C024 RXEWT+2000 CUDXBF CUUDKD ISZ CUUDKD / BUMP TO NEXT BLOCK TAD (CUDXBF-1 / SET TO BUFFER START-1 DCA CUDPTR JMS I CURWUX /A024 RXERD /A024 CUDXBF /A024 CUUDKD /A024 TAD CUUDKD /A024 DCA CUUDKC /A024 CUDSL1, TAD T1 / EXIT WITH ROOM ISZ CUDSLM CUDSL2, JMP I CUDSLM / WE ARE IN THE LAST BLOCK; NEED ROOM FOR TWO CHARACTERS / BECAUSE WE ARE TESTING BEFORE STORE C(CUDPTR) IS ONE LESS / THAN NEXT STORE LOCATION AND TWO LESS THAN TERMINATING 0. / LAST ALLOWABLE VALUE FOR "CUDPTR" IS BUFFER END - 3. CUDSL3, TAD CUDPTR /A026 CIA /A026 TAD (CUDXBF+CUBFSZ-3 /C033 SMA CLA /C026 JMP CUDSL1 / STILL ROOM JMP CUDSL2 / NO ROOM CUDSLA, 0 / PART OF SQUEEZE ROUTINE "CUDGAR" / FOUND END OF A UDK. UPDATE DIRECTORY IN BUFFER / AND COMPUTE NEXT UDK ADDRESS FOR NEXT ENTRY / CUDG80, /D031 JMS I CURWUX / WRITE OUTPUT BUFFER (CURWUD) /C024 /D031 RXEWT+2000 /D031 CUDBUF /D031 CUUDKD /D031 JMS I CURWDX / READ DIRECTORY INTO "CUDBUF" (CURWDI) /C024 /D031 RXERD TAD CUDKNM / DECODE UDK # FROM PTR. TO DIREC. TAD (-CUUDID / UDK WORD = UDK # + 2001 /D031 TAD (CUDBUF / UDK # + START OF BUFFER TAD (DIRBUF / UDK # + START OF BUFFER /A031 DCA CUDGAA / = ADDRESS OF SLOT IN DIREC. /D033 TAD (-DLUDKS-1 TAD MDLUM1 / -DLUDKS-1 /A033 TAD CUUDKB / ABSOLUTE BLOCK - FIRST BLOCK BSW / = RELATIVE BLOCK CLL RTL / TO BITS 0,1,2,3 DCA I CUDGAA / STORE IN SLOT TAD CUUDKY / RELATIVE WORD TAD I CUDGAA / ADD TO SLOT FOR COMPLETE ADDRESS DCA I CUDGAA /D031 JMS I CURWDX / WRITE DIRECTORY BACK OUT (CURWDI) /C024 /D031 RXEWT+2000 /D031 JMS I CURWUX / READ OUTPUT BLOCK BACK IN (CURWUD) /C024 /D031 RXERD /D031 CUDBUF /D031 CUUDKD TAD CUUDKD / SET UP TO COMPUTE NEXT UDK ADDRESS DCA CUUDKB TAD (-CUDBUF+1 TAD CUDCUR DCA CUUDKY / RELATIVE WORD JMS I CUDILX / IS THERE MORE INPUT? (CUDILM) /C024 NOP / CAN'T BE AT PHYSICAL END OF STORAGE JMP CUDG05 / YES, MOVE NEXT UDK / WE HAVE REACHED THE END OF INPUT / ZERO REMAINING WORDS OF BLOCK CUDG90, CLA DCA I CUDCUR TAD CUDCUR CIA /D033 TAD (CUDBUF+CUBFSZ-1 TAD BUFEND / ADDR. OF END OF BUFFER 1 /A033 SZA CLA JMP CUDG90+1 JMS I CURWUX / WRITE THE BLOCK (CURWUD) /C024 RXEWT+2000 CUDBUF CUUDKD JMS I CUDIMX / MOVE DIRECTORY TO DISK BUFFER /A031 CUDBUF / DESTINATION /A031 DIRBUF / SOURCE /A031 -CUUDNM / COUNT /A035 / ************* ADD 031 ************** / ZERO BALANCE OF DIRECTORY BUFFER FOR NEATNESS TAD (CUDBUF+CUUDNM / PLACE TO START DCA CUDGAA TAD (CUUDNM-CUBFSZ / NUMBER OF LOCATIONS DCA CUDSSA CUDG91, DCA I CUDGAA ISZ CUDGAA / BUMP POINTER ISZ CUDSSA / COUNT JMP CUDG91 / ***************** END ADD 031 ********** JMS I CURWDX / WRITE THE DIRECTORY /A031 RXEWT+2000 /A031 TAD CUDGAR / GET RETURN ADDRESS DCA CUDGAA JMP I CUDGAA / AND GO THERE CUDGAA, 0 / EXTENSION TO DISPLAY ROUTINE FOR UDK'S CUDSS0, 0 DCA CUDSSA TAD CUDSSA TAD (EDUDK0 / BOTTOM VALUE CIA DCA CUDSSB / SAVE BINARY VALUE TAD CUDSSB SPA JMP CUDSS9 / NOT A UDK TAD (-CUUDNM / RANGE SMA CLA JMP CUDSS9 / NOT A UDK CIFMNU / OUTPUT WITH IOA JMS I IOACAL 0 CUDSSM / MESSAGE ADDRESS CUDSSB / VALUE AC0006 / UPDATE LINE COUNT FOR UDK:NN /A031 TAD CUDLIN / UPDATE LINE COUNT /A023 /D031 TAD (7 / WITH 7 CHAR FOR GOLD:NN /A023 DCA CUDLIN /A023 JMP CUDSS8 CUDSS9, CLA TAD CUDSSA / NOT A UDK; RETURN VALUE ISZ CUDSS0 CUDSS8, JMP I CUDSS0 CUDSSA, 0 CUDSSB, 0 / TEXT CUDSSM: GOLD:!2D MOVED TO MESSAGE PAGE /M023 PAGE / UDK REQUESTED IS NOT DEFINED. / FIND LAST UDK SO WE CAN ADD THE REQUESTED ONE TO THE END OF UDK STORAGE / DIRECTORY IN CORE AT "CUDBUF" / SCAN DIRECTORY FOR HIGHEST UDK ADDRESS / WHEN ADDRESS FOUND, FIND END OF THAT UDK; KEEP TRACK OF AADDRESS / FOR DIRECTORY UPDATE WHEN REQUESTED UDK IS ENTERED CUUNDF, XX DCA T3 / GOING TO BE HIGHEST BLOCK ADDRESS DCA T2 / GOING TO BE HIGHEST WORD ADDRESS FOR T3 TAD (CUDBUF-1 / POINTER FOR DIRECTORY DCA CUDPTR TAD (-CUUDNM / COUNTER FOR NUMBER OF UDK'S DCA T1 CUUND1, TAD I CUDPTR SNA CLA / DOES UDK EXIST? JMP CUUND8 / NO, COUNT ENTRIES TAD CUDPTR DCA CUDIPT / SAVE THE ADDRESS JMS I CUDCOX / CUUDKB: STARTING BLOCK (CUDCOD) /C024 / CUUDKY: RELATIVE WORD / CUUDKW: ABSOLUTE CORE ADDRESS TAD T3 CIA TAD CUUDKB / COMPARE LAST BLOCK TO CURRENT BLOCK SPA JMP CUUND8 / CURRENT BLOCK .LT. LAST SZA JMP CUUND3 / CURRENT BLOCK .GT. LAST; UPDATE LAST TAD T2 / CURRENT BLOCK .EQ. LAST; CHECK WORD CIA TAD CUUDKY SPA CLA JMP CUUND8 / CURRENT WORD .LT. LAST; LAST STILL HIGH CUUND4, TAD CUUDKY / CURRENT WORD .GT. LAST; BLOCK #'S .EQ. DCA T2 / UPDATE WORD JMP CUUND8 CUUND3, CLA TAD CUUDKB / UPDATE BLOCK AND WORD DCA T3 JMP CUUND4 CUUND8, CLA ISZ T1 / COUNT UDK ENTRIES JMP CUUND1 / NOT DONE SCAN TAD T3 / NOW HAVE ADDRESS OF LAST UDK SNA / TEST FOR NO DEFINED UDK'S /A024 /D033 TAD (DLUDKS+1 / FIRST DATA BLOCK /A024 TAD DLUDP1 / DLUDKS + 1; FIRST DATA BLOCK /A033 DCA CUUDKC / SET UP FOR READ TAD (CUDXBF-1 TAD T2 DCA CUDPTR / POINTER = RELATIVE WORD + BUFFER START JMS I CURWUX / READ UDK (CURWUD) /C024 RXERD CUDXBF CUUDKC CUUND7, TAD I CUDPTR / GET CHARACTER FROM UDK SNA CLA JMP CUUND9 / FOUND END OF LAST DEFINED UDK JMS I CUDILX / END OF BUFFER OR STORAGE? (CUDILM) /C024 /D033 JMP I CUDFMX / END OF STORAGE (CUDFMS) /C024 NOP / CAN'T RUN OUT OF STORAGE HERE /A033 JMP CUUND7 CUUND9, TAD CUUNM3 / FOR LAST BLOCK TEST /A033 JMS I CUDILX / BE SURE NOT AT END OF BLOCK,ETC.(CUDILM)/C024 / JMP I CUDFMX / NO ROOM (CUDFMS) /C024 /D027 JMP CUNORM / AT END OF STORAGE; QUIT IMMEDIATELY /A027 TAD CUDPTR / PUT IN A TERMINATOR SO WE IAC / DON'T DISPLAY GARBAGE DCA T1 DCA I T1 JMS I CURWUX / (CURWUD) /C024 RXEWT+2000 CUDXBF CUUDKC TAD T3 / TEST FOR NO DEFINED UDK'S /A024 SZA CLA /A024 JMP CUUCUU / .+3 /A024 TAD CUDXBC /A024 DCA CUDPTR /A024 CUUCUU, TAD CUDPTR /C024 IAC AND P377 DCA CUUDKY / CONSTRUCT RELATIVE WORD TAD CUUDKC DCA CUUDKB / BE SURE TO HAVE COPY OF FIRST BLOCK DCA CUGASW / CLEAR SQUEEZE SWITCH FOR NO SQUEEZE JMP I CUUNDF CUUNM3, -3 /A033 /CUGASW, 1 / SET TO SQUEEZE INITIALLY /MOVED TO PAGE 0 /D023 / USED BY EXTENSION TO KEYBOARD INPUT ROUTINE "CUDDG0" CUDGL0, 0 JMS I CUDGCX / GET THE KEYSTROKE JMP CUDGL1 / HALT OR POWER FAIL; CALL+1; AC=0 DCA CUDGGA TAD CUDGGA TAD (-EDNWLN / {RETURN}? SNA CLA JMP CUDGL3 / FOUND {RETURN}; CALL+3; AC=0 TAD CUDGGA TAD CUDG60 / DIGIT? SPA JMP CUDGL2 / NOT {RETURN} OR DIGIT; CALL+2; AC=0 TAD (-11 / RANGE SMA SZA CLA JMP CUDGL2 / NOT {RETURN} OR DIGIT ISZ CUDGL0 / FOUND DIGIT; CALL+4; AC=0; CUDGGA=CHAR. CUDGL3, ISZ CUDGL0 CUDGL2, ISZ CUDGL0 CUDGL1, CLA JMP I CUDGL0 / TESTING FOR BEGINNING OF BUFFER WHEN DELETING KEYSTROKES / READS PREVIOUS BUFFER IF NECESSARY AND SETS POINTER AND / DISK BLOCK CUDRU0, 0 TAD CUDPTR TAD (-CUDXBF+1 SZA CLA JMP CUDRU1 / NOT AT START OF BUFFER CMA / DECREMENT BLOCK TAD CUUDKC DCA CUUDKC JMS I CURWUX / READ THE BLOCK (CURWUD) /C024 RXERD CUDXBF CUUDKC TAD CUUDKC / SET UP FOR NEXT WRITE IF DELETE DCA CUUDKD TAD (CUDXBF+377 / SET POINTER TO BUFFER TOP JMP CUDRU2 CUDRU1, TAD CUDPTR CUDRU2, DCA T1 JMP I CUDRU0 PAGE /A013 / EXTENSION TO CHAR. INPUT ROUTINE / {UDK}{RETURN}: ALWAYS A RUBOUT; SET RETURN CHARACTER / TO CONTENTS OF "CUDNUM"+EDUDK0 / {UDK}(M){RETURN}: WHERE (M) IS 0-99. A UDK ENTRY / C+1: GOLD HALT / C+2: ILLEGAL INPUT / C+3: KEYSTROKE IN AC CUDDG0, 0 JMS I CUDGCX / CHAR INPUT /C031 JMP CUDGG2 / POWER FAIL OR HALT DCA CUDGGA / SAVE INPUT TAD CUDGGA /D031 TAD MGOLDU / GOLD U TAD MEDUDK / UDK KEY (F14) /A031 SNA CLA JMP CUDD02 / FOUND GOLD U (UDK KEY - F14) /C033 CUDGG1, TAD CUDGGA CUDGG3, ISZ CUDDG0 CUDGG4, ISZ CUDDG0 CUDGG2, JMP I CUDDG0 CUDD01, / ILLEGAL INPUT; BELL AND EXIT C+2 TAD CUDP7 JMS I CUDOUX JMP CUDGG4 /D030 JMP CUDD02 / BYPASS ERROR FIRST TIME /D030 CUDD01, /D030 TAD CUDP7 / RING BELL FOR ILLEGAL CHARACTER /D030 JMS I CUDOUX / (CUDOUT) /C026 CUDD02, JMS I CUDGLX / GET KEYSTROKE AFTER {UDK} JMP CUDGG2 / GOT HALT OR POWER FAIL, EXIT JMP CUDD01 / NOT {RETURN} OR DIGIT, RING BELL JMP CUDD03 / GOT {RETURN}; {UDK}{RETURN} TAD CUDGGA / GOT DIGIT; {UDK}(M) TAD CUDG60 / MAKE INTO BINARY NUMBER DCA CUDGGB /D030 JMP CUDD05 /D030 CUDD04, /D030 TAD CUDP7 /D030 JMS I CUDOUX / (CUDOUT) /C026 CUDD05, JMS I CUDGLX / GET NEXT KEYSTROKE JMP CUDGG2 / HALT OR POWER FAIL, EXIT JMP CUDD01 / NOT DIGIT OR {RETURN}, RING BELL /C030 JMP CUDD10 / {RETURN}; {UDK}(M){RETURN} TAD CUDGGB / KEYSTROKE IN CUDGGA, MULTIPLY / LAST DIGIT BY 10 CLL RTL RAL TAD CUDGGB TAD CUDGGB DCA CUDGGB TAD CUDGGA / CONVERT CURRENT TO BINARY TAD CUDG60 TAD CUDGGB / ADD LAST TO CURRENT TO MAKE NUMBER DCA CUDGGB /D030 JMP CUDD07 / LOOK FOR RETURN /D030 CUDD06, /D030 TAD CUDP7 /D030 JMS I CUDOUX / (CUDOUT) /C026 CUDD07, JMS I CUDGLX / MUST HAVE {RETURN} JMP CUDGG2 / POWER FAIL OR HALT JMP CUDD01 / NOIT DIGIT OR RETURN /C030 JMP CUDD10 / FOUND {RETURN} JMP CUDD01 / FOUND DIGIT /C030 CUDD10, / FOUND {RETURN} AFTER {UDK}(M) TAD CUDGGB / BINARY NUMBER CUDD11, TAD CUDUDK / MAKE INTO UDK CODE JMP CUDGG3 / EXIT CALL+2 CUDD03, / FOUND {UDK}{RETURN} TAD I CUDNUX / CONVERT TO UDK TO BE USED AS R.O. JMP CUDD11 NOP / LEAVE SOME PATCH ROOM NOP NOP NOP CUDGGA, 0 CUDGGB, 0 CUDG60, -60 / -"0 /D031 MGOLDU, -EDGLDU MEDUDK, -EDUDKY /A031 /CUDP7, 7 / MOVED TO PAGE 0 /D026 /CUDOTX, CUDOUT / CHANGED TO CUDOUX AND MOVED TO PG 0 /D026 CUDUDK, EDUDK0 CUDNUX, CUDNUM CUDGLX, CUDGL0 /D031 CUDGCP, CUDGCR / ******** A031 ******** / MOVE UDK DIRECTORY FROM/TO CUDBUF/DIRBUF / DON'T USE AUTO-INCREMENT REGISTERS CUDIMV, 0 TAD I CUDIMV / DESTINATION DCA CUDIDE ISZ CUDIMV TAD I CUDIMV / SOURCE DCA CUDISO ISZ CUDIMV /D035 TAD CUDICN / COUNT TAD I CUDIMV /A035 DCA CUDICT ISZ CUDIMV /A035 CUDIM1, / LOOP FOR MOVE TAD I CUDISO DCA I CUDIDE ISZ CUDISO ISZ CUDIDE ISZ CUDICT JMP CUDIM1 JMP I CUDIMV NOP / SAVE SPACE FOR DEBUG CUDIDE, 0 CUDISO, 0 /D035 CUDICN, -CUUDNM CUDICT, -CUUDNM DECIMAL DIRBUF, ZBLOCK 100 / DIRECTORY BUFFER OCTAL / *************** END A031 ******** /MOVED FOR ROOM ON PAGE /A013 /C031 CUDSSM, TEXT "&G&O&L&D:!2D" /M023 CUDSSM, IFNDEF ITALIAN /A031 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE < TEXT '!&DT: !2D'> IFDEF DUTCH IFDEF SPANISH CUDMS3, IFDEF ENGLSH < /D033 TEXT '^A&NO MORE ROOM FOR KEYSTROKES.^A^S^A^S^A' /C026/C027/C029/C032 TEXT '^A !&UDK STORAGE FULL.^S^S' /A033 CUDMS9, TEXT ' &DELETE KEYSTROKE(S)' /A029 CUDMS0, TEXT '^A &NO MORE ROOM IN THIS !&UDK.^S^S' /A032 /C033 > IFDEF ITALIAN < TEXT '^A &ARCHIVIO !&TDU PIENO.^S^S' CUDMS9, TEXT ' &CANCELLARE CARATTERE/I' CUDMS0, TEXT '^A &SPAZIO INSUFFICIENTE.^S^S' > IFDEF V30NOR < TEXT '^A !&BDT-LAGERET ER FULLT.^S^S^S^S' CUDMS9, TEXT ' &FJERN TASTANSLAG' CUDMS0, TEXT '^A &IKKE MER PLASS I AKTUELL !&BDT.^S^S^S^S' > IFDEF V30SWE < TEXT '^A &MINNET D\DR !&DT LAGRAS, \DR FULLT ^S^S' /A033 CUDMS9, TEXT ' &TA BORT TANGENTNEDSLAG' /A029 CUDMS0, TEXT '^A &DET FINNS INTE PLATS F\VR FLER NEDSLAG I DENNA !&DT ^S^S' /A032 /C033 > / END IFDEF V30SWE IFDEF DUTCH < /D033 TEXT '^A&NO MORE ROOM FOR KEYSTROKES.^A^S^A^S^A' /C026/C027/C029/C032 TEXT '^A !&UDK STORAGE FULL.^S^S' /A033 CUDMS9, TEXT ' &DELETE KEYSTROKE(S)' /A029 CUDMS0, TEXT '^A &NO MORE ROOM IN THIS !&UDK.^S^S' /A032 /C033 > IFDEF SPANISH < TEXT '^A &ALMACENAMIENTO !&TDU COMPLETO .^S^S' /A033 CUDMS9, TEXT ' &BORRE PULSACI\SN(ES)' /A029 CUDMS0, TEXT '^A &NO HY M\AS ESPACIO EN ESTA !&TDU.^S^S' /A032 /C033 > / CUDMS5, TEXT '^P!E^P' / / CUDMS6, 7 & 8 ADDED FOR 100 UDK'S /A026 9 LINES CUDMS6, IFDEF ENGLSH < TEXT ' !&OR &PRESS &GOLD !&HALT TO SAVE !&UDK.' /C029 /C033 > /END IFDEF ENGLSH IFDEF ITALIAN < TEXT ' &PREMERE &ORO !&STOP PER MEMORIZZARE !&TDU.' > IFDEF V30NOR < TEXT '!&STOPP FOR \E LAGRE AKTUELL !&BDT' > IFDEF V30SWE < TEXT '&ANV\DND GULD STOPP F\VR ATT SPARA !&DT'> IFDEF DUTCH < TEXT ' !&OR &PRESS &GOLD !&HALT TO SAVE !&UDK.' /C029 /C033 > /END IFDEF DUTCH IFDEF SPANISH < TEXT ' &O &PULSE &DORADA !&PARAR SALVAR !&TDU.' > / ENd IFDEF SPANISH CUDMS7, IFDEF ENGLSH < TEXT ' &PRESS &GOLD !&MENU TO RECALL THE !&MENU' > /END IFDEF ENGLSH IFDEF ITALIAN < TEXT ' &PREMERE &ORO !&MENU PER TORNARE AL !&MENU' > IFDEF V30NOR < TEXT ' !&MENY FOR \E F\E MENYEN' > IFDEF V30SWE < TEXT ' &TILLBAKA TILL MENYN: ANV\DND GULD MENY'> IFDEF DUTCH < TEXT ' &PRESS &GOLD !&MENU TO RECALL THE !&MENU' > /END IFDEF ENGLSH IFDEF SPANISH < TEXT ' &PULSE &DORADA !&MENU PARA VOLVER AL !&MENU' > /END IFDEF SPANISH /D0033 CUDMS8, IFDEF ENGLSH < /D0033 TEXT '^A&NO MORE ROOM.^S' /C033 /D0033 > /END IFDEF ENGLSH / CUDMSA, 15 / ++++ 12 / ++++ 12 / ++++ 0 CUDMSB, 15 / ++++ 12 / ++++ 0 / CUDMS1, IFDEF ENGLSH < TEXT '^P!E ^P&DEFINITION OF USER KEY ^D. &PRESS &GOLD &H&A&L&T TO' *.-1 TEXT ' RECALL THE &MENU.' > IFDEF ITALIAN < TEXT "^P!E ^P&DEFINIZIONE TASTO FUNZIONE ^D. &PREMERE &ORO !&STOP PER' *.-1 TEXT ' TORNARE AL &MENU.' > IFDEF V30NOR < TEXT '^P!E ^P&DEFINISJON AV BRUKERTAST ^D. ^S &STOPP FOR \E F\E MENYEN.' > IFDEF V30SWE < TEXT '^P!E ^P&DEFINITION AV TANGENT ^D. &ANV\DND GULD STOPP F\VR ATT ' *.-1 TEXT '\ETERG\E TILL MENYN'> IFDEF DUTCH < TEXT '^P!E ^P&DEFINITION OF USER KEY ^D. &PRESS &GOLD &H&A&L&T TO' *.-1 TEXT ' RECALL THE &MENU.' > IFDEF SPANISH < TEXT '^P!E ^P&DEFINICI\SN DE TECLA DE USARIO ^D.&PULSE &DORADA' *.-1 TEXT ' !&PARAR PARA VOLVER AL &MEN\Z.' > / CUDMS2, IFDEF ENGLSH < TEXT '^P!E ^P&MODIFYING USER KEY !D. &PRESS &GOLD &H&A&L&T TO' *.-1 TEXT ' TERMINATE DEFINITION.^P' > IFDEF ITALIAN < TEXT '^P!E ^P&MODIFICA TASTO FUNZIONE !D. &PREMERE &ORO !&STOP PER' *.-1 TEXT ' TERMINARE LA DEFINIZIONE.^P' > IFDEF V30NOR < TEXT '^P!E ^P&ENDRER BRUKERTAST !D. ^S &STOPP FOR' /L.D.A *.-1 TEXT " \E AVSLUTTE DEFINISJON.^P" > IFDEF V30SWE < TEXT '^P!E ^P&\DNDRING AV TANGENTDEF. !D. &ANV\DND GULD STOPP F\VR ATTL ' *.-1 TEXT 'AVSLUTA DEFINITIONEN.^P'> IFDEF DUTCH < TEXT '^P!E ^P&MODIFYING USER KEY !D. &PRESS &GOLD &H&A&L&T TO' *.-1 TEXT ' TERMINATE DEFINITION.^P' > IFDEF SPANISH < TEXT '^P!E ^P&MODIFICANDO TECLA USUARIO !D. &PULSE &DORADA !&PARAR' *.-1 TEXT ' PARA TERMINATE DEFINITION.^P' > / /D013 / / CUDTAB - Table of key names for UDK code. Format is : / IOA string / one IOA parameter (or zero) / / Any one word IOA argument can be used in the second slot as long as the / IOA arg is expecting it. Future foreign language work may require the use of / the second argument for accented character information. (GLT) / / Different keyboards require a different ordering of the entries in the / CUDTAB. / / Presently two special IOA arguments are defined. They are: / CUDGTL - Prints GOLD: / where is a TEXT string / "Calling" sequence: / CUDGTL / TEXT "*" (where "*" is one character) / / CDCMND - Prints GOLD: where list is an ASCII / list ending with a zero word / "Calling" sequence: / CDCMND / PTR (where ptr points to the beginning / of the ASCII list) / CUDTAB, /C016 / / Space / CDSPCE 0 / / Power Fail / XX 0 / / Rubout / CDRBCH 0 / / Rubword / CDRBWD 0 / / Return / CDNWLN 0 / / GOLD:CMND /C016 / IFDEF ENGLSH < / GOLD:{ in English IFNDEF V30FAO< /M037 CDCMND CUDLCB > IFDEF V30FAO< /A037 CDCMND /A037 ACUTE /A037 > > IFDEF ITALIAN < CDCMND ITAST1 > IFDEF V30NOR < CDCMND ARING > IFDEF V30SWE < CDCMND ARING > IFDEF DUTCH < CDCMND CUDLCB > IFDEF SPANISH < CDCMND /A037 ACUTE /A037 > / / Para marker / CDCRET 0 / / Tab / CDTAB 0 / / Tab Center / CDTABC 0 / / GOLD:FILE / CUDGTL TEXT 'F' / / GOLD:MENU / CUDGTL TEXT 'M' / / GOLD:CONT SRCH & SEL / IFDEF ENGLSH < / GOLD:/ in English IFNDEF V30FAO< /A037 CUDGTL TEXT '/' > / END IFNDEF V30FAO /A009 IFDEF V30FAO< /A037 CUDGTL /A037 TEXT '-' /A037 > > / END IFDEF ENGCAN /A009 IFDEF ITALIAN < CDCMND ITAST2 > IFDEF V30NOR < CUDGTL TEXT '-' > /A039 IFDEF V30SWE < CUDGTL TEXT '-' > IFDEF DUTCH < CUDGTL TEXT '/' > / END IFNDEF V30FAO /A009 IFDEF SPANISH < CUDGTL /A037 TEXT '-' /A037 > / / Rub Line / CDRBLN 0 / / Rub Sent / CDRBSE 0 / / Del Char / CDDLTC 0 / / Del Word / CDDLTW 0 / / Word / CDWORD 0 / / Sent / CDSENT 0 / / Line / CDLINE 0 / / TabPos / CDTABP 0 / / <> (Enter) / CDENTR 0 / / Page / CDPAGE 0 / / Para / CDPARA 0 / / Advance / CDADVN 0 / / Back up / CDBKUP 0 / / GOLD:ADVANCE / CDGADV 0 / / GOLD:BACKUP / CDGBKP 0 / / Bold / CDBOLD 0 / / Sel / CDSLCT 0 / / Uppercase / CDUPPR 0 / / Underline / CDUNDL 0 / / Cut / CDSCUT 0 / / Swap / CDSWAP 0 / / Paste / CDPSTE 0 / / GOLD:DEL (both Char and Word) / CDUDLT 0 / / GOLD:BOLD / CDUBLD 0 / / GOLD:UPPERCASE / CDLOWR / Gold:Uppercase (I.e. Lowercase) 0 / / GOLD:UNDERLINE / CDUUDL 0 / / Hyph Push / CDHYPS 0 / / Hyph Pull / CDHYPL 0 / / Print Hyph / IFDEF ENGLSH < / GOLD:- in English IFNDEF V30FAO < /A037 CUDGTL TEXT '-' > IFDEF V30FAO < /A037 CUDGTL /A037 TEXT "'" /A037 > > IFDEF ITALIAN < CUDGTL TEXT ')' > IFDEF V30NOR < CUDGTL TEXT '+'> /A039 IFDEF V30SWE < CUDGTL TEXT '+'> IFDEF DUTCH < CUDGTL TEXT '-' > IFDEF SPANISH < CUDGTL /A037 TEXT "'" /A037 > / / Shift Print Hyph / IFDEF ENGLSH < / GOLD:_ in English IFNDEF V30FAO < /A037 CUDGTL TEXT '_' > IFDEF V30FAO < CUDGTL TEXT '?' > > IFDEF ITALIAN < CDCMND ITAST3 > IFDEF V30NOR < CUDGTL TEXT '?'> IFDEF V30SWE < CUDGTL TEXT '?'> IFDEF DUTCH < CUDGTL TEXT '_' > IFDEF SPANISH < CUDGTL TEXT '?' > / / GOLD:DEAD KEY / CUDGTL TEXT 'D' / / GOLD:ABBREV / IFDEF ENGLSH < / GOLD:= in English IFNDEF V30FAO < /A037 CUDGTL TEXT '=' > IFDEF V30FAO < /A037 CUDGTL /A037 TEXT '+' /A037 > > IFDEF ITALIAN < CUDGTL TEXT '-' > IFDEF V30NOR < CDCMND OSLASH > /A039 IFDEF V30SWE < CDCMND UUMLAT > IFDEF DUTCH < CUDGTL TEXT '=' > IFDEF SPANISH < CUDGTL /A037 TEXT '+' /A037 > / / GOLD:LIBRY / CUDGTL TEXT 'L' / / GOLD:GET DOCMT / CUDGTL TEXT 'G' / / GOLD:TOP DOCMT / CUDGTL TEXT 'T' / / GOLD:BOT DOCMT / CUDGTL TEXT 'B' / / GOLD:SRCH / IFDEF ENGLSH < / GOLD:, in English CUDGTL TEXT ',' > IFDEF ITALIAN < CUDGTL TEXT ';' > IFDEF V30NOR < / GOLD:, in Scandinavian CUDGTL TEXT ',' > IFDEF V30SWE < CUDGTL TEXT ',' > IFDEF DUTCH < CUDGTL TEXT ',' > IFDEF SPANISH < CUDGTL TEXT ',' > / / GOLD:CONT SRCH / IFDEF ENGLSH < / GOLD:. in English CUDGTL TEXT '.' > IFDEF ITALIAN < CUDGTL TEXT ':' > IFDEF V30NOR < CUDGTL TEXT '.' /A039 > IFDEF V30SWE < CUDGTL TEXT '.' > IFDEF DUTCH < CUDGTL TEXT '.' > IFDEF SPANISH < CUDGTL TEXT '.' > / / GOLD:NEW PAGE / CUDGTL TEXT 'N' / / GOLD:PAGE MARKER / CUDGTL TEXT 'P' / / GOLD:RULER / CUDGTL TEXT 'R' / / GOLD:CENTER / CUDGTL TEXT 'C' / / GOLD:CUT / CDGCUT 0 / / GOLD:PASTE / CDGPST 0 / / GOLD:"Page" / CDGPGE 0 / / GOLD:REPLC / IFDEF ENGLSH < / GOLD:' in English IFNDEF V30FAO < CUDGTL TEXT \'\ > IFDEF V30FAO < /A037 CDCMND /A037 NENIA /A037 > > IFDEF ITALIAN < CDCMND ITAST4 > IFDEF V30NOR < CDCMND AE > /A039 IFDEF V30SWE < CDCMND AUMLAT > IFDEF DUTCH < CUDGTL TEXT \'\ > IFDEF SPANISH < CDCMND /A037 NENIA /A037 > / / GOLD:SUPER SCRIPT / IFNDEF FRENCH < CUDGTL TEXT 'A' > IFDEF FRENCH < CUDGTL TEXT 'Q' > / / GOLD:SUB SCRIPT / IFNDEF FRENCH < CUDGTL TEXT 'Q' > IFDEF FRENCH < CUDGTL TEXT 'A' > / / GOLD:VIEW / CUDGTL TEXT 'V' / / GOLD:DATE & TIME / IFDEF ENGLSH < IFNDEF V30FAO < CDCMND / GOLD:\ in English BSLASH > IFDEF V30FAO < /A037 CDCMND /A037 CCEDLA /A037 > > IFDEF ITALIAN < CUDGTL TEXT '*' > IFDEF V30NOR < CUDGTL TEXT "'"> IFDEF V30SWE < CUDGTL TEXT "'"> IFDEF DUTCH < CDCMND / GOLD:\ in English BSLASH > IFDEF SPANISH < CDCMND /A037 CCEDLA /A037 > IFDEF CONDOR < / / technical character /a021 / CDXTC 0 > / /A012 / HELP /A012 / /A012 CDHELP /A012 0 /A012 / /A018 / PREVIOUS SCREEN /A018 / /A018 CDPRSC /A018 0 /A018 / /A018 / NEXT SCREEN /A018 / /A018 CDNXSC /A018 0 /A018 / /A018 / UP ARROW (CURSOR UP) /A018 / /A018 CDUPAR /A018 0 /A018 / /A018 / DOWN ARROW (CURSOR DOWN) /A018 / /A018 CDDNAR /A018 0 /A018 IFDEF CONDOR < /A019 / /A018 / RIGHT ARROW (CURSOR RIGHT) /A018 / /A018 CDRARO /A018 0 /A018 / /A018 / LEFT ARROW (CURSOR LEFT) /A018 / /A018 CDLARO /A018 0 /A018 / /A018 / GOLD: RIGHT ARROW /A018 / /A018 CDGRAR /A018 0 /A018 / /A018 / GOLD: LEFT ARROW /A018 / /A018 CDGLAR /A018 0 /A018 > / END IFDEF CONDOR /M019 / /A018 / GOLD: SPACE (NONBREAKING SPACE - ALIAS REQUIRED SPACE) /A018 / /A018 CDRQSP /A018 0 /A018 IFDEF CONDOR < /A020 CDCOLM / COLUMN CUT /A020 0 /A020 > / END IFDEF CONDOR /A020 / / ??? / CDINOV /A038 0 / /D023 20 LINES / GOLD: for UDK activation / / CUDGTL / GOLD:9 / TEXT '9' / CUDGTL / GOLD:8 / TEXT '8' / CUDGTL / GOLD:7 / TEXT '7' / CUDGTL / GOLD:6 / TEXT '6' / CUDGTL / GOLD:5 / TEXT '5' / CUDGTL / GOLD:4 / TEXT '4' / CUDGTL / GOLD:3 / TEXT '3' / CUDGTL / GOLD:2 / TEXT '2' / CUDGTL / GOLD:1 / TEXT '1' / CUDGTL / GOLD:0 / TEXT '0' /END D023 20 LINES / CDSPCE, IFDEF ENGLSH < TEXT '&SPACE' > IFDEF ITALIAN < TEXT '&SPAZIO' > IFDEF V30NOR < TEXT '&ORDSKILLER'> /A039 IFDEF V30SWE < TEXT '&BLANK'> IFDEF DUTCH < TEXT '&SPATIE'> IFDEF SPANISH < TEXT '&ESPACE'> / CDRBCH, IFDEF ENGLSH < TEXT '&RUBCHR' > IFDEF ITALIAN < TEXT '&AN&CAR' > IFDEF V30NOR < TEXT '&SLETT TEGN'> /A039 IFDEF V30SWE < TEXT '&RATKN'> IFDEF DUTCH < TEXT '&R-TEK'> IFDEF SPANISH < TEXT 'BORCAR'> / CDRBWD, IFDEF ENGLSH < TEXT '&RUBWRD' > IFDEF ITALIAN < TEXT '&CANC&PA' > IFDEF V30NOR /A039 IFDEF V30SWE < TEXT '&RADRD'> IFDEF DUTCH < TEXT '&R-WRD'> IFDEF SPANISH < TEXT '&BORPAL'> / CDNWLN, IFDEF ENGLSH < TEXT '&RETURN' > IFDEF ITALIAN < TEXT '&RITORNO' > IFDEF V30NOR < TEXT '&RETUR'> /A039 IFDEF V30SWE < TEXT '&RET'> IFDEF DUTCH < TEXT '&RETURN> IFDEF SPANISH < TEXT '&RETORNO'> / CDCRET, IFDEF ENGLSH < TEXT '&PARMRK' > IFDEF ITALIAN < TEXT '&CRE&PAR' > IFDEF V30NOR < TEXT '&AVSNITMRK'> /A039 IFDEF V30SWE < TEXT '&STYMARK'> IFDEF DUTCH < TEXT '&ALIMRK'> IFDEF SPANISH < TEXT '&MRKPAR'> / CDTAB, IFDEF ENGLSH < TEXT '&TAB' > IFDEF ITALIAN < TEXT '&TAB' > IFDEF V30NOR < TEXT '&TAB'> IFDEF V30SWE < TEXT '&TABB'> IFDEF DUTCH < TEXT '&TAB'> IFDEF SPANISH < TEXT '&TAB'> / CDTABC, / /d022 IFDEF ENGLSH < TEXT '&TABCEN' > /d022 IFDEF CANADA < TEXT "&CENTAB" > /d022 IFDEF FRENCH < TEXT "&TABCEN" > /d022 IFDEF DUTCH < TEXT "&TABCEN" > /d022 IFDEF GERMAN < TEXT "&TABCEN" > /d022 IFDEF NORWAY < TEXT "&TABSEN" > /d022 IFDEF SWEDSH < TEXT "&TABCEN" > /d022 IFDEF DANISH < TEXT "&TABCEN" > / IFDEF ENGLSH < TEXT "&G-TAB" > /A022 IFDEF ITALIAN < TEXT "&O-&TAB" > IFDEF V30NOR < TEXT '&G-TAB'> /A039 IFDEF V30SWE < TEXT '&G-TABB'> IFDEF DUTCH < TEXT '&G-TAB'> IFDEF SPANISH < TEXT '&D-TAB'> / CDRBLN, IFDEF ENGLSH < TEXT '&RUBLIN' > IFDEF ITALIAN < TEXT '&AN&RIG' > IFDEF V30NOR < TEXT '&SLETT LINJE'> /A039 IFDEF V30SWE < TEXT '&RARAD'> IFDEF DUTCH < TEXT '&WISREG'> IFDEF SPANISH < TEXT '&BORLIN'> / CDRBSE, IFDEF ENGLSH < TEXT '&RUBSEN' > IFDEF ITALIAN < TEXT '&CANC&FR' > IFDEF V30NOR < TEXT '&SLETT SETN'> /A039 IFDEF V30SWE < TEXT '&RAMEN'> IFDEF DUTCH < TEXT '&WISZIN'> IFDEF SPANISH < TEXT '&BORFRA'> / CDDLTC, IFDEF ENGLSH < TEXT '&DELCHR' > IFDEF ITALIAN < TEXT '&CAN&CAR' > IFDEF V30NOR < TEXT '&TEGN UT'> /A039 IFDEF V30SWE < TEXT '&RATKN'> IFDEF DUTCH < TEXT '&WISTEK'> IFDEF SPANISH < TEXT '&BORCAR'> / CDDLTW, IFDEF ENGLSH < TEXT '&DELWRD' > IFDEF ITALIAN < TEXT '&CAN&PAR' > IFDEF V30NOR < TEXT 'ORD UT'> /A039 IFDEF V30SWE < TEXT '&RAORD'> IFDEF DUTCH < TEXT '&WISWRD'> IFDEF SPANISH < TEXT '&BORPAL'> / CDWORD, IFDEF ENGLSH < TEXT '&WORD' > IFDEF ITALIAN < TEXT '&PAROLA' > IFDEF V30NOR < TEXT '&ORD'> /A039 IFDEF V30SWE < TEXT '&ORD'> IFDEF DUTCH < TEXT '&WOORD'> IFDEF SPANISH < TEXT '&PALAB'> / CDSENT, IFDEF ENGLSH < TEXT '&SENT' > IFDEF ITALIAN < TEXT '&FRASE' > IFDEF V30NOR < TEXT '&SETN'> /A039 IFDEF V30SWE < TEXT '&MEN'> IFDEF DUTCH < TEXT '&ZIN'> IFDEF SPANISH < TEXT '&FRASE'> / CDLINE, IFDEF ENGLSH < TEXT '&LINE' > IFDEF ITALIAN < TEXT '&RIGA' > IFDEF V30NOR < TEXT '&LINJE'> /A039 IFDEF V30SWE < TEXT '!&RAD'> IFDEF DUTCH < TEXT '®EL'> IFDEF SPANISH < TEXT '&L\MNEA'> / CDTABP, IFDEF ENGLSH < TEXT '&TABPOS' > IFDEF ITALIAN < TEXT '&CER&TAB' > IFDEF V30NOR < TEXT '&TABPOS'> /A039 IFDEF V30SWE < TEXT '&TABBPOS'> IFDEF DUTCH < TEXT '&TABPOS'> IFDEF SPANISH < TEXT '&POSTAB'> / CDENTR, TEXT '!<>' CDPAGE, IFDEF ENGLSH < TEXT '&PAGE' > IFDEF ITALIAN < TEXT "&PAGINA" > IFDEF V30NOR < TEXT '&SIDE'> /A039 IFDEF V30SWE < TEXT '&SIDA'> IFDEF DUTCH < TEXT '&PAGINA'> IFDEF SPANISH < TEXT '&P\AG'> / CDPARA, IFDEF ENGLSH < TEXT '&PARA' > IFDEF ITALIAN < TEXT '&PARAGR' > IFDEF V30NOR < TEXT '&AVSNITT'> /A039 IFDEF V30SWE < TEXT '&STY'> IFDEF DUTCH < TEXT '&ALINEA'> IFDEF SPANISH < TEXT '&PARRA'> / CDADVN, IFDEF ENGLSH < TEXT '&ADVANC' > IFDEF ITALIAN < TEXT '&AVANTI' > IFDEF V30NOR < TEXT '&FREM'> /A039 IFDEF V30SWE < TEXT '&FRAM'> IFDEF DUTCH < TEXT '&VOORUIT'> IFDEF SPANISH < TEXT '&DELAN'> / CDBKUP, IFDEF ENGLSH < TEXT '&BACKUP' > IFDEF ITALIAN < TEXT '&INDIET' > IFDEF V30NOR < TEXT '&TILBAKE'> /A039 IFDEF V30SWE < TEXT '&BAK'> IFDEF DUTCH < TEXT '&TERUG'> IFDEF SPANISH < TEXT '&ATR\AS'> / CDGADV, IFDEF ENGLSH < TEXT '&G-&ADV' > IFDEF ITALIAN < TEXT '&O-&AVA' > IFDEF V30NOR < TEXT '&G-FREM'> /A039 IFDEF V30SWE < TEXT '&G-FRAM'> IFDEF DUTCH < TEXT '&G-&VRT'> IFDEF SPANISH < TEXT '&D-&ADEL'> / CDGBKP, IFDEF ENGLSH < TEXT '&G-&BACK' > IFDEF ITALIAN < TEXT '&O-&INDI' > IFDEF V30NOR < TEXT '&G-TILBAKE'> /A039 IFDEF V30SWE < TEXT '&G-BAK'> IFDEF DUTCH < TEXT '&G-&TRG'> IFDEF SPANISH < TEXT '&D-&ATR\AS'> / CDBOLD, IFDEF ENGLSH < TEXT '&BOLD' > IFDEF ITALIAN < TEXT '&NERET' > IFDEF V30NOR < TEXT '&FET'> /A039 IFDEF V30SWE < TEXT '&FET'> IFDEF DUTCH < TEXT '&VET'> IFDEF SPANISH < TEXT '&NEGR'> / CDSLCT, IFDEF ENGLSH < TEXT '&SEL' > IFDEF ITALIAN < TEXT '&SEL' > IFDEF V30NOR < TEXT '&VELG'> /A039 IFDEF V30SWE < TEXT '&MARK'> IFDEF DUTCH < TEXT '&SEL'> IFDEF SANISH < TEXT '&SEL'> / CDUPPR, IFDEF ENGLSH < TEXT '&UPPER' > IFDEF ITALIAN < TEXT '&MAIUS' > IFDEF V30NOR < TEXT 'STORE BOKST'> /A039 IFDEF V30SWE < TEXT '&VERS'> IFDEF DUTCH < TEXT '&HOOFDL'> IFDEF SPANISH < TEXT 'MAY\ZSC'> / CDUNDL, IFDEF ENGLSH < TEXT '&UNDER' > IFDEF ITALIAN < TEXT '&SOTTOL' > IFDEF V30NOR < TEXT 'UNDERSTREK'> /A039 IFDEF V30SWE < TEXT '&GEM'> IFDEF DUTCH < TEXT '&ONDER'> IFDEF SPANISH < TEXT 'SUBRY'> / CDSCUT, IFDEF ENGLSH < TEXT '&CUT' > IFDEF ITALIAN < TEXT '&TOGLI' > IFDEF V30NOR < TEXT '&TA UT'> /A039 IFDEF V30SWE < TEXT '&KLIPP'> IFDEF DUTCH < TEXT '&KNIP'> IFDEF SPANISH < TEXT '&CORTA'> / CDSWAP, IFDEF ENGLSH < TEXT '&SWAP' > IFDEF ITALIAN < TEXT '&SCAMB&C' > IFDEF V30NOR < TEXT '&BYTT OM'> /A039 IFDEF V30SWE < TEXT '&SKIFT'> IFDEF DUTCH < TEXT '&VERWIS'> IFDEF SPANISH < TEXT '&INTCAM'> / CDPSTE, IFDEF ENGLSH < TEXT '&PASTE' > IFDEF ITALIAN < TEXT '&METTI' > IFDEF V30NOR < TEXT '&SETT INN'> /A039 IFDEF V30SWE < TEXT '&KLISTRA'> IFDEF DUTCH < TEXT '&PLAK'> IFDEF SPANISH < TEXT 'PEGA'> / CDUDLT, IFDEF ENGLSH < TEXT '&G-&DEL' > IFDEF ITALIAN < TEXT '&O-&CAN' > IFDEF V30NOR < TEXT 'G-UT'> /A039 IFDEF V30SWE < TEXT '&G-RA'> IFDEF DUTCH < TEXT '&G-WIS'> IFDEF SPANISH < TEXT '&D-&BORRA'> / CDUBLD, IFDEF ENGLSH < TEXT '&G-&BOLD' > IFDEF ITALIAN < TEXT '&O-&NERE' > IFDEF V30NOR < TEXT 'G-FET'> /A039 IFDEF V30SWE < TEXT '&G-FET'> IFDEF DUTCH < TEXT '&G-&VET'> IFDEF SPANISH < TEXT '&D-&BOLD'> / CDLOWR, IFDEF ENGLSH < TEXT '&G-&UPPR' > IFDEF ITALIAN < TEXT '&O-&MAIU' > IFDEF V30NOR < TEXT '&G-STORE BOKST'> /A039 IFDEF V30SWE < TEXT '&G-VERS'> IFDEF DUTCH < TEXT '&G-HFDL'> IFDEF SPANISH < TEXT '&D-MAY\Z'> / CDUUDL, IFDEF ENGLSH < TEXT '&G-&UNDR' > IFDEF ITALIAN < TEXT '&O-&SOTT' > IFDEF V30NOR < TEXT '&G-U_STREK'> /A039 IFDEF V30SWE < TEXT '&G-GEM'> IFDEF DUTCH < TEXT '&G-ONDR'> IFDEF SPANISH < TEXT '&D-&SUBR'> / CDHYPS, IFDEF ENGLSH < TEXT '&HYPUSH' > IFDEF ITALIAN < TEXT '&CAR&SU' > IFDEF V30NOR < TEXT '&DEL ORD !C^'> /A039 IFDEF V30SWE < TEXT '&AVSTUPP'> IFDEF DUTCH < TEXT '&KPL-V'> IFDEF SPANISH < TEXT '&SBGUI\SN'> / CDHYPL, IFDEF ENGLSH < TEXT '&HYPULL' > IFDEF ITALIAN < TEXT '&CAR&GIU' > IFDEF V30NOR < TEXT '&DEL ORD V'> /A039 IFDEF V30SWE < TEXT '&AVSTNED'> IFDEF DUTCH < TEXT '&KPL-&!^'> IFDEF SPANISH < TEXT '&BAJAG'> / CDGCUT, IFDEF ENGLSH < TEXT '&G-&CUT' > IFDEF ITALIAN < TEXT '&O-&TOGL' > IFDEF V30NOR < TEXT '&G-TA UT'> /A039 IFDEF V30SWE < TEXT '&G-KLIPP'> IFDEF DUTCH < TEXT '&G-&KNIP'> IFDEF SPANISH < TEXT '&D-&CORTA'> / CDGPST, IFDEF ENGLSH < TEXT '&G-&PSTE' > IFDEF ITALIAN < TEXT '&O-&METT' > IFDEF V30NOR < TEXT '&G-SETT INN'> /A039 IFDEF V30SWE < TEXT '&G-KLISTRA'> IFDEF DUTCH < TEXT '&G-&PLAK'> IFDEF SPANISH < TEXT '&D-PEGA'> / CDGPGE, IFDEF ENGLSH < TEXT '&G-&PAGE' > IFDEF ITALIAN < TEXT '&O-&PAGI' > IFDEF V30NOR < TEXT '&G-SIDE'> IFDEF V30SWE < TEXT '&G-SIDA'> IFDEF DUTCH < TEXT '&G-&PAG'> IFDEF SPANISH < TEXT '&D-&P\AG'> / / The next text statements were removed from the previous "8" page to / make room / CDCMND, IFDEF ENGLSH < TEXT '&G&O&L&D:!A' > IFDEF ITALIAN < TEXT '&ORO:!A' > IFDEF V30NOR < TEXT '!&GOLD: !A'> IFDEF V30SWE < TEXT '&GULD:!A'> IFDEF DUTCH < TEXT '&GOUD:!A'> IFDEF SPANISH < TEXT '&DOR:!A'> / CUDGTL, IFDEF ENGLSH < TEXT '&G&O&L&D:&^S' > IFDEF ITALIAN < TEXT '&ORO:&^S' > IFDEF V30NOR < TEXT '!&GULL:&^S'> IFDEF V30SWE < TEXT '&GULG: &^S'> IFDEF DUTCH < TEXT '&GOUD:&^S'> IFDEF SPANISH < TEXT '&DOR:&^S'> / CUDMS4, TEXT '^P' / IFNDEF FRENCH < CUDLCB, "{-200 / curly bracket 0000 / end of list > IFDEF ITALIAN < ITAST1, "l;0 ITAST2, "r;0 ITAST3, "0;0 ITAST4, "y;0 > IFDEF V30NOR < OSLASH, 330;0 /O with slash /A039 ARING, 305;0 / A with ring /A039 AE, 306;0 / Ae ligature /A039 > IFDEF SPANISH < OSLASH, 330;0 /O with slash /A039 ARING, 305;0 / A with ring /A039 AE, 306;0 / Ae ligature /A039 > IFDEF V30SWE < ARING, 305;0 UUMLAT, 334;0 AUMLAT, 304;0 > IFDEF ENGLSH < BSLASH, 134;0 > / Backslash /A039 IFDEF DUTCH < BSLASH, 134;0 > / Backslash /A039 IFDEF V30FAO < CCEDLA, 347;0 NENIA, 321;0 > IFDEF SPANISH < CCEDLA, 347;0 NENIA, 321;0 > / IFDEF FRENCH < > / Not used in french / IFDEF V30FAO < ACUTE, 0140 / ` for CMND for FAO /A037 0000 /A037 > IFDEF SPANISH < ACUTE, 0140 / ` for CMND for FAO /A037 0000 /A037 > IFDEF CONDOR < CDXTC, IFDEF ENGLSH /C034 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH > CDHELP, IFDEF ENGLSH /A012 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDPRSC, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDNXSC, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDUPAR, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDDNAR, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH IFDEF CONDOR < /A019 CDRARO, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDLARO, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDGRAR, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH CDGLAR, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH > / END IFDEF CONDOR /M019 CDRQSP, IFDEF ENGLSH /A018 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH IFDEF CONDOR < /A020 CDCOLM, IFDEF ENGLSH / COLUMN CUT /A020 IFDEF ITALIAN IFDEF V30NOR /A039 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH > / END IFDEF CONDOR /A020 CDINOV, IFDEF ENGLSH /A038 IFDEF V30NOR /A039 IFDEF ITALIAN IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH