/ 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 <TEXT "&U&D&K:!2D">				/A031
	IFDEF ITALIAN <TEXT "!&TDU:!2D">
	IFDEF V30NOR <TEXT '!&BDT: !2D'>				/A039
	IFDEF V30SWE < TEXT '!&DT: !2D'>
	IFDEF DUTCH  <TEXT '!&UDK: !2D'>
	IFDEF SPANISH <TEXT '!&TDU: !2D'>


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:<character>
/	where <character> is a TEXT string
/	"Calling" sequence:
/	CUDGTL
/	TEXT "*"	(where "*" is one character)
/
/	CDCMND	- Prints GOLD:<list> 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:<number> 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 	<TEXT '&SLETT ORD'>				/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 '&REGEL'>
	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	<TEXT "&ALTCHR">				/C034
	IFDEF ITALIAN	<TEXT "&CAR&ALT">
	IFDEF V30NOR 	<TEXT '&ALT TEGN'>				/A039
	IFDEF V30SWE	<TEXT '&ALT-TKN'>
	IFDEF DUTCH	<TEXT '&ALT-TKN'>
	IFDEF SPANISH	<TEXT '&CARALT'>
	>

CDHELP,	IFDEF ENGLSH	<TEXT "&HELP">					/A012
	IFDEF ITALIAN	<TEXT "&GUIDA">
	IFDEF V30NOR	<TEXT '&HJELP'>					/A039
	IFDEF V30SWE	<TEXT '&HJ\DLP'>
	IFDEF DUTCH	<TEXT '&HELP'>
	IFDEF SPANISH	<TEXT '&AYUDA'>


CDPRSC,	IFDEF ENGLSH	<TEXT "&PREVSC">				/A018
	IFDEF ITALIAN	<TEXT "&SCH&PRE">
	IFDEF V30NOR	<TEXT 'SKJERM TILBAKE'>				/A039
	IFDEF V30SWE	<TEXT '&F\VRBI'>
	IFDEF DUTCH	<TEXT '&VRGBLD'>
	IFDEF SPANISH	<TEXT '&PPEV'>


CDNXSC,	IFDEF ENGLSH	<TEXT "&NEXTSC">				/A018
	IFDEF ITALIAN	<TEXT "&SCH&SUC">
	IFDEF V30NOR	<TEXT 'SKJERM FREM'>				/A039
	IFDEF V30SWE	<TEXT '&N\DSTBI'>
	IFDEF DUTCH	<TEXT '&VLGBLD'>
	IFDEF SPANISH	<TEXT '&PROXP'>


CDUPAR,	IFDEF ENGLSH	<TEXT "&UP">					/A018
	IFDEF ITALIAN	<TEXT "&ALTO">
	IFDEF V30NOR	<TEXT 'OPP'>					/A039
	IFDEF V30SWE	<TEXT '&UPP'>
	IFDEF DUTCH	<TEXT '&OMHOOG'>
	IFDEF SPANISH	<TEXT '&ARRIBA'>


CDDNAR,	IFDEF ENGLSH	<TEXT "&DOWN">					/A018
	IFDEF ITALIAN	<TEXT "&BASSO">
	IFDEF V30NOR	<TEXT '&NED'>					/A039
	IFDEF V30SWE	<TEXT '&NED'>
	IFDEF DUTCH	<TEXT '&OMLAAG'>
	IFDEF SPANISH	<TEXT '&ABAJO'>

	
	IFDEF	CONDOR	<						/A019
CDRARO,	IFDEF ENGLSH	<TEXT "&RIGHT">					/A018
	IFDEF ITALIAN	<TEXT "&DESTRA">
	IFDEF V30NOR	<TEXT 'H\XYRE'>					/A039
	IFDEF V30SWE	<TEXT '&H\V'>
	IFDEF DUTCH	<TEXT '&RECHTS'>
	IFDEF SPANISH	<TEXT 'DERECHA'>


CDLARO,	IFDEF ENGLSH	<TEXT "&LEFT">					/A018
	IFDEF ITALIAN	<TEXT "&SINITR">
	IFDEF V30NOR	<TEXT 'VENSTRE'>				/A039
	IFDEF V30SWE	<TEXT '&V\D'>
	IFDEF DUTCH	<TEXT '&LINKS'>
	IFDEF SPANISH	<TEXT '&IZQ'>


CDGRAR,	IFDEF ENGLSH	<TEXT "&G-&RGHT">				/A018
	IFDEF ITALIAN	<TEXT "&O-&DEST">
	IFDEF V30NOR	<TEXT '&G-H\XYRE'>				/A039
	IFDEF V30SWE	<TEXT '&G-H\V'>
	IFDEF DUTCH	<TEXT '&G-&RCHT'>
	IFDEF SPANISH	<TEXT '&D-&DER'>
	

CDGLAR,	IFDEF ENGLSH	<TEXT "&G-&LEFT">				/A018
	IFDEF ITALIAN	<TEXT "&O-&SINI">
	IFDEF V30NOR	<TEXT '&G-VENSTRE'>				/A039
	IFDEF V30SWE	<TEXT '&G-V\D'>
	IFDEF DUTCH	<TEXT '&G-&LNKS'>
	IFDEF SPANISH	<TEXT '&D-&IZQ'>


	>			/ END IFDEF CONDOR			/M019

CDRQSP,	IFDEF ENGLSH	<TEXT "&G-&SPCE">				/A018
	IFDEF ITALIAN	<TEXT "&O-&SPAZ">
	IFDEF V30NOR	<TEXT '&G-&ORDSKILLER'>				/A039
	IFDEF V30SWE	<TEXT '&G-BLANK'>
	IFDEF DUTCH	<TEXT '&G-SPAT'>
	IFDEF SPANISH	<TEXT '&D-&ESP'>


	IFDEF	CONDOR	<						/A020
CDCOLM,	IFDEF ENGLSH	<TEXT "&COLUMN">		/ COLUMN CUT	/A020
	IFDEF ITALIAN	<TEXT "&COLONN">
	IFDEF V30NOR	<TEXT '&KOLONNE'>				/A039
	IFDEF V30SWE	<TEXT '&KLMN'>
	IFDEF DUTCH	<TEXT '&COL'>
	IFDEF SPANISH	<TEXT '&COL'>

	>			/ END IFDEF CONDOR			/A020

CDINOV,	IFDEF ENGLSH	<TEXT "&IN/&OV">				/A038
	IFDEF V30NOR	<TEXT "&I/&O">				/A039
	IFDEF ITALIAN	<TEXT "&IN/&OV">
	IFDEF V30SWE	<TEXT '&IN/&OV'>
	IFDEF DUTCH	<TEXT '&IN/&OV'>
	IFDEF SPANISH	<TEXT '&IN/&OV'>


