File: SET40.MA of Tape: OS8/OS8-V40/v40-7
(Source file text) 

/OS/8 SET FOR KBM V40
/
/
/
/
/
/
/
/
/COPYRIGHT  (C)  1978,1979,1980   BY DATAPLAN GMBH, LAUDA, BRD
/
/
/
/
/
/
/
/
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH.
/DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR
/IN THIS DOCUMENT.
/
/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
/(WITH INCLUSION OF DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN.
/
/DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
/OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN.
/
/
/
/
/
/
/
/
/
/
/W.V.D.MARK, DP CONSULTING, ZUERICH, SWITZERLAND
/JUL-1978
/JUL-1979
/DEZ-1979
/JAN-1980
/	EDIT HISTORY:

/	19-MAR-77	S.R.	REMOVED FROM CAMP V4
/	19-MAR-77	S.R.	FIXED BUG WITH SET MTA FILES
/	19-MAR-77	S.R.	FIXED BUG WITH SET CDR
/	19-MAR-77	S.R.	FIXED BUG WITH = OPTION
/	19-MAR-77	S.R.	CONVERTED TO MACREL CODE
/	01-APR-77	S.R.	TTY PAUSE
/	01-APR-77	S.R.	TTY HEIGHT
/	01-APR-77	S.R.	TTY SCOPE
/	17-APR-77	S.R.	REWROTE TTY PAGE
/	17-APR-77	S.R.	DEV: DVCODE
/	17-APR-77	S.R.	FINISHED TTY SCOPE
/	27-APR-77	S.R.	TTY COL
/	27-APR-77	S.R.	SYS OPTIONS (INIT, OS8, OS78)
/	03-MAY-77	S.R.	LA8A, LA78
/	03-MAY-77	S.R.	INIT OS78 FIXES TERMINATE
/	03-MAY-77	S.R.	BASIC FIXES
/	29-JUN-77	S.R.	TTY ARROW
/	29-JUN-77	S.R.	TTY ESC
/	29-JUN-77	S.R.	DEV BLK LOC
/	30-JUL-78	W.M.	DATA IN FIELD 1
/				OPTIMIZED CODE (6 FREE PAGES)
/				ENHANCED LPT COMMANDS FOR LPSS HANDLER
/				PRINTS THRU BATCH
/				GETS COMMANDS UP TO $ FROM BATCH STREAM
/	31-DEC-78	W.M.	SUPPORT FOR NEW TTY HANDLER(KL8EG)
/				LPT SUPPORT FOR EDIT & BATCH
/	1-MAR-79	W.M.	PRINTRONIX SUPPORT
/	1-JUL-79	W.M.	MACREL ONLY
/				SYS ASS,SYS DEA COMMANDS
/				GERMANIZED
/				MMISC OPTIONS
/	20-JAN-80	W.M.	ADAPT TO NEW VERSION NUMBERS 'M'
/				SET RB01,PDP8 OR VT78
	GERMAN=1
/	MUST SKIP LOCS 1000-1377

/FIELD 0
/0000-0777	/SET
/1000-1377	/OS/8 LINE BUFFER
/1400-6577	/SET
/6600-7177	/AUXILIARY I/O BUFFER
/7000-7177	/I/O BUFFER FOR TECO CCB
/7200-7577	/OS/8 HANDLER
/7600-7777	/OS/8

/FIELD 1
/2000-....	/ERRORS, MESSAGES, LISTS,...

/LOADING INSTRUCTIONS:
/	.MAC SET40
/	.LINK SET40,TTY:<SET40/B	/MUST GO THRU .BN
/	.LO SET40/9/P
/	.SA SYS SET
	BATOUT=7400
	BATIN=5400
	KMNTRY=400
	KMINIT=1077
	SCPBIT=7726	/BIT 4
	UDNAME=7741
	DCB=7760
	OS78BT=7771
	MMISC=7777
	LINBUF=1000
	AUXBUF=6600
	HANBUF=7200


	VERSL="0&77
	PATCHL="B&77

	.START 200,0
	.JSW 2401


/AC NUMERICAL LOADS FILE

	ACM3=	CLL STA RTL
	ACM2=	CLL STA RAL
	ACM1=	CLL STA
	AC0=	CLA CLL
	AC1=	CLA CLL IAC
	AC2=	CLA STL RTL
	AC3=	CLA STL IAC RAL
	AC4=	CLA CLL IAC RTL
	AC6=	CLA STL IAC RTL
	AC100=	CLA CLL IAC BSW
	AC2K=	CLA STL RTR
	AC3777=	CLL STA RAR
	AC4K=	CLA STL RAR
	AC5777=	CLL STA RTR
	AC6K=	CLA STL IAC RTR
	AC7775=	ACM3
	AC7776=	ACM2
	AC7777=	ACM1
	.XSECT XSET
XR1,	0
XR2,	0
XR3,	0
XR4,	0

	.ZSECT ZSET
TEMP,	0
T,	0
T2,	0
LINPTR,	0
T3,	0
FLAG,	0
SPKNT,	0
DEVTYP,	0		/DEVICE TYPE (BITS 6-11)
ENTRY,	0		/HANDLER ENTRY POINT
NUM,	0
TYP,	0		/0 MEANS 'F', 1 MEANS 'R'
T4,	0
DEVNUM,	0
DCW,	0		/DEVICE CONTROL WORD
DCWPTR,	0
USR,	200		/POINTS TO USR ENTRY POINT
ESCBIT,	0		/1 MEANS USER TYPED ESCAPE
CNT,	0
CTOFLG,	0		/-1 MEANS SAW ^O
PTR,	0
DHIT,	0		/DEVICE HANDLER INFO TABLE - 1
DHI,	0		/DEVICE HANDLER INFO
DBLK,	0		/DEVICE HANDLER BLOCK
VNOPTR,	0		/PTS TO VERSION # IN HANDLER
VNO,	0		/CURRENT HANDLER VERSION NUMBER
SAVPTR,	0
NO,	0		/1 MEANS 'NO'
FLG,	1		/1 MEANS SAW NO DIGITS
RR,	0
NUCODE,	0
SCOP,	0		/NON-0 IF TTY IS SCOPE
NUM2,	0
BTSTRP,	0		/USED BY RDAUX,WRAUX; THEN POINTER TO LOC
	.ASECT SETSTA
	FIELD 0
	*200

START,	SKP
	JMP CHN
	JMS BIT
	JMS I [READ	/READ A LINE INTO OS/8 LINE BUFFER
CHN,	TAD [LINBUF	/CHAIN ENTRY ADDRESS
	DCA LINPTR	/INITIALIZE POINTER TO LINE BUFFER
	JMS BIT
	STA
	JMS I [SPACE	/IGNORE LEADING SPACES
	JMS GETTWO	/GET TWO CHARS
	DCA TEMP
	JMS I [SCAN	/SCAN PAST EXTRA LETTERS OR DIGITS
	TAD TEMP
	JMS I [BRANCH	/GO TO APPROPRIATE ROUTINE
	BRSET
	SNA CLA
	JMP I [GOAWAY
SYNTAX,	JMS I	[ERROR	/NONE OF THESE
	ESYN

BIT,	0
	CDF 10
	TAD I (SCPBIT
	CDF 0
	AND [200
	DCA SCOP	/NOTE WHETHER TTY IS SCOPE	V3D
	AC2K
	AND I	(7777	/TEST IF UNDER BATCH
	SNA CLA
	JMP I	BIT
	TAD I	(7777	/YES; GET FIELD
	AND	[70
	TAD	(6202
	DCA I	(TYPEB	/SET BATCH PRINT
	TAD I	(TYPEB
	DCA I	(GETB	/SET BATCH INPUT
	JMP I BIT
/	GETTWO

/GET TWO LETTERS OR DIGITS FROM INPUT LINE, PACK IN SIXBIT
/ADVANCE PAST THEM. SUBSTITUTE NULL IF NOT FOUND.

GETTWO,	0
	JMS GETSIX
	CLL RTL
	RTL
	RTL
	DCA T2
	JMS GETSIX
	TAD T2		/COMBINE
	JMP I GETTWO

GETSIX,	0		/GET A SIXBIT LETTER OR DIGIT (OR NULL)
	JMS ALPHA	/IS IT ALPHANUMERIC?
	JMP NOTALPH	/NO
	AND [77		/YES
	JMP I GETSIX	/TRUNCATE TO SIXBIT
NOTALPH,CLA
	JMS BACKC
	JMP I GETSIX	/RETURN NULL

BACKC,	0		/MOVE SCAN POINTER BACK ONE
	STA
	TAD LINPTR
	DCA LINPTR
	JMP I BACKC	/RETURN
/RETURN 1	NOT OF TYPE DESIRED
/RETURN 2	DESIRED TYPE
/IN BOTH CASES, CHAR IS LEFT IN AC

ALPHA,	0		/LOOK FOR ALPHANUMERIC
	JMS I [GETC
	JMS LETTER	/IS IT A LETTER?
	JMP TRYDIG	/NO, TRY DIGIT
	JMP GOTAL	/YES
TRYDIG,	JMS DIGIT	/IS IT A DIGIT?
	JMP I ALPHA	/NO, AINT LETTER OR DIGIT
GOTAL,	ISZ ALPHA	/YES, EITHER LETTER OR DIGIT
	JMP I ALPHA	/RETURN WITH IT IN AC

LETTER,	0		/LOOK FOR LETTER
	TAD (-"A
	CLL
	TAD ("A-"Z-1
	SNL
	ISZ LETTER
	TAD ("Z+1	/RESTORE CHAR
	JMP I LETTER

DIGIT,	0		/LOOK FOR DIGIT
	TAD (-"0
	CLL
	TAD ("0-"9-1	/(DECIMAL)
	SNL
	ISZ DIGIT
	TAD ("9+1	/RESTORE DIGIT TO CHARACTER FORM
	JMP I DIGIT	/AND RETURN WITH IT IN AC
/SCAN PAST EXTRA LETTERS OR DIGITS

SCAN,	0
	JMS	ALPHA
	JMP NOPE
	CLA
	JMP SCAN+1
NOPE,	CLA
	JMS	BACKC
	JMP I SCAN

/SCAN PAST SPACES; GIVE ERROR IF NO SPACES FOUND UNLESS AC=-1

SPACE,	0
	DCA FLAG	/SET AC=-1 TO PREVENT ERROR ON NO SPACES FOUND
	DCA SPKNT	/INITIALIZE SPACE COUNTER
	SKP		/JUMP INTO LOOP
GOTSP,	ISZ SPKNT
	JMS I	[GETC	/GET NEXT CHAR
	TAD [-240
	SNA CLA		/IS IT A SPACE?
	JMP GOTSP	/YES, COUNT IT
	JMS	BACKC	/NO, PUT IT BACK
	ISZ FLAG	/CHECK FLAG
	SKP		/USER DIDN'T SPECIFY FLAG
	JMP I	SPACE	/-0 MEANT DON'T CHECK IF FOUND SPACE
	TAD SPKNT	/HOW MANY SPACES DID WE FIND?
	SZA CLA
	JMP I SPACE	/SOME.  OK
	JMP	SYNTAX	/NONE.  TSK. TSK.
	PAGE
ERROR,	0
	CDF 0
	AC2K		/RELOC!
	TAD I	ERROR
	DCA	.+2
	JMS PRINT
	0
GOAWAY,	TAD ESCBIT
	SZA CLA
	JMP	GOEXIT	/LINE ENDED WITH ESCAPE
	TAD I [READ	/WAS 'READ' EVER CALLED?
	SZA CLA
	JMP I [START	/YES, GET A NEW LINE
GOEXIT,	JMS I	[TYPE
	JMP I [7605	/NO, WE MUST'VE BEEN CHAINED TO, RECALL KBM

PRINT,	0
	TAD I PRINT
	DCA	DPRINT
PRINTL,	CDF 10
	TAD I	DPRINT
	BSW
	JMS PRIN
	CDF 10
	TAD I DPRINT
	JMS PRIN
	ISZ DPRINT
	JMP PRINTL
LV,	JMS I [CRLF
	ISZ PRINT
	JMP I PRINT
DPRINT,	0

PRIN,	0
	CDF 0
	AND [77
	SNA
	JMP LV
	TAD [240
	AND [77
	TAD [240
	JMS	TYPIT
	JMP I	PRIN
TYPIT,	0
	DCA T3
	KSF
	JMP	NOKBD
GEGEKB,	KRB
	AND	[177
	TAD	(-3
	SNA
	JMP	CTRLC
	TAD	(203-217	/^O
	SNA
	JMP	CTRLO
	TAD	(217-223	/^S?
	SNA CLA
	JMP	CTRLS
NOKBD,	TAD	T3
	JMS I	[TYPE
	JMP I	TYPIT

CTRLC,	TAD	["^
	JMS I	[TYPE
	TAD	("C
	JMS I	[TYPE	/ECHO "^C"
	JMP	I [7600	/THEN GO AWAY

CTRLO,	TAD	["^
	JMS I	[TYPE
	TAD	("O
	JMS I	[TYPE
	JMS I	[CRLF
	STA
	DCA	CTOFLG	/STOP ECHOING
	JMP	NOKBD

CTRLS,	KSF		/WAIT FOR NEXT
	JMP	CTRLS
	JMP	GEGEKB
BATERR,	ISZ	ESCBIT	/SIGNAL END
	JMS	ERROR
	EBERR
NONEX,	JMS	ERROR
	EDVNEX
SYSERR,	JMS	ERROR
	EIOSYS
BADKBM,	JMS	ERROR
	EOLDVE
REASEM,	JMS	ERROR
	ERKL8E
ZERERR,	JMS	ERROR
	EZERO

HELP,	JMS	PRINT
	MHELP1
	JMS	PRINT
	MHELP2
	JMS	PRINT
	MHELP3
	JMP I	[START
VERSION,JMS	PRINT
	MVER
	JMP I	[START

VERTST,	0		/TEST FOR OLD VERSION NUMBER
	TAD I	VERTST	/"X IS ARG TO VERTST
	AND	[77	/ONLY 6 BIT
	CIA
	TAD	VNO	/THIS HANDLERS VESION NUMBER
	SPA CLA		/THIS AND NEWER HANDLERS ALLOWED
OLDERR,	JMS	ERROR
	EOBSHD
	JMP I	VERTST	/FALL THRU ARG
	PAGE
SYSOS8,	0
	TAD NO		/REVERSE MEANING OF 'NO'
	SNA CLA
	IAC
	DCA NO
	JMS SYS78
	JMP I SYSOS8

SYS78,	0
	TAD (OS78BT
	JMS I [SET200
	TAD	(OS78BT&177+200
	JMS I	[RDAUX
	0
	JMS I [SET200
	JMS I	[WRAUX
	TAD	(56
	JMS I	[RDAUX	/THERE'S A 2ND COPY
	11		/IN BLOCK 11 LOCATION 56
	JMS I [SET200
	JMS I	[WRAUX
	JMP I SYS78

INIMSG,	"@;"I;"N;"I;"T;0
SYSINI,	0
	JMS I [GETC
	SNA CLA
	JMP DEFINI	/ASSUME @INIT
	TAD NO
	SZA CLA
	JMP I [SYNTAX	/SET SYS NO INIT CMD
	JMS I [BACKC
	TAD LINPTR
	DCA SAVLP
	TAD (-6		/ALLOW A MAXIMUM OF 5 CHARS
	DCA SAVKN
SAVLUP,	JMS I [GETC
	SNA CLA
	JMP DEFDO
	ISZ SAVKN
	JMP SAVLUP
	JMS I [ERROR
	EICOBG

SAVKN,	0
SAVLP,	0

DEFINI,	TAD (INIMSG
	DCA SAVLP
DEFDO,	TAD	[77
	JMS I	[RDAUX
	0
	TAD NO
	SZA CLA
	TAD (KMNTRY-KMINIT
	TAD (KMINIT
	DCA I	BTSTRP
	JMS I	[WRAUX
	TAD NO
	SZA CLA
	JMP I SYSINI
	ACM1
	JMS I	[RDAUX
	11
	STA
	TAD SAVLP
	DCA XR2
	TAD	BTSTRP
	DCA XR3
	TAD (-5
	DCA SAVKN
MOVL,	TAD I XR2
	DCA I XR3
	ISZ SAVKN
	JMP MOVL
	JMS I	[WRAUX
	JMP I SYSINI
RDAUX,	0		/READ 2 PAGES INTO AUXBUF
	DCA	BTSTRP	/ADRESS TO BE MODIFIED
	TAD	BTSTRP
	AND	[7600
	SNA CLA
	TAD I	(7612	/CHECK FOR 2-PAGE SYS
	TAD	(-3
	SNA CLA
	TAD	(66	/YES; MAYBE WE WANT BLK 66
	DCA	AUXBLK
	TAD I	RDAUX	/NOW GET WANTED BLK
	ISZ	RDAUX
	SNA
	TAD	AUXBLK	/WANTED BLK 0, MAYBE GETS 66
	DCA	AUXBLK
	JMS I	[7607
	200
	AUXBUF
AUXBLK,	0
	JMP I	[SYSERR
	TAD	AUXBLK-1
	TAD	BTSTRP
	DCA	BTSTRP	/POINTS TO DESIRED LOC
	JMP I	RDAUX

WRAUX,	0
	TAD	BTSTRP
	SNA CLA
	JMP I	WRAUX	/ONLY WRITE ONCE
	TAD	AUXBLK
	DCA	.+4
	JMS I	[7607
	4200
	AUXBUF
	0
	JMP I	[SYSERR
	DCA	BTSTRP	/SET WRITTEN FLAG
	JMP I	WRAUX

	PAGE
	FIELD 0
	*1400


TTAROW,	0		/V3D
	JMS I (TTYTST
	AC2
	JMS I [SRCH
	300;30;6203
	JMP I [REASEM
	TAD	TEMP
	AND	[177
	TAD	(5200
	DCA	T
	AC1
	JMS I	[SRCH
	340;20;32
	JMP I	[REASEM
	TAD	TEMP
	AND	[177
	TAD	(5200
	DCA	T3
	TAD	(13
	TAD	TEMP
	DCA	TEMP
	TAD NO
	SNA CLA
	JMP YESARO	/YES
	TAD	T3
NOAROW,	DCA I TEMP
	JMP I TTAROW
YESARO,	TAD	T
	JMP NOAROW
GENBLK,	0		/V3D
	JMS I (GENCMN
	TAD NUM2
	DCA BLOK	/GET BLOCK NUMBER
	TAD (LOC
	JMS I [KEYSRCH
	JMP I [SYNTAX
	JMS I (GENCMN	/GET LOCATION
	TAD [-400
	CLL
	TAD NUM2
	SZL CLA
	JMP I [NUMBIG
	TAD NUM2
	TAD PAUXBUF
	DCA NUM2
	JMS I ENTRY	/READ BLOCK
	200
PAUXBUF,AUXBUF
BLOK,	0
	JMP I [SYSERR
	TAD TEMP
	SNA CLA
	JMS I (ODT
	JMS I [ONUM
	DCA NUM
	CLA IAC
	DCA DEVNUM	/FAKE OUT - PREVENTS RE-WRITING USED HANDLER
	TAD FLG
	SZA CLA
	JMP I GENBLK
	JMS I [GETC
	SZA CLA
	JMP I [SYNTAX
	TAD NUM
	DCA I NUM2	/SET NEW VALUE
	TAD BLOK
	DCA BLOK2
	JMS I ENTRY
	4200
	AUXBUF
BLOK2,	0
	JMP I [SYSERR
	JMP I GENBLK
TTGAG,	0
	TAD	(33
	JMS I	(TYPIT
	TAD	(110
	JMS I	(TYPIT
	TAD	(33
	JMS I	(TYPIT
	TAD	(112
	JMS I	(TYPIT
	TAD	[-10
	DCA	TEMP
	TAD	(12
	JMS I	(TYPIT
	ISZ	TEMP
	JMP	.-3
	JMS I [PRINT
	MGAG1
	JMS I [PRINT
	MGAG2
	JMS I [PRINT
	MGAG3
	JMS I [PRINT
	MGAG4
	JMS I [PRINT
	MGAG5
	JMS I [PRINT
	MGAG6
	JMS I [PRINT
	MGAG7
	JMP I	TTGAG
	PAGE
BRANCH,	0
	DCA T
	ACM1
	TAD I	BRANCH
	DCA	DBRANC
	ISZ	BRANCH
	CDF 10
BR2,	ISZ	DBRANC
	TAD I DBRANC
	ISZ DBRANC
	SNA
	JMP NOTFND
	TAD T
	SZA CLA
	JMP	BR2
	TAD I DBRANC
	DCA T
	CDF 0
	JMP I T		/FOUND ITEM IN COLUMN 1, JUMP TO ADDRESS IN COL 2
NOTFND,	TAD T
	CDF 0
	JMP I BRANCH	/IF NOT FOUND IN COL 1, RETURN WITH AC INTACT
DBRANC,	0


LP78,	0	/ALL DO THE SAME , BUT USE OTHER LISTS
	AC0	/THE AC TELLS WHICH LIST, EACH LIST 8 LONG
	JMS	LPCHNG
	JMP I LP78
LP8A,	0
	AC1
	JMS	LPCHNG
	JMP I	LP8A
LPLX,	0
	AC2
	JMS	LPCHNG
	JMP I	LPLX
LPSLU2,	0
	AC3
	JMS	LPCHNG
	JMP I	LPSLU2
LPSLU3,	0
	AC4
	JMS	LPCHNG
	JMP I	LPSLU3
LPCHNG,	0	/FOR LPSS LINE-PRINTER HANDLER
	CLL RTL
	RAL
	TAD	(LPIOTL-1
	DCA	XR3	/POINT TO START OF CORRECT LIST
	JMS I (LPTTST
	AC2
	JMS I	[SRCH
	7;100;7640
	JMP I	(OLDERR
	JMS	LPGET
	DCA I	TEMP
	AC3
	JMS I [SRCH
	100;100;7700
	JMP I (OLDERR
	TAD I TEMP
	AND [7000
	TAD [-7000
	SZA CLA		/NOP OR CMA
	JMP I (OLDERR
	JMS	LPGET
	DCA I TEMP
	ISZ TEMP
	TAD I TEMP
	AND [7000
	TAD (-6000
	SZA CLA
	JMP I (OLDERR
	JMS	LPGET
	DCA I TEMP
	ISZ TEMP
	JMS	LPGET
	DCA I TEMP
	AC2
	JMS I [SRCH
	100;100;6203
	JMP I (OLDERR
	JMS	LPGET
	DCA I	TEMP
	AC1
	JMS I	[SRCH
	100;100;6201
	JMP I	(OLDERR
	JMS	LPGET
	DCA I	TEMP
	JMS I	(EDIBAT	/CHANGE EDIT FOR VIEW AND BATCH
	JMP I	LPCHNG

LPGET,	0		/GET ITEM FROM LIST IN FIELD 1
	CDF 10
	TAD I	XR3
	CDF 0
	JMP I	LPGET
	PAGE
/READ A LINE INTO OS/8 LINE BUFFER

READ,	0
	SNA CLA
RD1,	TAD	("#
	JMS	TYPE
	DCA CTOFLG	/ALLOW ECHOING
	TAD [LINBUF
	DCA LINPTR
GT,	DCA ESCBIT
	JMS I	(GET
LOOK,	JMS I [BRANCH
	BRIN
	DCA TEMP	/NONE OF THESE
	TAD LINPTR
	TAD (-LINBUF-377
	SNA CLA		/AT END OF LINE BUFFER?
	JMP GT		/YES, DON'T ACCEPT CHAR
	JMS	PRNT	/ECHO IT
	TAD TEMP	/INSERT IN BUFFER
	DCA I LINPTR
	ISZ LINPTR	/BUMP POINTER
	JMP GT		/NEXT

CTRLU,	TAD ["^
	JMS	TYPE
	TAD ("U
	JMS	TYPE	/ECHO "^U" <CR><LF>
BOL,	JMS	CRLF
	JMP RD1

PRNT,	0
	ISZ	RBFLAG
	JMP	.+3
	TAD	["\
	JMS	TYPE
	DCA	RBFLAG
	TAD	TEMP
	JMS	TYPE
	JMP I	PRNT
	BS=210

RUBOUT,	TAD LINPTR
	TAD [-LINBUF
	SNA
	JMP BOL		/AT BEGIN OF LINE
	TAD (LINBUF-1
	DCA LINPTR	/MOVE POINTER BACK ONE
	TAD SCOP
	SZA CLA
	JMP	RUBBS
	TAD	["\
	ISZ	RBFLAG
	JMS	TYPE
	ACM1
	DCA	RBFLAG
	TAD I	LINPTR
	JMS	TYPE
	JMP	GT

RUBBS,	TAD	(BS
	JMS	TYPE
	TAD	[240
	JMS	TYPE
	TAD	(BS
	JMS	TYPE
	JMP	GT
RBFLAG,	0

ESCAPE,	TAD ("$		/ECHO ESCAPE AS DOLLAR SIGN
	DCA	TEMP
	JMS	PRNT
	ISZ	ESCBIT	/NOTE ESCAPE
CR,	DCA I LINPTR	/INSERT 0 AT END
	JMS	CRLF
	JMP I READ	/RETURN, WE GOT LINE

LF,	DCA I LINPTR	/TEMPORARILY INSERT A 0 SENTINEL
	TAD (LINBUF-1
	DCA XR1
	JMS	CRLF
	TAD ("#
	JMS	TYPE
LFLP,	TAD I XR1
	SNA
	JMP	GT	/FINISHED, GET SOME MORE CHARS
	JMS	TYPE	/ECHO CURRENT CHARS
	JMP LFLP
TYPE,	0
	DCA TYPEM
	TLS
	JMS I	(DELAYY
	DCA	.-2
	DCA	.-2
	TAD	TYPEB	/UNDER BATCH?
	SZA CLA
	JMP	TYPEB	/YES PRINT INDIRECT
	TAD CTOFLG
	SZA CLA
	JMP I TYPE	/NO ECHOING
	TAD TYPEM
	SNA
	JMP I	TYPE
	TSF
	JMP .-1
	TLS
	CLA
	JMP I TYPE
TYPEM,	0
TYPEB,	0	/OR CIF BATCH FIELD
	TAD	TYPEM
	JMS I	(BATOUT
	JMP I	TYPE

CRLF,	0
	TAD [215
	DCA	TEMP
	JMS	PRNT
	TAD [212
	JMS	TYPE
	JMP I CRLF

	PAGE
/GET A DECIMAL NUMBER, RETURN IT IN AC

NUMBER,	0
	DCA NUM
	CLA IAC
	DCA FLG
NM1,	JMS I [GETC
	JMS I [DIGIT
	JMP EON
	TAD (-"0	/CONVERT TO DIGIT
	DCA T4
	DCA FLG		/NOTE PASSAGE OF A DIGIT
	TAD NUM
	AND [7000
	SZA CLA
	JMP I [NUMBIG
	TAD NUM
	CLL RTL
	TAD NUM
	CLL RAL
	TAD T4
	SZL
	JMP I [NUMBIG
	DCA NUM
	JMP NM1

EON,	CLA
	JMS I [BACKC
	STA
	JMS I	[SPACE
	TAD FLG
	SZA
	DCA NUM		/IF NO DIGITS, RETURN A 1
	TAD NUM
	JMP I NUMBER
/	GETDEV

/PARSES OFF A DEVICE NAME (1-4 CHARS)
/DETERMINES IF IT EXISTS
/LOADS HANDLER INTO 7200-7577 IF NOT ALREADY IN CORE
/SETS ENTRY POINT ADDRESS AT 'ENTRY'
/SETS DEVICE NUMBER AT 'DEVNUM'
/SETS DEVICE CONTROL WORD AT 'DCW'
/SETS 'DEVTYP'

GETDEV,	0
	JMS	COMBIN
	DCA WD1
INQ,	DCA WD2
	CIF 10
	JMS I USR
	12		/INQUIRE
WD1,	0		/DEVICE NAME
WD2,	0		/GETS DEVICE NUMBER
WD3,	0		/GETS ENTRY POINT
	JMP I [NONEX	/DEVICE DOESN'T EXIST
	TAD WD3
	SZA		/IS HANDLER ALREADY IN CORE?
	JMP INCORE	/YES
	TAD WD1
	DCA DW1
	TAD (HANBUF+1	/ALLOW TWO PAGE HANDLER
	DCA DW3
	DCA DW2
	CIF 10
	JMS I USR
	1		/FETCH
DW1,	0		/DEVICE NAME
DW2,	0		/GETS DEVICE NUMBER
DW3,	0		/GETS ENTRY POINT
	JMP I [NONEX	/DOESN'T EXIST
	TAD DW2
	DCA DEVNUM
	TAD DW3
	DCA ENTRY
	JMP GETYP
INCORE,	DCA ENTRY
	TAD WD2
	DCA DEVNUM
GETYP,	TAD DEVNUM
	TAD (7757
	DCA DCWPTR	/POINT INTO DEVICE CONTROL WGRD TABLE
	CDF 10
	TAD I DCWPTR	/GET DCW
	DCA DCW
	TAD DCW
	RTR
	RAR
	AND [77
	DCA DEVTYP
	STA
	TAD I (37	/GET ADDRESS OF DHIT
	DCA DHIT
	TAD DHIT
	TAD DEVNUM
	DCA DHI
	TAD I DHI
	CDF 0
	DCA DHI
	TAD DHI
	RTL
	RTL
	RTL
	AND [17
	SZA
	TAD (15
	DCA DBLK
	JMP I GETDEV

COMBIN,	0
	JMS I [GETTWO
	DCA WD1
	JMS I [GETTWO
	DCA WD2
	TAD WD1
	TAD WD2
	DCA WD1		/COMBINE TWO WORDS INTO 1 (IN WD1)
	TAD WD2
	SNA CLA
	JMP COMONE
	TAD WD1		/OS/8 KLUDGE FOR UNIQUENESS
	CLL RAL
	STL RAR		/FORCE BIT 0 ON IF 2ND WORD WAS NON-ZERO
	DCA WD1
COMONE,	TAD WD1
	JMP I	COMBIN
DELAYY,	0
	TAD [-10
	DCA OUTER
	ISZ ZER
	JMP .-1
	ISZ OUTER
	JMP .-3
	JMP I DELAYY
ZER,	0
OUTER,	-10
	PAGE
TTPAUS,	0
	JMS TTYTST
	TAD	(11
	JMS I [SRCH
	216;1;2200	/CHECK 'ISZ TTYPCH'
	JMP I [REASEM
	TAD I	TEMP
	AND	(7007
	TAD	(-6001	/CHECK 'PAUSL,KSF'
	SZA CLA
	JMP I	[REASEM
	JMS I	[SRCH
	326;1;5600	/CHECK 'JMP I TTYPCH'
	JMP I	[REASEM
	TAD	(PSTBL
	JMS I	(FIXUP
	DCA NUM
	JMS I [GETC
	SNA CLA
	JMP NOPA	/NO PAUSE VALUE
	TAD	NO
	SZA CLA
	JMP	NOPA	/SET TTY NO PAUSE XX?
	JMS I	[BACKC
	AC6K
	JMS I	[NUMCHK
	EPAUSE
	TAD NUM		/SCALE CORRECTLY
	CLL RAL
	TAD NUM
	CLL RTL
	DCA NUM
	AC4
	JMS I [SRCH
	330;20;11
	JMP I [REASEM
	TAD NUM
	CIA
	DCA I TEMP
NOPA,	JMS I (BASLUK
	JMP I TTPAUS
	TAD NUM
	CIA
	DCA I (AUXBUF+1
	JMS I	[WRAUX
	JMP I TTPAUS
ONUM,	0
	DCA NUM
	CLA IAC
	DCA FLG
ONM1,	JMS I [GETC
	TAD (-"0-10	/CONVERT TO DIGIT
	CLL
	TAD [10
	SNL
	JMP OEON
	DCA T4
	DCA FLG
	TAD NUM
	AND [7000
	SZA CLA
	JMP I [NUMBIG
	TAD NUM
	CLL RTL
	RAL
	TAD T4
	DCA NUM
	JMP ONM1
OEON,	CLA
	JMS I [BACKC
	STA
	JMS I	[SPACE
	TAD NUM
	JMP I ONUM

GET,	0
	TAD	GETB	/UNDER BATCH?
	SZA CLA
	JMP	GETB	/YES GET MORE FROM BATCH STREAM
	KSF
	JMP .-1
	KRB
	AND [177
	TAD [200	/FORCE TO 8-BIT
	JMP I GET
GETB,	0
	JMS I	(BATIN
	JMP I	(BATERR
	TAD	(-212	/IGNORE LFDS
	SNA
	JMP	GETB
	TAD	(212
	JMP I	GET

TTYTST,	0
	JMS I	(DBLTST
	JMS I	[VERTST
	"M
	JMP I	TTYTST

	PAGE
TTHGHT,	0
	TAD	[7600
	JMS	NUMCHK
	EBADHT
	JMS I (TTYTST
	TAD	(12
	JMS I [SRCH
	250;40;7600
	JMP I [REASEM
	TAD NUM
	CIA
	DCA I TEMP
	TAD I TEMP
	ISZ TEMP
	DCA I TEMP
	JMS I (BASLUK
	JMP I TTHGHT
	TAD NUM
	CIA
	DCA I (AUXBUF
	JMS I	[WRAUX
	JMP I TTHGHT

LPHGHT,	0
	TAD	[7600
	JMS	NUMCHK
	EBADHT
	JMS I	(LPTTST
	TAD	NUM
	CIA
	DCA I	(HANBUF+202
	JMP I	LPHGHT
TTCODE,	0
	TAD NO
	SZA CLA
	JMP I [SYNTAX
	JMS I [ONUM
	SNA
	JMP I [SYNTAX
	DCA NUCODE
	TAD NUCODE
	AND [7700
	SZA CLA
	JMP I [NUMBIG
	JMS I [TTYTST
	TAD	[HANBUF
	DCA RR
	JMS I	(GETIOT
	JMP I [OLDERR
	CIA
	DCA T2
TTLP,	JMS I	(GETIOT
	JMP I [OLDERR
	CIA
	DCA T3
	TAD T3
	CIA
	TAD T2
	SNA
	JMP TTLP
	SMA CLA
	JMP .+3
	TAD T3
	DCA T2		/T2 CONTAINS NEG OF SMALLER IOT
	TAD	[HANBUF
	DCA RR
TTLP2,	JMS I	(GETIOT
	JMP I TTCODE
	TAD T2
	SZA CLA
	CLA IAC
	TAD NUCODE
	CLL RTL
	RAL
	DCA T3
	TAD I RR
	AND (7007
	TAD T3
	DCA I RR
	JMP TTLP2
LPTAB,	0
	TAD	[7700
	JMS	NUMCHK
	EBADTB
	JMS I	(LPTTST
	TAD	NUM
	DCA I	(HANBUF+203
	JMP I	LPTAB

NUMCHK,	0		/CHECK FOR NUMERICAL ARG
	DCA	NUMMSK
	TAD I	NUMCHK
	ISZ	NUMCHK
	DCA	BADHIT+1	/ERROR MESSAGE
	TAD NO
	SZA CLA
	JMP I [SYNTAX	/SET DEV NO NUMBER
	JMS I	(OPTEQ	/CHECK =
	JMS I [NUMBER
	SNA
	JMP I	[ZERERR
	DCA NUM
	TAD FLG
	SZA CLA
NUMBIG,	JMS I	[ERROR	/NO NUMBER
	ENUBIG
	TAD	NUM
	AND	NUMMSK
	SZA CLA
BADHIT,	JMS I	[ERROR
	EBADHT		/WILL BE REPLACED
	JMP I	NUMCHK
NUMMSK,	0
	PAGE
SET200,	0		/DF IS SPECIALLY SET
	SZA
	DCA	BTSTRP	/IF AC=0 USE ADRESS FROM RDAUX
	TAD I	BTSTRP
	AND (7577
	DCA TEMP
	TAD TEMP
	TAD (-HLT
	SZA CLA
	JMP I (BADKBM
	TAD NO
	SNA CLA
	TAD [200
	TAD TEMP
	DCA I	BTSTRP
	JMP I SET200

FIXUP,	0
	DCA FIXPTR
FIXLUP,	CDF 10
	TAD I FIXPTR
	CDF 0
	SNA
	JMP I FIXUP
	DCA FIXLOC
	ISZ FIXPTR
	TAD NO
	SZA CLA
	ISZ FIXPTR
	CDF 10
	TAD I FIXPTR
	CDF 0
	DCA I FIXLOC
	TAD NO
	SNA CLA
	ISZ FIXPTR
	ISZ FIXPTR
	JMP FIXLUP
FIXPTR,	0
FIXLOC,	0
/	SCOPE BIT ON DISK:
/	BLOCK 0		REL 126	BIT 4

/	SCOPE BIT IN MEMORY:
/	LOC 17726	BIT 4

TTSCOP,	0
	JMS I	(TTYTST
	JMS I	[RDAUX
	11
	TAD (KBMTBL
	JMS FIXUP
	JMS I	[WRAUX
	JMS I	[RDAUX
	53
	TAD (CDTBL
	JMS FIXUP
	JMS I	[WRAUX
	TAD NO		/SET SCOPE BIT
	SNA CLA
	IAC
	DCA SCOP
	CDF 10
	TAD (SCPBIT
	JMS SET200
	CDF 0
	TAD	(SCPBIT&177
	JMS I	[RDAUX
	0
	JMS SET200
	JMS I	[WRAUX
	TAD	(14
	JMS I [SRCH
	150;20;-232
	JMP I [OLDERR
	TAD NO
	SNA CLA
	TAD	(1261-1230	/TAD TTY240
	TAD	(1230	/TAD TTY212
	DCA I	TEMP
	ISZ	TEMP
	ISZ	TEMP
	TAD	NO
	SNA CLA
	TAD	(1335-SKP	/TAD	TTY10
	TAD	(SKP
	DCA I	TEMP
	JMP I TTSCOP
BASLUK,	0
	TAD (BASNAM
	JMS I [LOOKUP
	JMP I BASLUK
	ISZ BASLUK
	TAD [7
	DCA BASBLK
	AC2
	JMS I	[RDAUX
BASBLK,	0
	TAD I	BTSTRP
	SNA CLA
	JMP I BASLUK
OLDBAS,	JMS I	[PRINT
	EOLBAS+2000
	JMP I BASLUK

BASNAM,	FILENAME BASIC.SV

	PAGE
SET,	JMS I [SPACE
	DCA VNO		/V3C
	JMS I [GETDEV
	JMS I [GETC
	JMS I [BRANCH
	BRCOHY
	JMP I [SYNTAX	/NO : OR BLANK AFTER NAME

COLN,	STA
	JMS I [SPACE	/IGNORE OPTIONAL SPACES
	JMS I [GETC
	SNA
	JMP I [SYNTAX
	TAD [-"-
	SNA CLA
	JMP HYPH
	JMS I [BACKC
COLN2,	CDF 10
	TAD	(2331
	DCA I	(NAM1+2000	/NAMS ARE RELOCATED
	TAD	(2300		/SET TO SYS
	DCA I	(NAM2+2000
	STA
	TAD DEVNUM
	SNA CLA
	JMP SYSDV
	TAD (MAIN-1	/LOOK FOR DEVICE TYPE IN MAIN TABLE
MNLUP,	DCA XR1
	TAD I XR1
	SMA SZA
	JMP NOTYP	/NOT FOUND
	TAD DEVTYP
	SNA CLA
	JMP FNDTYP
	AC3		/POINT TO NEXT ENTRY
	TAD XR1
	JMP MNLUP
FNDTYP,	TAD I XR1	/GET GENERIC NAME
	DCA I	(NAM1+2000
	TAD I XR1
	DCA I	(NAM2+2000
	DCA AUXFLG
	TAD I XR1	/GET PTR TO DEVICE TABLE
INTO,	CDF 0
	DCA PTR
	DCA NO
	TAD LINPTR
	DCA SAVPTR	/SAVE SCAN POINTER
	JMS I [GETTWO
	TAD (-'NO
	SNA		/ARE NEXT TWO CHARS 'NO'?
	JMP SAWNO	/YES
	TAD (<'NO>-<'KE>	/OR KE IN?
	SZA CLA
	JMP SAWNBK
SAWNO,	CLA IAC
	DCA NO
	JMS I [SCAN
	STA
	JMS I [SPACE
	TAD LINPTR
	DCA SAVPTR
	JMP SAWNBK
NOF,	ISZ PTR
SAWNBK,	TAD SAVPTR	/NO
	DCA LINPTR	/RESTORE PTR
SCNLUP,	CDF 10
	TAD I PTR
	SNA		/GET NEXT KEYWORD POINTER
	JMP NOKEY
	ISZ PTR		/POINT TO PTR TO ROUTINE
	JMS I [KEYSRCH
	JMP NOF		/NOT FOUND
	CDF 10
	TAD I PTR	/FOUND
	CDF 0
	DCA PTR		/GET PTR TO ROUTINE
	STA
	TAD DEVNUM
	SZA CLA
	JMS I (HREAD	/READ HANDLER
	JMS I PTR	/CALL ROUTINE
	STA
	TAD DEVNUM
	SZA CLA
	JMS I (HWRITE	/REWRITE HANDLER
	JMP I [GOAWAY
HYPH,	JMS I [ALPHA
	JMP I [BADV
	DCA VNO
	TAD VNO
	SNA
	JMP I [BADV
	AND [37
	DCA VNO
	JMS I [SPACE	/IGNORE SPACE
	JMP COLN2

NOKEY,	TAD AUXFLG
	SZA CLA
	JMS I [ERROR
	EUNKAT
NOO,	ISZ AUXFLG
	TAD (AUX
	DCA PTR
	JMP SCNLUP
NOTYP,	CLA
	DCA I	(NAM1+2000
	DCA I	(NAM2+2000
	TAD (AUX	/SEARCH AUXILIARY TABLE
	SKP
SYSDV,	TAD (SYSAUX
	ISZ AUXFLG
	JMP INTO	/V3D ALLOW SET SYS:

AUXFLG,	0

	PAGE
HREAD,	0
	TAD DBLK
	DCA BLOCK
	JMS I [7607
	200		/READ 2 PAGES
	HANBUF		/INTO 7200-7577
BLOCK,	0		/FROM THIS BLOCK ON SYSTEM DEVICE
	JMP I [SYSERR
	TAD VNO
	SZA CLA		/V3C
	JMP I HREAD	/VNO ALREADY SET BY - COMMAND
	TAD	BLOCK	/IS IT IN BOOT?
	SNA CLA
	JMP	HRBOOT	/YES
	TAD	DHI
	AND	[177
	JMP	VLOOP-1	/OK
HRBOOT,	TAD ENTRY	/IF BLOCK 0: BOOTSTRAP
	AND	[177
	TAD	[200	/ENTRY IN SECOND HALF
	TAD	[HANBUF
VLOOP,	DCA VNOPTR
	TAD I VNOPTR
	CLL
	TAD (-33
	SZL CLA
	JMP BACKV
	TAD I VNOPTR
	SNA
	JMP I	[OLDERR
	DCA VNO
	JMP I HREAD
BACKV,	STA
	TAD VNOPTR
	JMP VLOOP

RESERR,	JMS I [ERROR
	EDVRES
HWRITE,	0
	TAD BLOCK
	SNA
	JMP RESERR
	DCA BLKTWO
	JMS I [7607
	4200
	HANBUF
BLKTWO,	0
	JMP I [SYSERR
	JMP I HWRITE

LPWDTH,	0
	TAD	[7400
	JMS I	[NUMCHK
	EWIDTH
	JMS LPTTST
	TAD NUM
	CMA
	DCA I	[HANBUF
	JMP I LPWDTH

LPTTST,	0
	TAD I (HANBUF+1
	SPA CLA
	JMS I	[ERROR
	EOBSHD
	JMS I	[VERTST
	"M
LPTOK,	JMS	DBLTST
	TAD I	[HANBUF+200
	SZA CLA
	JMP I	[OLDERR
	TAD I	(HANBUF+201
	AND	[7700
	TAD	(-5200		/JUMP OVER ARGS
	SZA CLA
	JMP I	[OLDERR
	JMP I	LPTTST

GENVER,	0
	TAD NO
	SZA CLA
	JMP I [SYNTAX
	JMS I [ALPHA
	JMP	BADV
	DCA NUM
	TAD NUM
	AND [40
	SZA CLA
	JMP BADV
	TAD NUM
	AND (37
	DCA I VNOPTR
	JMP I GENVER
BADV,	JMS I	[ERROR
	EBVELT

GENREA,	0
	CDF 10
	TAD I DCWPTR
	CLL RTL
	CLL RAL
	TAD NO
	RAR
	CML RAR
	RAR
	DCA I DCWPTR
	CDF 0
	CLA IAC
	DCA	DEVNUM
	JMP I GENREA

GENFIL,	0
	CDF 10
	TAD I DCWPTR
	CLL RAL
	CLL RAL		/ZERO LINK
	TAD NO
	RAR
	CML RAR
	DCA I DCWPTR
	CDF 0
	CLA IAC
	DCA	DEVNUM
	JMP I GENFIL
	PAGE
LPPAGE,	0
	TAD	LPPAGE
	DCA	LPLV
	TAD	(20
	SKP
LPLV,	0
	TAD	(10
	DCA	TEMP
	JMS I	(LPTTST
	TAD	TEMP
	TAD NO
	CLL RAR
	SZL
	CLA
	DCA I	(HANBUF+1
	JMP I LPLV

LPLC,	0
	JMS I	(LPTTST
	TAD NO
	CLL RTL
	RTL
	RAL
	CIA
	DCA I (HANBUF+2
	JMP I LPLC

TTECHO,	0
	JMS I	(TTYTST
	TAD NO
	SZA CLA
	TAD (SKP CLA-1613	/SKP
	TAD	(1613	/TAD I TTYCA
	DCA I (HANBUF+115
	JMP I TTECHO

TTPAGE,	0
	JMS I	(TTYTST
	AC3
	JMS I [SRCH	/V3D NEW ROUTINE
	240;4;7640
	JMP I [REASEM
	TAD NO
	SNA CLA
	TAD	(5243-NOP	/YES
	TAD	(NOP		/NO
	DCA I TEMP
	JMP I TTPAGE
TTTAB,	0
	JMS I	(TTYTST
	JMS I [GETC
	SNA
	JMP TTEO
	TAD (-"/
	SNA CLA
	JMS I [GETC
	TAD (-"N
	SZA CLA
	JMP I [SYNTAX
	JMP NOTEC
TTEO,	TAD NO
	SNA CLA
	TAD (5000
	TAD [200
	JMS I (TECO
NOTEC,	JMS I [SRCH
	375;1;5600
	JMP I [REASEM
	TAD	(TABTBL
	JMS I	(FIXUP
	JMP I TTTAB

GETC,	0		/GET A CHARACTER, ADVANCE POINTER
	TAD I LINPTR
	AND [177	/ALWAYS RETURN 8-BIT
	SZA
	TAD [200	/WITH HIGH ORDER BIT ON
	TAD	(-340	/LOWER CASE?
	SMA
	TAD	(-40	/YES CONVERT
	TAD	(340
	ISZ LINPTR	/ADVANCE SCAN
	JMP I GETC	/RETURN

DBLTST,	0
	TAD DHI
	SPA CLA
	JMP I DBLTST
	JMS I [ERROR
	E2PGHN

RBX7,	0		/FOR SETTING BYTE MODE FLOPPY HANDLER
	TAD	RBX7	/TO EITHER VT78 OR PDP8 FORMAT
	DCA	RBX8	/THIS IS FOR YES OR NO VT78
	STA
	SKP
RBX8,	0
	TAD	NO	/EITHER YES OR NO PDP8
	SPA
	CLA IAC
	DCA	NO
	JMS I	[VERTST
	"M
	TAD	NO
	DCA I	(HANBUF+200	/SWITCH IN HANDLER AC=0:PDP8
	JMP I	RBX8
/
	PAGE
/ENTER WITH PTR TO POSSIBLE KEYWORD IN AC

KEYSRCH,0
	DCA KPTR
KL,	CDF 10
	TAD I KPTR
	CDF 0
	ISZ KPTR
	SNA
	JMP GOTKEY
	CIA
	DCA TEMP
	JMS I [ALPHA	/IS IT ALPHANUMERIC?
	JMP EOK		/NO
	TAD TEMP	/COMPARE
	CLL RAL		/LOW ORDER 11 BITS
	SNA CLA
	JMP KL		/MATCHED, KEEP LOOKING
	JMP I KEYSRCH	/DIDN'T MATCH
EOK,	JMS I [BACKC
	TAD TEMP
	CIA		/INPUT STREAM RAN OUT OR HIT SPACE
	SPA CLA
	JMP GOTKEY	/SPACE OR EOL MATCH FLAGGED CHARACTER
	JMP I KEYSRCH

KPTR,	0

GOTKEY,	JMS I [SCAN
	STA		/SKIP EXTRA STUFF
	JMS I [SPACE
	ISZ KEYSRCH	/TAKE GOOD RETURN 2
	JMP I KEYSRCH

TTESC,	0		/V3D
	JMS I	(TTYTST
	AC3
	JMS I [SRCH
	200;5;336
	JMP I [REASEM
	TAD NO
	SZA CLA
	TAD	(1337-NOP	/YES
	TAD	(NOP	/NO
	DCA I TEMP
	JMP I TTESC

TTLC,	0
	JMS I	(TTYTST
	TAD	(12
	JMS I [SRCH
	340;20;-4
	JMP I [REASEM
	TAD I TEMP
	CLL
	TAD [200
	SNL CLA
	JMP I [REASEM
	TAD NO
	SNA CLA
	TAD	(7600-7640	/7600 CLA
	TAD	(7640	/SZA CLA
	DCA I TEMP
	JMP I TTLC
LPCODE,	0
	JMS I	[LPTTST
	JMS I	[OPTEQ
	JMS I	[GENCMN
	TAD	NUM2
	AND	[7700
	SZA CLA
DVCERR,	JMS I	[ERROR
	EDEVC
	TAD	NUM2
	TAD	(-30
	SPA SNA CLA
	JMP	DVCERR
	TAD	NUM2
	CLL RTL
	RAL
	DCA	NUM2
	CDF 10
	TAD	(6005-10
	TAD	NUM2
	DCA I	(SLUX
	TAD	(6006
	TAD	NUM2
	DCA I	(SLUX+2
	TAD	(6001
	TAD	NUM2
	DCA I	(SLUX+4
	CDF 0
	TAD	(5
	JMS I	(LPCHNG
	JMP I	LPCODE
	PAGE
GETIOT,	0
	ISZ RR
	TAD RR
	TAD [-HANBUF-400
	SNA CLA
	JMP I GETIOT
	TAD I RR
	AND [7000
	TAD [-6000
	SZA CLA
	JMP GETIOT+1
	TAD I RR
	RTR
	RAR
	AND [77
	TAD (-20
	CLL RAR
	SNA
	JMP GETIOT+1
	RAL
	TAD (20
	ISZ GETIOT
	JMP I GETIOT
TTWIDTH,0
	TAD	[7400
	JMS I	[NUMCHK
	EWIDTH
	JMS I	(TTYTST
	TAD NUM
	AND [7
	SZA CLA
BADWID,	JMS I	[ERROR
	EWIDTH
	TAD NUM
	TAD [-200
	SNA CLA
	JMP	BADWID
	TAD	(10
	JMS I [SRCH
	260;20;7600
	JMP I [REASEM
	TAD NUM
	CMA
	DCA I	TEMP
	ISZ	TEMP
	TAD	NUM
	CIA
	DCA I	TEMP
	JMP I TTWIDTH
OPTEQ,	0
	JMS I [GETC
	SNA
	JMP I	[SYNTAX
	TAD (-"=
	SNA CLA
	JMP	OPTEQ+1
	JMS I	[BACKC
	STA		/V3D
	JMS I [SPACE
	JMP I OPTEQ

LPFILL,	0		/FOR LPSS HANDLER
	TAD	LPFILL
	DCA	LPPAUS
	TAD	(12
	JMP	.+3
LPPAUS,	0
	TAD	(4001
	DCA	TEMP
	JMS I	(LPTTST
	TAD	NO
	SZA CLA
	JMP	.+2
	TAD	TEMP
	DCA I	(HANBUF+204
	JMP I	LPPAUS

LPAROW,	0
	JMS I	(LPTTST
	TAD	NO
	CIA
	SNA
	TAD	(136
	DCA I	(HANBUF+205
	JMP I	LPAROW
LPESC,	0
	JMS I	(LPTTST
	TAD	NO
	SZA CLA
	TAD	(11
	DCA I	(HANBUF+206
	JMP I	LPESC
	PAGE
SRCH,	0		/SEARCH HANBUF, ARGS:START,CNT,WORD
	DCA	TEMP	/AC= OFFSET FROM FOUND LOC
	TAD I SRCH
	ISZ SRCH
	TAD (HANBUF-1
	DCA XR1
	TAD I SRCH
	ISZ SRCH
	CIA
	DCA CNT
	TAD I SRCH
	CIA
	DCA T2
	ISZ SRCH
SRLUP,	TAD I XR1
	TAD T2
	SNA CLA
	JMP SRFND
	ISZ CNT
	JMP SRLUP
	JMP I SRCH
SRFND,	ISZ SRCH
	TAD XR1
	TAD	TEMP
	DCA	TEMP
	JMP I SRCH

GENCMN,	0
	TAD NO
	SZA CLA
	JMP I [SYNTAX
	JMS I [ONUM
	DCA NUM2
	TAD FLG
	SZA CLA
	JMP I [SYNTAX
	JMS I [GETC
	DCA TEMP
	TAD TEMP
	SNA
	JMP I GENCMN
	TAD (-"=
	SZA
	TAD ("=-",
	SZA CLA
	JMP I [SYNTAX
	STA
	JMS I [SPACE
	JMP I GENCMN
GENLOC,	0
	JMS GENCMN
	TAD DHI
	SPA SNA CLA	/ALLOW PEEK INTO BOOTSTRAP
	TAD [-200
	TAD [-200
	CLL
	TAD NUM2
	SZL CLA
	JMP I [NUMBIG
	TAD NUM2
	TAD [HANBUF	/BASE OF HANDLER
	DCA NUM2
	TAD TEMP
	SNA CLA
	JMS ODT
GETNEW,	JMS I [ONUM
	DCA NUM
	TAD FLG
	SZA CLA
	JMP I GENLOC
	JMS I [GETC
	SZA CLA
	JMP I [SYNTAX
	TAD NUM
	DCA I NUM2
	JMP I GENLOC

ODT,	0
	TAD I NUM2
	JMS OPRIN
	TAD ("/
	JMS I [TYPE
	TAD I [READ
	DCA GTEM	/SAVE CHAIN STATUS
	AC1		/PREVENT #
	JMS I [READ
	TAD [LINBUF
	DCA LINPTR
	TAD GTEM
	DCA I [READ
	JMP I ODT
OPRIN,	0
	DCA N3
	TAD (-4
	DCA OKNT
OPLP,	TAD N3
	JMS DGP
	TAD N3
	RTL
	RAL
	DCA N3
	ISZ OKNT
	JMP OPLP
	JMP I OPRIN

DGP,	0
	RTL
	RTL
	AND [7
	TAD [60
	JMS I [TYPE
	JMP I DGP

OKNT,	0
N3,	0
GTEM,	0
	PAGE
MTAPAR,	0
	TAD NO
	SZA CLA
	JMP I [SYNTAX
	JMS MTATST
	TAD LINPTR
	DCA SAVPTR
	TAD (EVEN
	JMS I [KEYSRCH
	SKP
	JMP SETE
	TAD SAVPTR
	DCA LINPTR
	TAD (ODD
	JMS I [KEYSRCH
	JMP I [SYNTAX
	TAD (400
SETE,	TAD (2
	DCA I [HANBUF
	JMP I MTAPAR

MTATST,	0
	JMS I	[VERTST
	"M
	JMP I MTATST

MTAFIL,	0
	JMS MTATST
	TAD NO
	CIA		/V3D
	IAC		/V3D
	DCA I (HANBUF
	JMP I MTAFIL
/SUPPOSED TO WORK ON ALL VERSIONS

CDCODE,	0
	STA
	JMS I	[NUMCHK
	ECARDC
	TAD	NUM
	TAD (-32	/026
	SNA
	JMP C026
	TAD (32-35	/029
	SZA CLA
BADCOD,	JMS I [ERROR
	ECARDC
	JMS CHANGE
	LIST1;LIST2
	JMP I CDCODE
C026,	JMS CHANGE
	LIST1;LIST3
	JMP I CDCODE

CHANGE,	0
	TAD I CHANGE
	DCA P1
	ISZ CHANGE
	TAD I CHANGE
	DCA P2
	ISZ CHANGE
CHLUP,	CDF 10
	TAD I P1
	SNA
	JMP	CHNGEX
	TAD [HANBUF	/BASE OF HANDLER
	DCA P3
	TAD I P2
	CDF 0
	DCA I P3
	ISZ P1
	ISZ P2
	JMP CHLUP
CHNGEX,	CDF 0
	JMP I	CHANGE
P1,	0
P2,	0
P3,	0
SYSDEA,	0		/DEASSIGN USERS IN BOOT AND CORE
	TAD	(UDNAME&177-1
	JMS I	[RDAUX
	0
	TAD	(-17
	DCA	TEMP
	TAD	BTSTRP
	DCA	XR2
	TAD	BTSTRP
	TAD	(7600-AUXBUF
	DCA	XR3
	DCA I	XR2
	CDF 10
	DCA I	XR3
	CDF 0
	ISZ	TEMP
	JMP	.-5
	JMS I	[WRAUX
	JMP I	SYSDEA
	PAGE
TECNAM,	FILENAME TECO.SV

TECO,	0
	DCA SA
	TAD (TECNAM
	JMS LOOKUP
	JMP I TECO	/NOT THERE
	DCA BLKN
	JMS I [7607
	100		/READ 1 PAGE FROM TECO
	7000		/BUFFER
BLKN,	0
	JMP I [SYSERR
	TAD BLKN
	DCA BLKN2
	TAD SA
	DCA I (7002	/REL LOC 2 IS S.A.
	JMS I [7607
	4100
	7000
BLKN2,	0
	JMP I [SYSERR
	JMP I TECO

SA,	0

LOOKUP,	0
	DCA ARG1	/PTR TO FILENAME IN AC
	CLA IAC		/LOOKUP ON SYS
	CIF 10
	JMS I USR
	2
ARG1,	0		/STARTING BLOCK
	0
	JMP I LOOKUP	/NOT FOUND
	CLA CLL IAC RAL	/=2
	TAD	ARG1+1	/-LENGHT
	SZL CLA		/MUST BE LONGER THAN 2
	6254		/IF UNDER MULTI8
	SKP
	JMP I	LOOKUP	/IT WAS A SHSAVE FILE: NOT THERE
	TAD ARG1
	ISZ LOOKUP
	JMP I LOOKUP	/RETURN 2 WITH BLOCK # IN AC
GENDVC,	0
	TAD NO
	SZA CLA
	JMP I [SYNTAX
	JMS I [ONUM
	SNA
	JMP I [SYNTAX
	DCA NUCODE
	TAD NUCODE
	AND [7700
	SZA CLA
	JMP I [NUMBIG
	TAD NUCODE
	TAD (-30
	SPA CLA
	JMP I [NUMBIG
	TAD NUCODE
	CLL RTL
	RAL
	DCA NUCODE
	TAD [HANBUF
	DCA RR
DVLUP,	JMS I (GETIOT
	JMP I GENDVC
	TAD (-30
	SPA CLA
	JMP DVLUP
	TAD I RR
	AND (7007
	TAD NUCODE
	DCA I RR
	JMP DVLUP
TTCOL,	0
	TAD	[7770
	JMS I	[NUMCHK
	EBDCC
	TAD	NUM
	JMS	SETMSW
	7770
	JMP I	TTCOL

SETMSW,	0		/SET MMISC IN BOOT AND MEMORY
	DCA	MSWVAL
	TAD	(MMISC&177
	JMS I	[RDAUX
	0
	TAD I	SETMSW	/GET MASK
	ISZ	SETMSW
	AND I	BTSTRP
	TAD	MSWVAL
	DCA I	BTSTRP
	TAD I	BTSTRP
	CDF 10
	DCA I	(MMISC
	CDF 0
	JMS I	[WRAUX
	JMP I	SETMSW
MSWVAL,	0
FORT,	0		/COMMON SUB FOR FORTRANS
	CLL RTR
	RTR
	DCA	MSWVAL	/SET 7000 BITS
	ACM3
	TAD	FORT
	DCA	FORT	/GETS ADDRESS OF FORT SUB
	TAD I	FORT
	DCA	FORT	/GET CALLING ADDRESS
	TAD	MSWVAL
	JMS	SETMSW
	0777		/KEEP ON OTHER BITS
	JMP I	FORT
	PAGE
EDTNAM,	FILENAME EDIT.SV
BATNAM,	FILENAME BATCH.SV

EDIBAT,	0		/SUB FOR ADAPTING VIEW TO HARDWARE
	TAD	(EDTNAM
	JMS I	(LOOKUP
	JMP 	TRYBAT	/NOT THERE
	TAD	[7	/LPT IN REL.BLK. 7
	DCA	EDBLK
	TAD	[177	/LITERAL POINTING AT 'LPT'
	JMS I	[RDAUX
EDBLK,	0
	TAD	(AUXBUF-3000
	TAD I	BTSTRP
	DCA	BTSTRP	/RELOCATED LPT
	TAD I	BTSTRP	/TEST WORD
	SZA CLA
	JMP 	TRYBAT	/BAD VERSION
	TAD	BTSTRP
	JMS	MODEBA
	JMS I	[WRAUX
TRYBAT,	TAD	(BATNAM	/PART FOR ADAPTING BATCH
	JMS I	(LOOKUP
	JMP I	EDIBAT	/NOT THERE; END
	TAD	(16	/AT 6400 IN BATCH
	DCA	BTBLK
	TAD	[7	/REL TEST LOC
	JMS I	[RDAUX
BTBLK,	0
	TAD I	BTSTRP
	TAD	(-5600	/TEST FOR 'JMP I LPTSET'
	SZA CLA
	JMP I	EDIBAT	/BAD BATCH VERSION
	TAD	(AUXBUF
	JMS	MODEBA
	JMS I	[WRAUX
	JMP I	EDIBAT
MODEBA,	0
	DCA	XR4
	TAD	XR3
	TAD	(-5	/SET XR BACK TO LIST
	DCA	XR3
	JMS I	(LPGET
	DCA I	XR4	/NOP OR CMA
	JMS I	(LPGET
	DCA I	XR4	/PRINT COMMAND
	JMS I	(LPGET
	DCA I	XR4	/PRINT2 OR NOP
	ISZ	XR4	/SKIP 'CLA' OR 'NOP'
	JMS I	(LPGET
	DCA I	XR4	/SKIP IOT
	JMS I	(LPGET
	CLA		/SYNC LIST
	JMP I	MODEBA

SYSASS,	0		/ASSIGN DEVICE IN BOOT AND CORE
	JMS I	[GETDEV	/GET DEV NUMBER
	JMS I	[SPACE	/GO TO SECOND DEVICE
	TAD	(UDNAME&177-1
	JMS I	[RDAUX	/GET BOOT BLOCK
	0
	TAD	DEVNUM
	TAD	BTSTRP	/POINT INTO TABLE
	DCA	BTSTRP
	JMS I	(COMBIN	/HASH SECOND DEVICE
	DCA I	BTSTRP	/INTO TABLE IN BOOT
	TAD	BTSTRP
	TAD	(7600-AUXBUF
	DCA	BTSTRP	/POINT INTO CORE
	TAD I	(WD1	/GET NAME AGAIN
	CDF 10
	DCA I	BTSTRP
	CDF 0
	JMS I	[WRAUX	/WRITE BOOT BACK
	CLA IAC
	DCA	DEVNUM	/DON'T WRITE RUBBISH IN BLK 0!!!
	JMP I	SYSASS
F4SUB,	0		/FOR SETTING CCL FORTRAN DEFAULTS
	AC0		/FORTRAN IV
	JMS I	(FORT	/DOES NOT RETURN HERE!
F5SUB,	0
	AC1		/FORTRAN V
	JMS I	(FORT
F2SUB,	0
	AC2		/FORTRAN II
	JMS I	(FORT
/FXSUB,	0
/	AC3		/XXX?
/	JMS I	(FORT
/
	PAGE
/6600-7177 AUXILIARY BUFFER
/7000-7177 BUFFER FOR TECO CCB
/7200-7577 BUFFER FOR HANDLER
	.ASECT SETMSG
	FIELD 1
	*2000

	.NOLIST BE

	RELOC 0
.IF NDF GERMAN <
ESYN,	TEXT	/? SYNTAX ERROR/
ENUBIG,	TEXT	/? BAD OR TOO BIG NUMBER/
EDVNEX,	TEXT	/? CAN'T - DEVICE DOESN'T EXIST/
EIOSYS,	TEXT	\? I/O ERROR ON SYS:\
EICOBG,	TEXT	/? INITIAL COMMAND TOO BIG/
EOLDVE,	TEXT	/? OLD VERSION OF KBM/
EPAUSE,	TEXT	/? BAD VALUE FOR PAUSE DURATION/
EBDCC,	TEXT	/? BAD COLUMN COUNT/
EBADHT,	TEXT	/? BAD HEIGHT SPECIFIED/
EUNKAT,	TEXT	\? UNKNOWN ATTRIBUTE FOR DEVICE  \
	*.-1
NAM1,	0
NAM2,	0
	0
EDVRES,	TEXT	/? CAN'T - DEVICE IS RESIDENT/
EOBSHD,	TEXT	/? CAN'T - OBSOLETE HANDLER/
E2PGHN,	TEXT	/? CAN'T - NOT 2-PAGE HANDLER/
EBVELT,	TEXT	/? BAD VERSION LETTER/
EWIDTH,	TEXT	/? ILLEGAL WIDTH/
ERKL8E,	TEXT	/? CAN'T - MUST REASSEMBLE KL8E SOURCE/
EOLBAS,	TEXT	/! OLD BASIC/
ECARDC,	TEXT	/? UNKNOWN CARD CODE/
EBERR,	TEXT	/? BATCH INPUT ERROR/
EBADTB,	TEXT	/? TAB IS TOO LARGE/
EDEVC,	TEXT	/? BAD DEVICE CODE/
EZERO,	TEXT	/? ZERO ARGUMENT/
	>
.IF DF GERMAN <
ESYN,	TEXT \? SYNTAX-FEHLER\
ENUBIG,	TEXT \? ZU GROSSE ODER KEINE ZAHL\
EDVNEX,	TEXT \? GERAET NICHT IM SYSTEM\
EIOSYS,	TEXT \? L/S-FEHLER AUF SYS:\
EICOBG,	TEXT \? 'INIT'-BEFEHL ZU LANG: 1-5 ZEICHEN\
EOLDVE,	TEXT \? SYSTEM IST ALT ODER BOOTSTRAP ZERSTOERT\
EPAUSE,	TEXT \? ZU LANGE PAUSE-ZEIT: 1-1023\
EBDCC,	TEXT \? ZU VIELE SPALTEN VERLANGT: 1-7\
EBADHT,	TEXT \? ZU GROSSE HOEHE VERLANGT: 1-127\
EUNKAT,	TEXT \? UNBEKANNTER BEFEHL FUER  \
	*.-1
NAM1,	0
NAM2,	0
	0
EDVRES,	TEXT \? GERAET IST RESIDENT ODER MULTI8-KANAL\
EOBSHD,	TEXT \? HANDLER IST ZU ALT\
E2PGHN,	TEXT \? UNMOEGLICH - 2-SEITEN HANDLER\
EBVELT,	TEXT \? FALSCHE VERSIONS-BEZEICHNUNG\
EWIDTH,	TEXT \? ZU BREIT: 1-255 ODER MEHRFACHES VON 8\
ERKL8E,	TEXT \? KL8E HANDLER FALSCH\
EOLBAS,	TEXT \! BASIC.SV WURDE NICHT ANGEPASST\
ECARDC,	TEXT \? KARTEN-KODE UNBEKANNT: 26 ODER 29\
EBERR,	TEXT \? BATCH LESE-FEHLER\
EBADTB,	TEXT \? LPT-TABULATOR ZU GROSS: 1-63\
EDEVC,	TEXT \? 'DEVICE CODE' NICHT ERLAUBT\
EZERO,	TEXT \? ARGUMENT = 0\
	>
	RELOC
	PAGE
MVER,	TEXT	\OS/8  SET V4\
	*.-1
	VERSL^100+PATCHL
	0000
.IF NDF GERMAN <
MHELP1,	TEXT	/SET DEV: [NO] ATTRIB [N]/
MHELP2,	TEXT	/VERSION/
MHELP3,	TEXT	/HELP/
MGAG1,	TEXT /A FUNNY THING HAPPENED TO ME ON THE WAY TO THE COMPUTER ROOM./
MGAG2,	TEXT /A PANHANDLER CAME UP TO ME AND SAID,/
MGAG3,	TEXT /"CAN YOU SPARE ME $25,000 FOR A CUP OF COFFEE?"/
MGAG4,	TEXT /"WHY SO MUCH?", I ASKED IN AMAZEMENT./
MGAG5,	TEXT /"THINGS HAVE BECOME SO AUTOMATED", HE REPLIED,/
MGAG6,	TEXT /"THAT THE ONLY WAY I CAN ORDER IT/
MGAG7,	TEXT /IS WITH A COMPUTER ORDER FORM"./
	>
.IF DF  GERMAN <
MHELP1,	TEXT /SETZE GERAET: [KEIN] BEFEHL [N]/
MHELP2,	TEXT /VERSION/
MHELP3,	TEXT /HILFE/
MGAG1,	TEXT /         DDDD     A    TTTTT    A    PPPP   L        A    N   N/
MGAG2,	TEXT /         D   D   A A     T     A A   P   P  L       A A   NN  N/
MGAG3,	TEXT /         D   D  A   A    T    A   A  P   P  L      A   A  N N N/
MGAG4,	TEXT /         D   D  AAAAA    T    AAAAA  PPPP   L      AAAAA  N  NN/
MGAG5,	TEXT /         D   D  A   A    T    A   A  P      L      A   A  N   N/
MGAG6,	TEXT /         DDDD   A   A    T    A   A  P      LLLLL  A   A  N   N/
MGAG7,	TEXT /         ======================================================/
	>
BRSET,	-2305;SET	/SE
	-2605;VERSION	/VE
	-1005;HELP	/HE
	0

BRIN,	-377;RUBOUT
	-217;GT		/^O
	-".;GT		/IGNORE '.' BATCH MONITOR
	-203;CTRLC	/^C
	-212;LF		/LINE FEED
	-215;CR		/CARRIAGE RETURN
	-"$;ESCAPE	/BATCH ESCAPE=$
	-375;ESCAPE	/ALTMODE
	-376;ESCAPE	/ALTMODE (2ND FLAVOR)
	-233;ESCAPE	/ESCAPE
	-225;CTRLU	/^U
	-200;GT		/IGNORE NULLS
	-223;GT		/IGNORE ^S
	0

BRCOHY,	-":;COLN
	-" ;COLN
	-"-;HYPH
	0

/	LOC		YES	NO
KBMTBL,	AUXBUF+313;	0210;	1361
	AUXBUF+314;	1313;	2020
	AUXBUF+316;	1324;	7240
	AUXBUF+317;	4423;	3020
	AUXBUF+322;	1313;	1440
	AUXBUF+224;	7555;	7403
	AUXBUF+225;	1207;	1302
	AUXBUF+226;	7557;	7402
	AUXBUF+227;	1207;	1302
	0

CDTBL,	AUXBUF+135;	0210;	1101
	AUXBUF+136;	1335;	2024
	AUXBUF+140;	1346;	7240
	AUXBUF+141;	4466;	3024
	AUXBUF+144;	1335;	1420
	AUXBUF+33;	7555;	7403
	AUXBUF+34;	5207;	5321
	AUXBUF+35;	7557;	7402
	AUXBUF+36;	5207;	5321
	0
PSTBL,	HANBUF+217;	1343;	7420
	HANBUF+220;	3264;	5250
	HANBUF+230;	5327;	5245
	HANBUF+327;	7440;	1375
	HANBUF+330;	5245;	3326
	HANBUF+331;	2301;	2275
	HANBUF+332;	5331;	4264
	HANBUF+333;	2264;	2301
	HANBUF+334;	5227;	5332
	HANBUF+342;	7410;	3326
	HANBUF+343;	7700;	5354
	0
TABTBL,	HANBUF+367;	1344;	1241
	HANBUF+370;	7040;	4264
	HANBUF+371;	0277;	1277
	HANBUF+372;	1344;	0344
	HANBUF+373;	3277;	7640
	HANBUF+374;	5324;	5367
	0
/FIXED FOR V3D:
LIST1,	104;105;106
	114;115;116
	124;125;126;127
	134;135;136
	0

LIST2,	3203;4007;3502
	7514;0577;3637
	0104;1211;3374;0641
	7316;3410;1376

LIST3,	7735;4076;0774
	3314;1002;0305
	3204;1273;3606;1341
	3716;1175;3401
	DBCE=	6576
	DBTD=	6574
	DBSS=	6577
	DBST=	6570
	LIC=	6667
	LLS=	6666
	LSF=	6661
	LPCI=	0000	/?????
	LPCB=	6575
	LPSC=	6576
	LPSF=	6572
	KIE2=	6305
	TLS2=	6316
	TSF2=	6311
	KIE3=	6325
	TLS3=	6336
	TSF3=	6331
/LIST FOR LPT CHANGES ; EACH 8 LONG!

LPIOTL,	DBCE;CMA;DBTD;DBSS;DBST;CLA;0;0		/LP78
	LIC;NOP;LLS;NOP;LSF;CLA;0;0		/LA8A
	LPCI;NOP;LPCB;LPSC;LPSF;SKP CLA;0;0	/LX180
	KIE2;NOP;TLS2;NOP;TSF2;CLA;0;0		/SLU2
	KIE3;NOP;TLS3;NOP;TSF3;CLA;0;0		/SLU3
SLUX,	0;NOP;0;NOP;0;CLA;0;0			/SLUX IS SET BY LPCODE
MAIN,	-0;	DEVICE TTY;	TTYTBL
	-1;	DEVICE PTR;	PTRTBL
	-2;	DEVICE PTP;	PTPTBL
	-3;	DEVICE CDR;	CDRTBL
	-4;	DEVICE LPT;	LPTTBL
	-16;	DEVICE TC;	BLATBL
	-20;	DEVICE MTA;	MTATBL
	-21;	DEVICE TD8;	BLATBL
	-22;	DEVICE BAT;	BLATBL
	-23;	DEVICE RK05;	BLATBL
	-24;	DEVICE NULL;	BLATBL
	-25;	DEVICE RX01;	BLATBL
	-26;	DEVICE RL01;	BLATBL
	-31;	DEVICE RL01;	BLATBL
	-32;	DEVICE RX02;	BLATBL
	-33;	DEVICE VXA1;	BLATBL
	-34;	DEVICE VXA2;	BLATBL
	-35;	DEVICE VXA3;	BLATBL
	-37;	DEVICE TU58;	BLATBL
	-40;	DEVICE SI43;	BLATBL
	-41;	DEVICE RB01;	RBXTBL
	-42;	DEVICE RB07;	RBXTBL
	-50;	DEVICE VMT0;	BLATBL
	-51;	DEVICE VMT1;	BLATBL
	-52;	DEVICE VMT2;	BLATBL
	-53;	DEVICE VMT3;	BLATBL
	-54;	DEVICE VMT4;	BLATBL
	-55;	DEVICE VMT5;	BLATBL
	-56;	DEVICE VMT6;	BLATBL
	-57;	DEVICE VMT7;	BLATBL
	-60;	DEVICE COMM;	BLATBL
	1
/TABLE ENDS WITH A POSITIVE NON-ZERO NUMBER
TTYTBL,	WIDTH;TTWIDTH
	BREITE;TTWIDTH
	CODE;TTCODE
	KODE;TTCODE
	ECHO;TTECHO
	LC;TTLC
	KLEIN;TTLC
	PAYGE;TTPAGE
	TAB;TTTAB
	GAG;TTGAG
	PAUS;TTPAUS	/V3D
	HGHT;TTHGHT	/V3D
	HOEHE;TTHGHT
	SCOPP;TTSCOP	/V3D
	VIDEO;TTSCOP
	COL;TTCOL	/V3D
	KOL;TTCOL
	ESC;TTESC	/V3D
	AROW;TTAROW	/V3D
	PFEIL;TTAROW
	0

LPTTBL,	WIDTH;	LPWDTH
	BREITE;	LPWDTH
	LC;	LPLC
	KLEIN;	LPLC
	LV8E;	LPLV
	LA8A;	LP8A
	LA78;	LP78
	LX180;	LPLX
	SLU2;	LPSLU2
	SLU3;	LPSLU3
	PAYGE;	LPPAGE
	HGHT;	LPHGHT
	HOEHE;	LPHGHT
	TAB;	LPTAB
	PAUS;	LPPAUS
	SIMU;	LPFILL
	AROW;	LPAROW
	PFEIL;	LPAROW
	ESC;	LPESC
	CODE;	LPCODE
	KODE;	LPCODE
	0
SYSAUX,	INIT;	SYSINI
	OS8;	SYSOS8
	OS78;	SYS78
	BLK;	GENBLK
	ASS;	SYSASS
	DEA;	SYSDEA
	F2;	F2SUB
	F4;	F4SUB
	F5;	F5SUB
	0

AUX,	LOC;GENLOC
	FILES;GENFIL
	DATEI;GENFIL
	READO;GENREA
	LESEN;GENREA
	VERS;GENVER
	DVCO;GENDVC	/V3D
	BLK;GENBLK	/V3D
	0
MTATBL,	PARITY;MTAPAR
	FILES;MTAFIL
	DATEI;MTAFIL
	0

RBXTBL,	PDP8;RBX8
	VT78;RBX7
	0

PTRTBL,	ZBLOCK 4
	0

PTPTBL,	ZBLOCK 4
	0

BLATBL,	ZBLOCK 4
	0

CDRTBL,	CODE;CDCODE
	KODE;CDCODE
	0
AROW,	"A;"R;"R;"O;"W;0
ASS,	"A;"S;"S;4000+"I;4000+"G;4000+"N;0
BLK,	"B;"L;"O;"C;"K;0
BREITE,	"B;"R;"E;"I;"T;0
CODE,	"C;"O;"D;"E;0
COL,	"C;"O;"L;0
DATEI,	"D;"A;"T;"E;"I;0	/-STRUKTURIERT
DEA,	"D;"E;"A;4000+"S;4000+"S;0
DVCO,	"D;"V;"C;4000+"O;4000+"D;4000+"E;0
ECHO,	"E;"C;"H;"O;0
ESC,	"E;"S;"C;4000+"A;4000+"P;4000+"E;0
EVEN,	"E;4000+"V;4000+"E;4000+"N;0
FILES,	"F;"I;"L;"E;4000+"S;0
F2,	"F;"2;0			/FORTRAN-II
F4,	"F;"4;0			/FORTRAN-IV
F5,	"F;"5;0			/FRUN ETC
GAG,	"G;"A;"G;0
HGHT,	"H;"E;"I;"G;"H;"T;0
HOEHE,	"H;"O;0			/ALSO 'HOCH'
INIT,	"I;"N;"I;"T;0
KLEIN,	"K;"L;"E;"I;"N;0	/-SCHRIFT
KODE,	"K;"O;"D;"E;0
KOL,	"K;"O;"L;0
LA8A,	"L;"A;"8;"A;0
LA78,	"L;"A;"7;"8;0
LC,	"L;"C;0
LESEN,	"L;"E;"S;"E;0		/LESE-NUR
LOC,	"L;"O;"C;4000+"A;4000+"T;4000+"I;4000+"O;4000+"N;0
LV8E,	"L;"V;4000+"8;4000+"E;0
LX180,	"L;"X;"1;"8;"0;0
ODD,	"O;4000+"D;4000+"D;0
OS8,	"O;"S;"8;0
OS78,	"O;"S;"7;"8;0
PARITY,	"P;"A;"R;4000+"I;4000+"T;0	/ALSO 'PARITAET'
PAYGE,	"P;"A;"G;0		/ALSO 'PAGINA'
PAUS,	"P;"A;"U;"S;"E;0
PDP8,	"P;"D;"P;0		/PDP8
PFEIL,	"P;"F;"E;"I;"L;0
READO,	"R;"E;"A;"D;0		/-ONLY
SCOPP,	"S;"C;"O;"P;"E;0
SIMU,	"S;"I;"M;"U;0		/SIMULATED FORM-FEED
SLU2,	"S;"L;"U;"2;0
SLU3,	"S;"L;"U;"3;0
TAB,	"T;"A;"B;0
VIDEO,	"V;"I;"D;"E;"O;0
VERS,	"V;"E;"R;4000+"S;4000+"I;4000+"O;4000+"N;0
VT78,	"V;"T;"7;"8;0
WIDTH,	"W;"I;"D;"T;"H;0