File: HEXA3.BR of Tape: Sources/Focal/s7
(Source file text) 

/	* H E X A 3 . B R *

/	VERSION 51 VOM 2. 8. 76

/	COMMANDECODER
/	=============

/
/
CDEC,	0			/COMMANDDECODER
	JMS	FLD2
	DCA	CDECF
	CDF	0
	TAD I	[WCLO0		/LO0 FREE?
	SPA	CLA
	JMP	CDECF
	TAD I	[WCLI0		/LI0 FREE?
	SMA	CLA
	JMP	CDECF
	CDF	20
	JMS	PA0FET
	JMS	ONLYCR		/IS IT AN ERROR BUFFER
	JMS	REW
	JMS	CAN
	JMS	STAT
	JMS	BYE
	JMS	INOUT
CDRET,	CLL	CLA
	DCA	WCCD		/SET CD BUF TO FREE
CDECRE,	JMS	PA0STO		/SWAP PAGE02 BACK
	CIF	0
	JMS I	[USROUT
CDECF,	HLT
	JMP I	CDEC
/
/
REW,	0			/TEST FOR REWIND
	JMS	CLCD2
	TAD	[-4
	DCA	REWCN
	TAD	[REWPA
	DCA	REWP
REW1,	JMS	CDCA		/FETCH CHAR
	JMP I	REW		/THERE ARE NO MORE CHARS
	TAD I	REWP
	ISZ	REWP
	DCA	REW3
	JMS	CDTE
REW3,	HLT			/CHARAKTER TO BE TESTED
	SKP
	JMP I	REW		/ITS NOT A REWIND
	ISZ	REWCN
	JMP	REW1
	JMP	REW2
REWCN,	0
REWP,	0
REWPA,	"R;"E;"W;",
REW2,	JMS	CDCA		/GET CHAR FROM CD
	JMP 	CDERR
	JMS	CDTE
	"O
	JMP 	ISO		/REWIND OUTPUT=LO1
	JMS	CDTE
	"I
	JMP	ISI		/REWIND INPUT
	JMP	REW2
/
/
ISO,	JMS	VALID
	DLO1
	SKP
	JMP	CDER2		/STREAM NOT DEFINED
	JMS	REWIND
	41
ISO1,	JMS	CLLO12		/SIMULATE ^Z
	P1			/REWIND IS ON LO1 ALSO A CANCLE
	CDF	0		/SET EOIFLG AND CLEAR UNPACK SWITCH
	DCA I	(EOIFLG
	DCA I	(SWISE+1
	CDF	10
	TAD	(232
	DCA I	LO1
	CDF	20
	JMP	CDRET
/
/
ISI,	JMS	CDCA		/WHICH STREAM?
	JMP	CDERR
	JMS	CDTE
	"2
	JMP	IS2F
	JMS	CDTE
	"3
	JMP	IS3F
	JMS	CDTE
	"1
	JMP	IS1F
	JMS	CDTE
	"0
	NOP
	JMP	CDERR
/
/
IS2F,	JMS	VALID		/TEST IF STREAM IS VALID
	DLI2
	SKP
	JMP	CDER2
	JMS	REWIND
	44
	JMS	CLLI22
	CDF	10
	TAD	(232
	DCA I	LI2
	CDF	20
	P1
	DCA	WCLI2		/SET LI2 BUFFER FULL
	JMP 	CDRET
/
	PAGE
IS1F,	JMS	REWIND
	42
	JMP	CDRET
/
RELA,	0
	STA
	TAD	CACN		/CACN-1
	SPA
	CLA CLL
	AND	(7
	DCA	CACN
	TAD	(CDBU+1
	TAD	CACN
	CIA
	TAD	CD
	AND	(77
	JMP I	RELA
/
/
/
IS3F,	JMS	VALID
	DLI3
	SKP
	JMP	CDER2
	JMS	REWIND
	46
	JMS	CLLI32
	CDF	10
	TAD	(232
	DCA I	LI3
	CDF	20
	P1
	DCA	WCLI3
	JMP	CDRET
CDERR,	CIF	0
	JMS I	[TELE
	CD1MS
CDERET,	CIF	0
	JMS I	(SEND0
	JMS	TTYOU1
	JMP	CDRET
CD1MS,	TEXT /TRY AGAIN/
CD2MS,	TEXT /STREAM NOT DEFINED/
CDER2,	CIF	0
	JMS I	[TELE
	CD2MS
	JMP	CDERET
/
/
/
CDCA,	0
	CDF	10		/CHARKETER FETCH ROUINTE
	TAD I	CD
	CDF	20
	DCA	CDCAR
	ISZ	CD
	ISZ	WCCD
	SKP
	JMP I	CDCA
	JMS	CDTE		/TEST FOR CR
	215
	JMP I	CDCA
	ISZ	CDCA
	JMP I	CDCA
CDCAR,	0			/CONTAINS FETCHED CHAR
/
/
/
CDTE,	0			/CHARAKTER TEST ROUINTE
	TAD I	CDTE
	CIA
	ISZ	CDTE
	TAD	CDCAR
	AND	[RUBOUT
	SZA	CLA
	ISZ	CDTE
	JMP I	CDTE
/
/
/
VALID,	0			/ROUTINE TO TEST IF STREAM DEFINED
	TAD I	VALID
	ISZ	VALID
	AND	DEFSTR
	SNA	CLA
	ISZ	VALID
	JMP I	VALID
/
/
/
REWIND,	0			/SETUP REWINDBLOCK FOR LINE
	JMS	LO0BL2		/FILL LO0 WITH BLANCS
	TAD	(44		/REWIND CODE IS 44
	DCA I	LO0
	CDF	20
	TAD I	REWIND
	ISZ	REWIND
	ISZ	LO0
	CDF	10
	DCA I	LO0
	CDF	20
	JMS	CLLO02
	JMP I	REWIND
/
/
/
LO0BL2,	0			/FILL LO0 WITH BLANCS, RETURNS WITH DF10
	JMS	CLLO02
	CDF	10
	TAD	[40
	DCA I	LO0
	ISZ	LO0
	ISZ	WCLO0
	JMP	.-4
	JMS	CLLO02		/RETURNS WITH DF 10
	JMP I	LO0BL2
CANMS1,	TEXT /CANCLE ERROR/
/
/
/
/
/
	PAGE
CAN,	0			/TEST FOR CANCLE
	JMS	CLCD2	
	M3			/-3 IN AC
	DCA	CANCN
	TAD	(CANTA
	DCA	CANP
CAN1,	JMS	CDCA		/FETCH CHAR
	JMP I	CAN
	TAD I	CANP
	ISZ	CANP
	DCA	.+2
	JMS	CDTE
	HLT
	SKP
	JMP I	CAN		/NOT A CANCLE
	ISZ	CANCN
	JMP	CAN1
/
/	IS IT INPUT OR OUTPUT
/
CAN2,	JMS	CDCA
	JMP	CANER1
	JMS	CDTE
	"O
	JMP	CANO
	JMS	CDTE
	"I
	JMP	CANI
	JMP	CAN2
/
/
CANI,	JMS	CDCA
	JMP	CANER2		/WHICH INPUT?
	JMS	CDTE
	"1
	JMP	CANLI1
	JMS	CDTE
	"2
	JMP	CANLI2
	JMS	CDTE
	"3
	JMP	CANLI3
	JMP	CANER1
CANCN,	0
CANP,	0
CANTA,	"C;"A;"N
/
/
CANO,	JMS	VALID
	DLO1
	SKP
	JMP	CDER2
	CIF	0
	JMS I	(KANZ
	41
	JMS	CLLO02
	JMP	ISO1		/SIMULATE ^Z ETC
/
/
CANLI1,	CIF	0
	JMS I	[TELE
	CLI1ER
	JMP	CDERET
/
/
CANLI2,	JMS	VALID
	DLI2
	SKP
	JMP	CDER2
	CIF	0
	JMS I	(KANZ
	44
	JMS	CLLO02
	CIF	0
	JMS I	(CANC
	DLI2
	JMP	CDRET
/
/
CANLI3,	JMS	VALID
	DLI3
	SKP
	JMP	CDER2
	JMS	CLLO02
	CIF	0
	JMS I	(KANZ
	46
	CIF	0
	JMS I	(CANC
	DLI3
	JMP	CDRET
/
/
CANER1,	CIF	0
	JMS I	[TELE
	CANMS1
	JMP	CDERET
CANER2,	CIF	0
	JMS I	[TELE
	CANMS2
	JMP	CDERET
CLI1ER,	TEXT /DO NOT CANCLE LI1/
/
/
/
/
/
/
/
/
/
/
/
FLD2,	0
	RDF
	AND	(70
	TAD	(CIF CDF 0
	CIF CDF	20
	JMP I	FLD2
/
ONLYCR,	0
	JMS	CLCD2
	JMS	CDCA
	JMP	CDRET		/IT IS AN ERROR BUFFER
	JMP I	ONLYCR
	PAGE
STAT,	0			/STATUS
	TAD	(-4
	DCA	STATCN
	TAD	(STATA
	DCA	STATX
	JMS	CLCD2
STAT1,	JMS	CDCA
	JMP I	STAT		/NOT A STATUS
	TAD I	STATX
	DCA	STAT2
	ISZ	STATX
	JMS	CDTE
STAT2,	HLT			/TEST THIS CHAR
	SKP
	JMP I	STAT		/NOT A STATUS
	ISZ	STATCN
	JMP	STAT1
	JMP	STAT3
STATCN,	0
STATX,	0
STATA,	"S;"T;"A;"T
STAT3,	JMS	CDCA
	SKP			/MUST BE A CR
	JMP I	STAT
	JMS	LO0BL2		/OK FILL IN STATUS
	TAD	(47
	DCA I	LO0
	CDF	20
	JMP	CDRET
/
/
/
/
/
BYE,	0			/GOOD BYE FOR ETH
	JMS	CLCD2
	TAD	(-3
	DCA	BYECN
	TAD	(BYETA
	DCA	BYETX
BYE1,	JMS	CDCA
	JMP I	BYE		/NOT BYE
	TAD I	BYETX
	DCA	BYE2
	ISZ	BYETX
	JMS	CDTE
BYE2,	HLT
	SKP
	JMP I	BYE		/NOT A BYE
	ISZ	BYECN
	JMP	BYE1
	JMP	BYE3
BYECN,	0
BYETX,	0
BYETA,	"B;"Y;"E
BYE3,	JMS	CDCA		/FOLOWED BY CR
	SKP
	JMP I	BYE
	JMS	LO0BL2
	TAD	(53
	CDF	10
	DCA I	(LO0BU
	CDF	20
	JMP	CDRET		/RETURN
MS1,	TEXT /TABEL OVERFLOW/
MS2,	TEXT /COMMANDLINE ERROR/
MS3,	TEXT /STREAM ALREADY DEFINED/
/
/
/
/
/
	PAGE
INOUT,	0			/MUST BE A INPUT-OUTPUT-STRING
	JMS	CLCD2
	JMS	DECODE		/PERFORM DECODING
	JMS	CLCD2
INOU1,	JMS	CDCA		/LOOK FOR A SLASH
	JMP	OUT1		/EXIT IF NO SLASH
	JMS	CDTE
	"/
	JMP	INP1		/SLASH IS INPUT
	JMP	INOU1
OUT1,	DCA	WCCD		/WC MAY CAUSE TROUBLES IS NOT USED IN FOLL.
	TAD	(DEVTA
	DCA	DEVTAX		/SET POINTER FOR OUTPUT
	TAD	FCN		/SET NEGATIVE NUMBER OF FILES
	CIA
	DCA	FCN
	TAD I	LO1F2G		/STORE STATUS OF HANDLER
	DCA	OUT7
OUT2,	TAD I	LO1FP
	AND	(4000
	SZA	CLA
	JMP	OUTER1		/TABLE OVERFLOW
	TAD I	DEVTAX
	DCA	NAMPO
	ISZ	DEVTAX		/POINTER TO DEVICE
	TAD I	DEVTAX
	TAD	(CDBU
	DCA	CD
	JMS	CDCA		/GET CHAR
	JMP	OUTER2
	TAD	(7400		/LO1 HANDLER AT 7400 1 PAGE ALLOWED
	DCA	DEV3
	JMS	HADLT		/WHICH HANDLER IS IT?
	JMP	OSYS
	JMP	ODSK
	JMP	OTTY
	JMP	OPTR
	JMP	OUTER2
NAMPO,	0
/ALL HANDLER ARE EITHER CORERESIDENT OR NEED NO LOOKUP
/
/
INOUTR,	JMP I	INOUT
OSYS,	JMS	DEVNOF		/USRIN
	DEVICE SYS
OUT3,	JMS	FNAM
	JMS	LOOKUP
OUT4,	TAD	(4000		/NO SAVE THIS INFO
	TAD	DEV2
	DCA I	LO1FP		/DEVICENUMBER
	JMS	FPINC
	TAD	LOOK1
	DCA I	LO1FP		/SAVE FILECA
	JMS	FPINC
	TAD	LOOK2		/SAVE FILE WC
	DCA I	LO1FP
	JMS	FPINC
	ISZ	DEVTAX		/POINTER TO NEXT FILE IF THERE IS ANY
	ISZ	FCN		/MORE FILES TO TREAT?
	JMP	OUT2
	TAD I	LO1F2G
	CIF	0
	JMS I	(FETCHH
	7400
	HLT			/HANDLER ENTRY FOR FIRST FILE
	TAD	.-1
	CDF	0
	DCA I	(LO1HA
	CDF	20
	JMP I	INOUT
OUT7,	0
/
/	ONLY 1 PAGE HANDLER ON LO1 ALLOWED , AT 7400
/
ODSK,	JMS	DEVNOF
	DEVICE	DSK
	JMP	OUT3
/
/
OTTY,	DCA	DEV2		/TTY IS NUMBER 0
	DCA	LOOK1		/ 0 FILENAME
	DCA	LOOK2
	JMP	OUT4
/
/
OPTR,	JMS	DEVNOF
	DEVICE PTR
	DCA	LOOK1
	DCA	LOOK2
	JMP	OUT4
/
	PAGE
/
INP1,	DCA	WCCD		/WCCD IS NOT USED IN THE FOLLOWING
	JMS	CDCA
	JMP	OUTER2
	JMS	CDTE
	"2
	JMP	INP2
	JMS	CDTE
	"3
	JMP	INP3
	JMP	OUTER2		/IS ALL WRONG
/
/
INP2,	JMS	VALID
	DLI2
	JMP	INPER1		/STREAM ALREADY DEFINED
	JMS	SETDEV		/GET DEVICENO AND FILENAME
	7200			/LI2 1-PAGE HANDLER AT 7200
	TAD	DEV2
	CDF	0
	DCA I	(LI2DEV
	CDF	20
	TAD	DEV3
	CDF	0
	DCA I	(LI2HA
	CDF	20
	JMS	ENTI		/ENTER TENTATIVE FILE
	LI2NAM
	TAD	ENT2
	CDF	0
	DCA I	(LI2BLO		/SAVE BLOCKNUMBER AND FREE SPACE
	DCA I	(LI2FL		/RESET FILE LENGHT
	CDF	20
	JMS	DEFIT
	44
	JMS	DEFIT2
	DLI2
	JMS	GOSTR2
	DLI2
	JMP	INOUTR
/
/
INP3,	JMS	VALID
	DLI3
	JMP	INPER1
	JMS	SETDEV
	7000			/LI3 1-PAGE HANDLER AT 7000
	TAD	DEV2
	CDF	0
	DCA I	(LI3DEV
	CDF	20
	TAD	DEV3
	CDF	0
	DCA I	(LI3HA
	CDF	20
	JMS	ENTI
	LI3NAM
	TAD	ENT2
	CDF	0
	DCA I	(LI3BLO
	DCA I	(LI3FL
	CDF	20
	JMS	DEFIT
	46
	JMS	DEFIT2
	DLI3
	JMS	GOSTR2
	DLI3
	JMP	INOUTR
/
/
OUTER1,	CDF	20
	CIF	0
	JMS I	[TELE
	MS1
	JMP	CDERET
OUTER2,	CDF	20
	CIF	0
	JMS I	[TELE
	MS2
	JMP	CDERET
INPER1,	CDF	20
	CIF	0
	JMS I	[TELE
	MS3
	JMP	CDERET
/
/
/
/
/
ENTI,	0				/ENTER TENTATIVE FILE
	TAD I	ENTI
	ISZ	ENTI
	DCA	ENT5
	TAD	(FNA1
	DCA	ENT2		/SET FILENAME
	TAD	DEV2
	SNA
	JMP I	ENT1
	CDF	20
	CIF	10
	JMS I	(200
	3
ENT2,	0
ENT3,	0
	JMP	OUTER2
	JMP	.+3
ENT1,	DCA 	ENT2
	DCA	ENT3
	CIF	0
	JMS I	(MOVE		/SAVE FILENAME
	CDF	20
	FNA1
	CDF	0
ENT5,	HLT			/CONTAINS LI2 OR LI3NAM ADDR
	-4
	JMP I	ENTI
	PAGE
/
/	SUBOUTINESAMMLUNG FUER COMANDDECODER
/
/
DECODE,	0		/DECODES INPUT-OUTPUT-STRING
	DCA	CACN	/RESET CHARAKTER COUNTERS
	DCA	FCN		/SET FILECOUNTER TO 0
	DCA	EXTF		/CLEAR EXTENSION FLAG
	DCA	DEVBU		/RESTORE OTHER THINGS
	DCA	FILBU
	DCA	EXTBU
	TAD	(DEVTA
	DCA	DEVTAX
	DCA	STRING		/CLEAR END OF STRING FLAG
	JMS	CLCD2
DECOD1,	ISZ	CACN
	JMS	CDCA		/FETCH CHAR FROM BUFFER
	JMP	DECOD6			/END OF STRING
	JMS	CDTE
	":
	JMP	DECOD3		/SAVE DEVICE
	JMS	CDTE
	".
	JMP	DECOD4		/NEXT IS EXTENSION
	JMS	CDTE
	"/
	JMP	DECOD6		/END OF STRIN
	JMS	CDTE
	"_
	JMP	DECOD6	/END OF STRING
	JMS	CDTE
	",
	JMP	DECOD5
	JMP	DECOD1
/
/
DECOD3,	JMS	RELA		/DEVICE
/				RELA RETURNS WITH RELATIVE ADRESS=RA
/				IN AC: RA=CD-CACN-CDBU (6 BIT)
/				THEN CACN=CACN-1
	DCA	DEVAD
	TAD	CACN
	DCA	DEVBU
	DCA	CACN
	JMP	DECOD1
DECOD4,	P1
	DCA	EXTF
DECOD7,	JMS	RELA		/THIS IS FILENAME
	DCA	FILAD
	TAD	CACN
	DCA	FILBU
	DCA	CACN
	TAD	EXTF
	SNA	CLA
	JMP	DECOD9	/SAVE FILE INFO
	JMP	DECOD1		/FETCH EXTENSION FIRST
/
DECOD5,	TAD	EXTF
	SNA	CLA
	JMP	DECOD7		/ITS A FILE INFO
	DCA	EXTF
	JMS	RELA
	DCA	EXTAD
	TAD	CACN
	DCA	EXTBU
	DCA	CACN
	JMP	DECOD9		/SAVE FULL INFO
/
DECOD6,	M1			/SET END OF STRING FLAG
	DCA	STRING
	JMP	DECOD5
/
STRING,	0
/
/
DECODR,	JMP I	DECODE		/RETURN FROM OTHER PAGES
DEVTA,	ZBLOCK 3^15		/FILENAME TABLE FOR DECODE
/
	PAGE
/
DECOD9,	TAD	FILAD
	DCA I	DEVTAX
	ISZ	DEVTAX
	TAD	DEVAD
	DCA I	DEVTAX
	ISZ	DEVTAX
	CLA	CLL
	TAD	DEVBU
	CLL RTL;RAL
	TAD	FILBU
	BSW
	DCA I	DEVTAX
	CLL	CLA
	TAD	FILAD
	CIA
	TAD	EXTAD
	SPA
	CLA
	AND	(7
	CLL RTL;RAL
	TAD	EXTBU
	AND	(77
	TAD I	DEVTAX
	DCA I	DEVTAX
	ISZ	DEVTAX
	DCA	FILAD
	DCA	FILBU
	DCA	EXTAD
	DCA	EXTBU
	ISZ	FCN
	ISZ	STRING		/SKIP IF END OF STRING
	JMP	DECOD1		/FETCH NEXT
	JMP	DECODR
EXTF,	0
FCN,	0
DEVAD,	0
DEVBU,	0
FILAD,	0
FILBU,	0
EXTAD,	0
EXTBU,	0
/
/
/
/
/
/
/
/
/
/
HADLT,	0			/TEST WHICH HANDLER
	ISZ	DEVTAX
	TAD I	DEVTAX
	AND	(7000
	SZA	CLA
	JMP	.+3
	ISZ	HADLT		/DSK IS DEFAULT
	JMP I	HADLT
	JMS	CDTE
	"S
	JMP I	HADLT
	ISZ	HADLT
	JMS	CDTE
	"D
	JMP I	HADLT
	ISZ	HADLT
	JMS	CDTE
	"T
	JMP I	HADLT
	ISZ	HADLT
	JMS	CDTE
	"P
	JMP I	HADLT
	ISZ	HADLT
	JMP I	HADLT
/
/
/
/
/
DEVNOF,	0			/DEVICENUMBER-FETCH
	TAD I	DEVNOF
	DCA	DEV1
	ISZ	DEVNOF
	TAD I	DEVNOF
	DCA	DEV2
	ISZ	DEVNOF
	CIF	0
	JMS I	(USRIN
	CDF	20
	CIF	10
	JMS I	(200
	1
DEV1,	0
DEV2,	0			/DEVICENUMBER AFTER CALL
DEV3,	0			/ENTRYPOINT AFTER CALL
	JMS	HANER1
	JMP I	DEVNOF
/
/
/
/
/
HANER1,	JMS	CLLI02
	CIF	0
	JMS I	[TELE
	HAMS1
	JMP	CDERET
	PAGE
FNAM,	0			/BUILD FILENAME IN CORRECT FORMAT
	DCA	FNA2		/CLEAR FILE EXTENSION
	TAD	(CDBU
	TAD	NAMPO		/SET POINTER TO FILENAME
	DCA	CD
	TAD I	DEVTAX
	BSW
	AND	(7
	CIA
	DCA	FNACN1
	TAD	(6
	TAD	FNACN1
	CLL	RAR
	AND	(7
	CIA
	DCA	FNACN2
	TAD	(FNA1
	DCA	FNAX		/SET POINTER
	JMS	BUCHHO		/FETCH LETTERS, TWO AT A LINE
	TAD	FNACN2
	SNA	CLA
	JMP	.+5
	DCA I	FNAX
	ISZ	FNAX
	ISZ	FNACN2
	JMP	.-3
	TAD I	DEVTAX
	AND	(7
	SNA
	JMP	FNAM3		/NO ENTENTION
	CIA
	DCA	FNACN1
	ISZ	CD		/SKIP .
	ISZ	WCCD
	NOP
	JMS	BUCHHO
FNAM3,	JMP I	FNAM
FNAX,	0
FNACN1,	0
FNACN2,	0
FNA1,	0			/FILENAMETABLE
	0
	0
FNA2,	0			/FILEEXTENSION
/
/
/
/
/
BUCHHO,	0
BUCHH1,	JMS	CDCA
	HLT
	TAD	CDCAR
	AND	(77
	BSW
	DCA I	FNAX
	ISZ	FNACN1
	JMP	.+3
	ISZ	FNAX
	JMP I	BUCHHO
	JMS	CDCA
	HLT
	TAD	CDCAR
	AND	(77
	TAD I	FNAX
	DCA I	FNAX
	ISZ	FNAX
	ISZ	FNACN1
	JMP	BUCHH1
	JMP I	BUCHHO
/
/
/
/
/
LOOKUP,	0
	TAD	(FNA1
	DCA	LOOK1
	TAD	DEV2
	CDF	20
	CIF	10
	JMS I	(200
	2
LOOK1,	0			/START OF FILE
LOOK2,	0
	JMP	LOOK3		/LOO2 IS LENGTH OF FILE (NEG)
	JMP I	LOOKUP
LOOK3,	CIF	0
	JMS I	[TELE
	LOOK4
	JMP	CDERET
LOOK4,	TEXT /LOOKUP ERROR/
/
/
/
/
/
FPINC,	0			/FILENAMEPOINTER INCRE FOR PUT
	TAD	LO1FP
	IAC
	DCA	LO1FP
	TAD	LO1FP
	CIA
	TAD	(LO1F2A
	SMA	CLA
	JMP I	FPINC
	TAD	(LO1F2I
	DCA	LO1FP
	JMP I	FPINC
/
/
/
/
/
	PAGE
DEFIT,	0			/SET UP STREAMDEFINING BLOCK
	JMS	LO0BL2
	CDF	20		/RETURNS WITH DF 10 !!!
	TAD I	DEFIT
	DCA	DEFIT1	
	TAD	[-40
	TAD	DEFIT1
	TAD	[DEPCO
	DCA	DEPCOX
	TAD I	DEPCOX
	CDF	10
	DCA I	[LO0BU+2
	TAD	DEFIT1
	DCA I	[LO0BU+1
	TAD	[41
	DCA I	(LO0BU
	CDF	0
	P1
	DCA I	(NEWFS+1		/SET NEW FILE FLAG
	CDF	20
	JMS	CLLO02
	ISZ	DEFIT
	JMP I	DEFIT
DEFIT1,	0			/SAVE LOC FOR STREAM NO
DEPCOX,	0			/POINTER TO DEPOSITION CODE
DEPCO,	0			/DEPOSITIONCODES
	40			/LO1
	40+40			/LI1
	0			/LO2 NOT EXISTING
	50+40			/LI2
	0			/LO3 NOT EXISTING
	66+40			/LI3
/
/
/
/
/
SETDEV,	0
	TAD I	SETDEV		/SETUP HANDLER ENTRY
	DCA	DEV3
	ISZ	SETDEV
	TAD	(DEVTA		/DECODE IS ALREADY DONE
	DCA	DEVTAX
	TAD I	DEVTAX
	DCA	NAMPO
	ISZ	DEVTAX
	TAD I	DEVTAX		/GET POINTER TO DEVICE
	TAD	(CDBU
	DCA	CD
	JMS	CDCA
	JMP	OUTER2
	JMS	HADLT		/DEVTAX IS INCREMENTED IN HADLT
	JMP	ISYS
	JMP	IDSK
	JMP	ITTY
	JMP	IPTP
	JMP	OUTER2
/
/
ISYS,	JMS	DEVNOF
	DEVICE SYS
SET1,	JMS	FNAM
	TAD	(6060
	DCA	FNA2			/EXTENSION IS 00
	JMP I	SETDEV
/
/
IDSK,	JMS	DEVNOF
	DEVICE	DSK
	JMP	SET1
/
/
IPTP,	JMS	DEVNOF
	DEVICE PTP
SET2,	TAD	(FNA1
	DCA	SET3
	TAD	(-4
	DCA	SET4
	DCA I	SET3			/SET FILENAME 0
	ISZ	SET3
	ISZ	SET4
	JMP	.-3
	JMP I	SETDEV
SET3,	0
SET4,	0
ITTY,	DCA	DEV2
	JMP	SET2
/
/
/
/
/
/
/
/
/
/
PA0FET,	0			/MOVE PART OF PAGE00 AND LO1FILETABLE
	IFNDEF ODTEST <IOF>
	CIF	0
	JMS I	(MOVE
	CDF	0
	BFOB
	CDF	20
	BFOB
	-30
	CIF	0
	JMS I	(MOVE
	CDF	0
	LO1FMI
	CDF	20
	LO1F2I
	LO1F2I-LO1F2A-1
	TAD	LO1FG
	TAD	(-LO1FMI	/LO1 GET POINTER SWAP
	TAD	(LO1F2I
	DCA	LO1F2G
	TAD	.-7
	DCA	FLDX
	IFNDEF ODTEST <ION>
	JMP I	PA0FET
	PAGE
/
/
PA0STO,	0			/RESTORE PAGE00 AND LO1 FILETABLE
	IFNDEF ODTEST <IOF>
	CIF	0
	JMS I	(MOVE
	CDF	20
	BFOB
	CDF	0
	BFOB
	-30
	CIF	0
	JMS I	(MOVE
	CDF	20
	LO1F2I
	CDF	0
	LO1FMI
	LO1F2I-LO1F2A-1
	TAD	.-3
	DCA	FLDX
	IFNDEF ODTEST <ION>
	JMP I	PA0STO
/
/
CANMS2,	TEXT/NO STREAMNUMBER DEFINED/
/
/
HAMS1,	TEXT /ILLEGAL HANLDER REQUEST/
/
/
LO1F2I,	ZBLOCK LO1FMA-LO1FMI
LO1F2A,	0
/
/
/
CLLO02,	0
	TAD	(LO0BU
	DCA	LO0
	TAD	(LO0BUL
	DCA	WCLO0
	JMP I	CLLO02
/
/
/
CLLO12,	0
	TAD	(LO1BU
	DCA	LO1
	TAD	(LO1BUL
	DCA	WCLO1
	JMP I	CLLO12
/
/
/
CLLI02,	0
	TAD	(LI0BU
	DCA	LI0
	TAD	(LI0BUL
	DCA	WCLI0
	JMP I	CLLI02
/
/
/
CLLI22,	0
	TAD	(LI2BU
	DCA	LI2
	TAD	(LI2BUL
	DCA	WCLI2
	JMP I	CLLI22
/
/
/
CLLI32,	0
	TAD	(LI3BU
	DCA	LI3
	TAD	(LI3BUL
	DCA	WCLI3
	JMP I	CLLI32
/
/
/
DEFIT2,	0
	TAD I	DEFIT2
	CMA
	AND	DEFSTR
	TAD I	DEFIT2
	DCA	DEFSTR
	ISZ	DEFIT2
	JMP I	DEFIT2
/
/
/
	PAGE
CLCD2,	0
	TAD	(CDBU
	DCA	CD
	TAD	(CDBUL
	DCA	WCCD
	JMP I	CLCD2

GOSTR2,	0			/PUT STREAM IN SSTATUS
	TAD I	GOSTR2
	ISZ	GOSTR2
	MQL
	CDF	0
	TAD I	(SSTAT
	MQA
	DCA I	(SSTAT
	CDF	20
	JMP I	GOSTR2

	PAGE
	ZBLOCK 7777-.

	FIELD 3
	*200
LIPPMI,	ZBLOCK 170^6-1
LIPPMA,	0