File: SI3040.PA of Disk: Disks/Working/MyProgs-22-04-07
(Source file text) 

/FAMILY OF 8 3040 DIAGNOSTIC 09/12/73

/SYSTEM INDUSTRIES, INC.
/535 DEL RY AVENUE
/SUNNYVALE, CALIFORNIA 94086

/WVDMARK NEW SOURCE AND COMMENTS 2011-10-01

/STARTING ADDRESS: 200
/CORE: 0-5777

*0
INTENT,	0
	JMS I	.+1
	ILTRP
/EQUALS TABLE
SKON=6000
IOT=6000
ION=6001
IOF=6002
SRQ=6003
CAF=6007

DSKDAT=5400
BUF1=5500
BUF2=6400
/LAI51=FRM51

DSDD=6001	/SKIP DISK DONE
DLCR=6002	/LOAD CONTROL
DRCR=6003	/READ CONTROL
DCSR=6004	/CLEAR STATUS
DRSR=6005	/READ STATUS
DLSS=6006	/LOAD SEEK AND STRT OVERLAP SEEK
DRSS=6007	/READ SEEK STATUS
DSDE=6011	/SKIP ERROR
DLSR=6012	/LOAD SECTOR ADDRESS
DSRR=6013	/READ SECTOR ADDRESS
DLTR=6014	/LOAD TRACK ADDRESS AND READ
DLTW=6015	/LOAD TRACK ADDRESS AND WRITE
DRTR=6016	/READ TRACK ADDRESS
DWCA=6017	/INITIATE WORD COUNT AND CURRENT ADDRESS

*20
/PAGE ZERO-DATA TRANSFER LOCATIONS
DATA1,	0	/R-W CONTROL
	0	/WAIT TIME
	0	/ERROR VALUE
	0	/0=DO NOT CK. SAR
	0	/0=CK. DATA
EXOLS1,	0
	DLSS
/PAGE ZERO-CONTROL SETTINGS
WCCA,	0
	BUF2
SECTOR,	0
	0	/SECTOR BACKUP
TRACK,	0
	0	/TRACK BACKUP
BLOCKS,	0	/
TYPDSK,	0	/0=MOVING, 1=FIXED DISK - UNIT AREA -- FROM HERE
MAXTSC,	0	/MAX SECTORS HO
	0	/LO
MAXTTR,	0
MAXRSC,	0	/MAX SECTORS HO
	0	/LO
MAXRTR,	0	/MAX TRACK FROM PARAMETER ROUTINE
FULL,	0	/FULL DISK = 0
UNIT,	0
DAISY,	0	/2000 IF FIXED
DAIVAL,	0	/2000 IF REMOVABLE - UNIT AREA -- TO HERE
SINSEC,	400
MULSEC,	600
NUMSEC,	4
MAXSEC,	0
	0
MAXTRK,	0
ADDRES,	0
ERRFLG,	0
ERRFL1,	0
ERRNUM,	0
PORTS,	0
PASS1,	0
LPFORM,	0	/FORMAT SWITCH
/PAGE ZERO-IOT ROUTINE LOCATIONS
CLSTAT,	EXCLST		/CLEAR STATUS REGISTER
SKPDON,	EXSKDN		/SKIP DONE WITH TIMEOUT
RDSTAT,	EXRDST		/READ STATUS REGISTER
RDTRAD,	EXRDTR		/READ TRACK ADDRESS
RDSEC,	EXRDSC
LDCON,	EXLCON
LDTARD,	EXLTAR
LDTAWR,	EXLTAW
LDSEC,	EXLSEC
RDSSR,	EXRDSS
IOLS,	EXOLS
IWCCA,	EXIWC
/PAGE ZERO-SUBROUTINE CALLS
TYPERR,	EXTERR
HLTLP,	EXHLTP		/HALT? FIRST RETURN REPEAT, SECOND CONTINUE
TYPDAT,	EXTDAT
TYPADD,	EXTADD
SECADD,	EXSCAD
WRITE,	EXWR
READ,	EXRD
MOVE12,	EXM12
CLR2,	EXCL2
TYPDIS,	EXTDIS
TYPENA,	EXTENA
TYPTEX,	EXTEX
TYPSTB,	EXTSTB
TYPSTI,	EXTSTI
TYPSRI,	EXTSRI
TYPSRB,	EXTSRB
TYPCNI,	EXTCNI
CRLF,	EXCRLF
TYPQQ,	EXTQQ
TYPWD,	EXTWD
TYPCHK,	EXTCHK
TYPSB,	EXTSB
TYPIS,	EXTIS
TYPTAB,	EXTAB
TYPCNB,	EXTCNB
TYPSCB,	EXTSCB
TYPUN,	EXTUN
TYPON,	EXTON
CLRMOV,	EXCLMV
CLR1,	EXCL1	/FILL LAST WCCA-2 WORDS OF BUF1 WITH 0'S FOLLOWED BY ONE 6666
PEXEC2,	EXEC2	/MOVE ROUTINE
TYPLAS,	EXLAS	/READ SWITCH INTO SWR AND PRINT
EXIWC1,	DWCA
	WCCA
LAI51,
FRM51,	0
	0
	0
	3577
SWR,	0	/SWITCH VALUE
M1,	7777
NL0002=CLA CLL CML RTL
NL0003=JMS	I .	; LDTHRE
NL0004=JMS	I .	; LDFOUR
TEMP,	0
PWAIT,	WAIT
CNT,	7760
TEMP1,	0

*200
/EXECUTIVE ROUTINE FOR FAMILY OF 8 COMPUTERS
EXEC,	JMS I	EXEC1	/CALLS PARAM INPUT ROUTINE
	JMS I	EXEC1+1	/CALLS CERTST TEST 1. REGISTER
	JMS I	EXEC1+2	/CALLS INTST TEST 2. INTERRUPT
	JMS I	EXEC1+3	/CALLS WCTST TEST 3. WCCA
	CLA
	TAD	EXEC1+4	/GETS DSKDAT-1
	DCA	EXEC21
	TAD	PORTS
	DCA	EXEC3+1	/SAVE IN LIST
	JMS	EXEC2	/MOVE
EXEC21,	0		/FROM
	TYPDSK-1	/TO
	13		/COUNT
	JMS I	TYPUN
	JMS I	CRLF
	JMS 	EXEC2
	MAXRSC-1
	MAXSEC-1
	3
	JMS I	EXEC3	/LAITST TEST 4. LOGICAL ADDRESS INTERLOCK AND OVERLAP SEEK
	JMS	EXEC2
	MAXTSC-1
	MAXSEC-1
	3
	TAD	TYPDSK	/FIXED DISK?
	SZA CLA
	JMP	.+5		/YES, SKIP
	TAD	PASS1
	TAD	LPFORM	/FORMAT?
	SZA CLA
	JMS I	EXEC3+2	/GO THERE - FRMTST TESTS 5.
	JMS I	EXEC3+3	/WRB11	TESTS 6.
	115			/ERRNO
	0
	0
	0
	4
	CLA
	TAD	PASS1
	TAD	LPFORM
	SZA CLA
	JMS I	EXEC4	/SABTST
	JMS I	EXEC4+1	/RANTST
	JMS I	EXEC4+2	/BDATST
	JMS I	EXEC4+3	/MDATST
	CLA
	TAD	DAISY
	SNA CLA
	JMP	EXEC5+1
	TAD	DAIVAL
	SZA CLA
	JMP	EXEC5
	STL RTR
	DCA	DAIVAL
	JMP	EXEC21+3
	
EXEC5,	DCA	DAIVAL
	TAD	EXEC21
	TAD	EXEC21+2
	DCA	EXEC21	/NEXT UNIT
	ISZ	EXEC3+1
	JMP	EXEC21-1	/MORE UNITS
	TAD	PASS1	/FIRST PASS?
	SNA CLA
	JMP	EXEC+1
	DCA	PASS1
	TAD	LPFORM
	SNA CLA
	JMS I	TYPDIS	/TURN SWITCH OFF!
	JMP	EXEC+1
	
EXEC2,	0			/MOVE INFO FOR UNIT
	TAD I	EXEC2
	DCA	10
	ISZ	EXEC2
	TAD I	EXEC2
	DCA	11
	ISZ	EXEC2
	TAD I	EXEC2
	CIA
	DCA	EXEC22
	ISZ	EXEC2
	TAD I	10
	DCA I	11
	ISZ	EXEC22
	JMP	.-3
	JMP I	EXEC2
EXEC22,	0
EXEC1,	PARAM
	CERTST
	INTST
	WCTST
	DSKDAT-1
EXEC3,	LAITST		/TESTS 4. FORMAT
	0		/PORTS
	FRMTST		/TESTS 5. FORMAT
	WRB11		/TESTS 6. TWO WORD WRITE/READ
EXEC4,	SABTST		/TESTS 7. SEEK ALL BLOCKS
	RANTST		/TESTS 8. RANDOM SEEK 
	BDATST		/TESTS 9. SINGLE BLOCK WRITE/READ
	MDATST		/TESTS 10. MULTIPLE SECTOR WRITE/READ
EXLTAR,	0		/LOAD TAR AND INITIATE A READ
	CLA		/AC=0=READ
	JMS	EXLTA
	JMP I	EXLTAR
EXLTA,	0		/LOAD TAR AND INITIATE READ OR WRITE
	TAD	ADDRES	/AC=0=READ, AC=1=WRITE
	TAD	EXLTA1+3/DLTR,      DLTW = DLTR+1
	DCA	EXLTA1
	TAD	DAIVAL
	TAD	TRACK
EXLTA1,	0
	CLA
	JMP I	EXLTA
	DLTR
	
*400
/CONTROL-STATUS REGISTER TEST-SECTOR REGISTER-SKP DONE
CERTST,	0
	CLA CLL IAC
	JMS I	CER1	/REGTRT
	DLCR
	DRCR
	7177		/MASK BITS 3,4 UNUSED
	EXTCNB		/TYPOUT ERROR ROUTINE
	1		/ERRNO 1
	JMP	.-6
	JMS I	CER1+1	/REGRES
	DRCR
	0143		/SHOULD RESET INTENA,FMTENA,BUSY,DONE
	EXTCNB
	2		/ERRNO 2
	JMP	.-6
	RAL
	SNL
	JMP	CERTST+2
	RAL
	JMS	CER4
CER2,	JMS I	SKPDON
	JMP	CER3	/DSDD SKIPPED
	CLA
	TAD	CER1+2	/ERRNO 212
	JMS I	TYPERR
	JMS I	TYPSTI
CER3,	JMS I	HLTLP
	JMP	CER2
	JMS 	CER41
	NL0002
	JMS	CER4
	JMS	CER41
	CLA CLL IAC
CER5,	JMS I	CER1
	DLSR
	DSRR
	17
	EXTSCB
	213		/ERRNO 213
	JMP	.-6
	RAL
	AND	.-5
	SZA
	JMP	CER5
	JMP I	CERTST
CER4,	0
	JMS I	CER1
	DLCR
	DRSR
	7777
	EXTSTB
	210		/ERRNO 210
	JMP	CER4+1
	JMP I	CER4
CER41,	0
	JMS I	CLSTAT
	JMS I	RDSTAT
	SNA CLA
	JMP	.+5
	CMA
	TAD	CER1+2	/ERRNO 211
	JMS I	TYPERR
	JMS I	TYPSTI
	JMS I	HLTLP
	JMP	CER41+1
	JMP I	CER41
CER1,	REGTRT
	REGRES
	212
/REGISTER RESET TEST - SAVES AC - WD1=RDIOT,
/WD2= ERR MASK, WD3=TYPOUT, WDA=ERRNO
REGRES,	0
	DCA	REGR1
	TAD I	REGRES	/GET RDIOT
	ISZ	REGRES
	TAD	ADDRES
	DCA	REGR2
	SKON
	JMP	.+3
	CAF
REGR2,	0			/EXECUTE HERE
	ION
	AND I	REGRES
	ISZ	REGRES
	SNA CLA		/READ = VALUE?
	JMP	REGR3
	TAD I	REGRES
	DCA	REGR2	/TYPOUT ERROR ROUTINE
	ISZ	REGRES
	TAD I	REGRES	/ERROR NUMBER
	JMS I	TYPERR
	CLA
	JMS I	REGR2
	JMP	.+2		/ERROR RETURN
REGR3,	ISZ	REGRES
	ISZ	REGRES
	JMS I	HLTLP
	JMP	.+2
	ISZ	REGRES
	CLA
	TAD	REGR1
	JMP I	REGRES
REGR1,	0
/WORD COUNT AND CURRENT ADDRESS TEST
WCTST,	0
	CLA
	JMS	WCT2
	CLL CMA RAL
	JMS	WCT2
	CLA
	TAD	WCT1
	JMS	WCT2
	RAR CLL
	JMS	WCT2
	JMP I	WCTST
WCT2,	0
	JMS I	WCT1+1
	DWCA
	DRTR
	3777
	EXTAB
	4		/ERRNO 4
	JMP	.-6
	JMP I	WCT2
WCT1,	5252
	REGTRT
	
*600
/FORMAT ROUTINE, WD1=SECTOR STATUS WORD, WD2=STARTING SECTOR #, WD3=BASE ERRO
FRM15,	0
	CLA
	TAD	FRM152
	DCA	FRM151	/INIT COUNT WITH 23
	TAD	FRM152+2
	DCA	10		/BUF2-1
	TAD	FRM151
	CIA
	DCA	FRM151+1	/COUNT 23
	DCA I	10		/OF ZERO'S
	ISZ	FRM151+1
	JMP	.-2
	STL	RAR		/AND ONE 8000
	DCA I	10
	TAD	DAIVAL	/2000 IF REMOVABLE
	TAD I	FRM15	/0 OR 4000 FOR WRITE-LOCK
	ISZ	FRM15
	DCA	FRM152+1
	TAD I	FRM15	/STARTING SECTOR
	ISZ	FRM15
	TAD	FRM152+1	/+ TEMP
	DCA I	10
	TAD	10
	DCA	FRM151+1	/START OF DATA
	NL0002
	TAD	FRM151
	DCA	WCCA	/25
	DCA	SECTOR
	DCA	TRACK
	DCA	BLOCKS
	TAD	WRITE
	DCA	DATA1	/SET TO WRITE
	TAD	FRM152+3
	DCA	DATA1+1	/WAIT TIME 400
	TAD I	FRM15
	DCA	DATA1+2	/BASE ERROR
	ISZ	FRM15
	CMA
	DCA	DATA1+3
	CMA
	DCA	DATA1+4
	CLL
	TAD	MAXSEC+1
	CIA
	DCA	FRM151	/LO ORDER
	TAD	MAXSEC
	CMA
	SZL
	IAC
	DCA	FRM151+2	/HI ORDER
	TAD	FRM152+4	/FORMAT ENABLE
	JMS I	LDCON
FRM153,	JMS I	FRM152+5	/RDWR
	JMP	.-1		/ERROR
	ISZ	BLOCKS
	JMS I	SECADD	/ADD BLOCKS TO SECTOR
	CLA
	DCA	BLOCKS
	TAD	TRACK
	TAD	FRM152+1	/2000 AND 4000
	DCA I	FRM151+1	/IN TRACK LOCATION
	ISZ	FRM151
	JMP	FRM153
	ISZ	FRM151+2	/DONE HI ORDER?
	JMP	FRM153
	JMP I	FRM15	/DONE
FRM151,	0
	0
	0
FRM152,	23
	0
	BUF2-1
	400
	40			/FORMAT ENABLE
	RDWR
	
/MULTIPLE BLOCK WRITE, MULTIPLE AND SINGLE BLOCK READS
MDATST,	0
	CLA
	TAD	MULSEC	/600
	JMS I	MDAT1	/DSKRW
	EXWR
	400
	154		/ERRNO
	600
	2		/NO. BLOCKS
	12		/START
	1		/INTERLACE
	7772
	TAD	MULSEC
	JMS I	MDAT1
	EXRD
	400
	161		/ERRNO
	600
	2
	16
	1
	7770
	TAD 	SINSEC	/400
	JMS I	MDAT1
	EXRD
	400
	166		/ERRNO
	600
	1
	16
	2
	7760
	TAD	SINSEC
	CLL RAR
	DCA	MDAT2
	TAD	SINSEC
	JMS I	MDAT1
	EXRD
	400
	166
MDAT2,	0
	1
	17
	2
	7760
	JMP I	MDATST
MDAT1,	DSKRW

*1000
/ROUTINE TO READ/WRITE ENTIRE DISK-DATA PATTERN.
/CALLING SEQUENCE, AC=WDCT, WD1=RD/WR CONTROL, WD2=WAIT TIME,
/WD3=BASE ERROR, WD4=PATTERN LEN, WD5=NO. BLKS, WD6=START,
/WD7=INTERLACE
DSKRW,	0
	DCA	WCCA	/400, 600
	CMA
	TAD	DSKRW
	DCA	10
	TAD I	10
	DCA	DATA1	/RD/WR 
	TAD I	10
	DCA	DATA1+1	/WAIT TIME
	TAD I	10
	DCA	DATA1+2	/ERROR VALUE
	CMA
	DCA	DATA1+3	/CHECK SAR
	DCA	DATA1+4	/CHECK DATA
	TAD I	10
	JMS I	DSK1	/PATGEN
	TAD I	10
	DCA	BLOCKS	/NO. BLOCKS
	TAD I	10
	DCA	DSK2+2	/START
	TAD I	10
	CIA
	DCA	DSK2+1	/MULTIPLIER
	TAD I	10
	DCA	DSK2	/-INTERLACE
	TAD	10
	IAC
	DCA	DSKRW	/RETURN
	TAD	SINSEC
	TAD	DSK1+1	/BUF1-1
	DCA	DSK1+4	/BUF1-1+400
	TAD	DSK1+4
	DCA	DSK1+5
	ISZ	DSK1+5
	JMS I	LDCON
DSK5,	CMA
	DCA I	DSK1+1
	TAD	DSK2+2
	CMA
	DCA I	DSK1+2
	DCA	TRACK
	TAD	DSK2+2
	DCA	SECTOR
	CMA
	DCA I	DSK1+4
	IAC
	TAD	DSK2+2
	CMA
	DCA I	DSK1+5
DSK3,	JMS I	CLRMOV	/EXCLMV SEE BELOW 
	JMS I	DSK1+3	/RDWR
	JMP	DSK3
	TAD	DSK2
	DCA	DSK2+3
DSK4,	JMS I	SECADD
	TAD	BLOCKS
	CIA
	TAD I	DSK1+2
	DCA I	DSK1+2
	SNL
	CMA
	TAD I	DSK1+1
	DCA I	DSK1+1
	ISZ	DSK2+3
	JMP	DSK4
	CMA CLL
	TAD I	DSK1+2
	DCA I	DSK1+5
	SNL
	CMA
	TAD I	DSK1+1
	DCA I	DSK1+4
	TAD	TRACK
	CIA
	TAD	MAXTRK
	SMA CLA
	JMP	DSK3
	TAD	DSK2+1
	DCA	DSK2+4
	TAD 	BLOCKS
	ISZ	DSK2+4	/BLOCKS * MULTIPLIER
	JMP	.-2
	CIA
	TAD	DSK2+2
	DCA	DSK2+2	/NEW START
	TAD	DSK2+2
	SMA CLA
	JMP	DSK5
	JMP I	DSKRW
DSK1,	PATGEN
	BUF1
	BUF1+1
	RDWR
	0		/SECOND HALF OF BUFFER LIKE BUF1
	0		/LIKE BUF1+1
DSK2,	0		/-INTERLACE
	0		/MULTIPLIER
	0		/START
	0
	0		/TEMP
EXCLMV,	0		/ON WRITE CALL MOVE12, ON READ CALL CLR2
	CLA
	TAD	DATA1
	CIA
	TAD	WRITE
	SZA CLA
	JMP	.+3
	JMS I	MOVE12	/WRITE: EXM12 MOVE BUF1 TO BUF2, ONE 6666
	JMP	.+2
	JMS I	CLR2	/READ: EXCL2 CLEAR BUF2, ALL 3333, ONE 6666
	JMP I	EXCLMV
	
*1200
/READ-WRITE ROUTINE, PERFORMS OPERATION AND CHECKS
/FOR TIME-OUT, HARDWARE ERROR IN STATUS REGISTER,
/TAR AND SCR VALUE, COMPARES DATA AND END OF BUFFER.
/EXITS+1 IF NO ERROR IS DETECTED.
RDWR,	0
	JMS I	CLSTAT	/EXCLST CLEAR STR
	JMS I	DATA1	/INITIATE DATA TRANSFER EXRD/EXWR
	CLA
	TAD	DATA1+1	/WAIT TIME
	CIA
	DCA	RDWR1
	JMS I	SKPDON	/SKIP?
	JMP	RDWR2	/OK
	ISZ	RDWR1
	JMP	.-3	/WAIT
	CLA		/TIME-OUT ERROR
	JMS	RDWR3	/TYPE ERROR
	JMS I	HLTLP
	JMP I	RDWR
	ISZ	RDWR
	JMP I	RDWR
RDWR2,	JMS I	RDSTAT
	SMA CLA
	JMP	RDWR4
	CLA IAC		/STR ERROR
	JMS 	RDWR3	/TYPE ERROR
	JMP	.+4
RDWR4,	TAD	DATA1+3
	SZA CLA		/CHECK SAR?
	JMS	RDWR5	/YES
	TAD	DATA1+4
	SZA CLA		/CHECK DATA
	JMP	RDWR2-4	/NO, THAT WAS IT
	TAD	WCCA
	CIA
	DCA	RDWR1	/COUNT
	TAD	RDWR1+1	/BUF1
	DCA	10
	TAD	RDWR1+2	/BUF2
	DCA	11
	TAD I	10
	CIA
	TAD I	11
	SZA CLA
	JMP	RDWR6	/DATA ERROR
	ISZ	RDWR1
	JMP	.-6
RDWR7,	TAD I	11
	TAD	RDWR1+3	/-6666
	SNA CLA
	JMP	RDWR2-4	/OK, END
	NL0004		/DATA OVERFLOW ERROR +4
	JMS	RDWR31
	JMP	RDWR2-4
RDWR6,	NL0003		/DATA ERROR +3
	JMS	RDWR31
	TAD	RDWR11
	DCA	RDWR11+1/8 MORE ERRORS
	JMS I	TYPDAT
RDWR8,	ISZ	RDWR1
	JMP	.+2
	JMP	RDWR7	/FLUSHED BUFFER
	TAD I	10
	CIA
	TAD I	11
	SNA CLA
	JMP	RDWR8
	ISZ	RDWR11+1
	JMP	RDWR8-1	/TYPE 8 MORE ERRORS
	LAS
	AND	RDWR11+2
	SZA CLA
	JMP	RDWR8-3
	TAD	WCCA
	TAD	RDWR1+2
	DCA	11
	JMP	RDWR7
RDWR1,	0
	BUF1-1
	BUF2-1
	1112
RDWR11,	7770
	0
	10
RDWR3,	0		/ERROR TYPE OUT
	DCA	TEMP
	TAD 	DATA1+3
	SZA CLA
	JMP	.+6
	NL0002
	CMA
	TAD	TEMP
	SMA CLA
	CMA
	TAD	TEMP
	TAD	DATA1+2
	JMS I	TYPERR
	JMS I	TYPADD
	JMP I	RDWR3
RDWR31,	0
	JMS I	SECADD
	JMS	RDWR3
	JMS I	RDWR32
	JMP I	RDWR31
RDWR5,	0		/CHECK TAR AND SCR
	JMS I	SECADD
	JMS I	RDTRAD
	CIA
	TAD	TRACK
	TAD	DAIVAL
	SZA CLA
	JMP	RDWR51	/TAR ERROR
	IAC
	AND	NUMSEC
	STL RTL
	CLL CML IAC
	RTL
	IAC		/17
	DCA	RDWR32+1
	JMS I	RDSEC
	AND	RDWR32+1
	CIA
	TAD	SECTOR
	SZA CLA
	JMP	RDWR51	/SCR ERROR
	JMS I	RDWR32
	JMP I	RDWR5
RDWR51,	STL RTL
	JMS	RDWR3
	JMP	RDWR51-2
RDWR32,	RDWX32
	0
	
*1400
/PATTERN GENERATION - AC=LENGTH
PATGEN,	0
	CIA
	DCA	PATG1
	TAD	PATG1+1
	DCA	PATG1+2	/-600
	TAD	PATG1+3	/BUF1-1
	DCA	11
	JMS	PATG3
	JMP	.+7
	JMS	PATG3
	JMP	.+5
	JMS	PATG3
	JMP	.+3
	JMP I	PATGEN
	DCA I	11
	ISZ	PATG1+2
	JMP	.-2
	JMP I	PATGEN
PATG3,	0
	TAD	PATG2	/5252
	DCA	PATG5
	TAD	PATG6	/ROUTINE PATG42 NOP
	JMS	PATG41
	JMP I	PATG3
	DCA	PATG5	/0000
	TAD	PATG6	/ROUTINE PATG42 NOP
	JMS	PATG41
	JMP I	PATG3
	TAD	PATG2+1
	DCA	PATG5	/7776
	TAD	PATG6+1	/ROUTINE PATG43 ROTATE
	JMS	PATG41
	JMP I	PATG3
	TAD	PATG2+2
	DCA	PATG5	/7070
	TAD	PATG6+2	/ROUTINE PATG44 COMPLEMENT
	JMS	PATG41
	JMP I	PATG3
	TAD	PATG2+3
	DCA	PATG5	/2525
	TAD	PATG6	/ROUTINE PATG42 NOP
	JMS	PATG41
	JMP I	PATG3
	IAC
	DCA	PATG5	/0001
	TAD	PATG6+1	/ROUTINE PATG43 ROTATE
	JMS	PATG41
	JMP I	PATG3
	CMA
	DCA	PATG5	/7777
	TAD	PATG6	/ROUTINE PATG42 NOP
	JMS	PATG41
	JMP I	PATG3
	DCA	PATG5	/0000
	TAD	PATG6+2	/ROUTINE PATG44 COMPLEMENT
	JMS	PATG41
	JMP I	PATG3
	ISZ	PATG3
	JMP I	PATG3
PATG41,	0
	DCA	PATG5+3	/ROUTINE
	TAD	PATG5+1
	DCA	PATG5+2	/-20
	TAD	PATG5
	DCA I	11
	JMS I	PATG5+3
	ISZ	PATG1
	JMP	.+2
	JMP I	PATG41	/REQUEST LENGTH END
	ISZ	PATG1+2	/COUNT
	NOP
	ISZ	PATG5+2
	JMP	PATG41+4
	ISZ	PATG41
	JMP I	PATG41	/SECOND EXIT DONE 20
PATG42,	0		/NOP
	JMP I	PATG42
PATG43,	0		/ROTATE LEFT
	TAD	PATG5
	CLL RAL
	SZL
	IAC
	DCA	PATG5
	JMP I	PATG43
PATG44,	0		/COMPLEMENT
	TAD	PATG5
	CMA
	DCA	PATG5
	JMP I	PATG44
PATG1,	0		/LENGTH
	7200
	0		/FULL BUF -600
	BUF1-1
PATG2,	5252
	7776
	7070
	2525
PATG5,	0		/PATTERN
	7760
	0
	0
PATG6,	PATG42
	PATG43
	PATG44
EXM12,	0		/MOVE WCCA WORDS FROM BUF1 TO BUF2
	CLA		/FOLLOWED BY ONE 6666
	TAD	WCCA
	DCA	.+4
	JMS I	PEXEC2
	BUF1-1
	BUF2-1
	0
	TAD	EXM3
	DCA I	11
	JMP I	EXM12
EXM3,	6666

*1600
/CALLING SEQUENCE, WD1=ERROR NO., WD2,3 = START DATA VALUE
/WD4,5= MODIFY VALUE
WRB11,	0
	CLA
	TAD I 	WRB11
	DCA	DATA1+2	/ERRNO
	DCA	DATA1+3	/PREPARE DATA1 VALUES
	DCA	DATA1+4
	TAD	WRB12
	DCA	DATA1+1
	TAD	WRITE
	DCA	DATA1
	IAC
	DCA	BLOCKS
	NL0002
	DCA	WCCA
	JMS I	LDCON
	ISZ	WRB11
	TAD I	WRB11
	DCA	WRB12+1	/START DATA
	ISZ	WRB11
	TAD I	WRB11
	DCA	WRB12+2	/START DATA
	ISZ	WRB11
	TAD	I	WRB11
	DCA	WRB12+3
	ISZ	WRB11
	TAD I	WRB11	/INTERLEAVE
	ISZ	WRB11
	SPA
	JMP	.+4
	DCA	SAVBLK	/SET FIRST BLOCK
	IAC
	JMP	.+4
	CIA
	DCA	SAVBLK
	CMA
	DCA	WRB12+4
	JMS	WRB13
	TAD	SINSEC
	DCA	WCCA
	JMS I	CLR1	/FILL LAST WCCA-2 WORDS OF BUF1 WITH 0'S FOLLOWED BY ONE 6666
	TAD	READ
	DCA	DATA1
	NL0004
	TAD	DATA1+2	/NEXT SUBTEST READ
	DCA	DATA1+2
	JMS	WRB13
	JMP I	WRB11
WRB12,	400
	0			/START DATA
	0			/"
	0			/INTERLEAVE
	0			/" 1 OR -1
WRB13,	0
	TAD	SAVBLK
	DCA	SAVSEC
	CMA
	TAD	SAVSEC
	SPA
	JMP I	WRB13
	DCA	SAVSEC
	TAD	SAVSEC
	DCA	SECTOR
	JMS	WRB18
	TAD	SECTOR
	JMS	WRB17
	JMS 	WRB15
	JMP	WRB13+3
WRB15,	0
	CLA CLL
	DCA	TRACK
	TAD	MAXSEC+1
	CIA
	DCA	WRB14+3
	TAD	MAXSEC
	CMA
	SZL
	IAC
	DCA	WRB14+2
WRB16,	JMS I	CLRMOV
	JMS I	WRB14+4	/RDWR
	JMP	WRB16
	TAD	SAVBLK
	CIA
	DCA	WRB14+5
	JMS I	SECADD
	ISZ	WRB14+5
	JMP	.-2
	TAD	SAVBLK
	JMS	WRB17
	TAD	WRB14+3
	TAD	SAVBLK
	DCA	WRB14+3
	TAD	WRB14+3
	SZA CLA
	JMP	WRB16
	ISZ	WRB14+2
	JMP	WRB16
	JMP I	WRB15
WRB18,	0
	TAD	WRB12+1
	DCA I	WRB14
	TAD	WRB12+2
	DCA I	WRB14+1
	JMP I	WRB18
WRB17,	0
	CIA
	SNA
	JMP I	WRB17
	DCA	WRB14+5
	CLL
	TAD	WRB12+4
	TAD I	WRB14+1
	DCA I	WRB14+1
	RAL
	TAD	WRB12+3
	TAD I	WRB14
	DCA I	WRB14
	ISZ	WRB14+5
	JMP	WRB17+5
	JMP I	WRB17
WRB14,	BUF1
	BUF1+1
	0
	0
	RDWR
	0
SAVSEC,	0
SAVBLK,	0

*2000
/SEEK ALL BLOCKS TEST - USES SEEK/READ
SABTST,	0
	CLA
	DCA	SAB1
	DCA	SAB1+1
	TAD	SAB1+6
	JMS	SAB2
SAB5,	JMS	SAB3
	SAB1
	JMS	SAB3
	SAB1+2
	CMA CLL CLA
	TAD	SAB1+3
	DCA	SAB1+3
	SNL
	CMA
	TAD	SAB1+2
	DCA	SAB1+2
	ISZ	SAB1+1
	SKP
	ISZ	SAB1
	JMS	SAB4
	JMP	SAB5
	JMP I	SABTST
SAB1,	0
	0
	0
	0
	0
	0
	125
SAB2,	0
	DCA	DATA1+2
	CMA CLL
	TAD	MAXSEC+1
	DCA	SAB1+3
	SNL
	CMA
	TAD	MAXSEC
	DCA	SAB1+2
	TAD	READ
	DCA	DATA1
	TAD	SAB21
	DCA	DATA1+1
	DCA	DATA1+3
	DCA	DATA1+4
	TAD	SINSEC
	DCA	WCCA
	JMS I	CLR1
	IAC
	DCA	BLOCKS
	JMS I	LDCON
	JMP I	SAB2
SAB21,	400
SAB3,	0
	TAD I	SAB3
	DCA	SAB31
	ISZ	SAB3
	TAD I	SAB31
	DCA I	SAB31+1
	TAD	NUMSEC
	TAD	SAB31+4
	DCA	SAB31+3
	TAD I	SAB31
	CLL RAL
	ISZ	SAB31+3
	JMP	.-2
	DCA	TRACK
	ISZ	SAB31
	TAD I	SAB31
	DCA I	SAB31+2
	TAD 	NUMSEC
	CIA
	DCA	SAB31+3
	STL RAL
	ISZ	SAB31+3
	JMP	.-2
	AND I	SAB31
	DCA	SECTOR
	TAD	NUMSEC
	CIA
	DCA	SAB31+3
	TAD I	SAB31
	CLL RAR
	ISZ	SAB31+3
	JMP	.-2
	TAD	TRACK
	DCA	TRACK
	JMS I	CLR2
	JMS I	SAB31+5
	JMP	.-2
	JMP I	SAB3
SAB31,	0
	BUF1
	BUF1+1
	0
	7764
	RDWR
SAB4,	0
	CLA CLL
	TAD	SAB1+3
	CIA
	TAD	SAB1+1
	DCA	SAB1+5
	TAD	SAB1+2
	CMA
	SZL
	IAC
	TAD	SAB1
	SMA
	ISZ	SAB4
	DCA	SAB1+4
	JMP I	SAB4
RANSIZ,	0
	JMS	SAB4
	JMP I	RANSIZ
	TAD	SAB1+4
	DCA	SAB1
	TAD	SAB1+5
	DCA	SAB1+1
	JMP	RANSIZ+1
	
*2200
/SINGLE BLOCK WRITE, SINGLE AND MULTIPLE BLOCK READS
BDATST,	0
	CLA
	TAD	SINSEC
	JMS I	BDAT1
	EXWR
	400
	135
	600
	1
	5
	1
	7772
	TAD	SINSEC
	JMS I	BDAT1
	EXRD
	400
	142
	600
	1
	7
	1
	7770
	TAD 	MULSEC
	JMS I	BDAT1
	EXRD
	400
	147
	600
	2
	16
	1
	7770
	JMP I	BDATST
BDAT1,	DSKRW
/RANDOM SEEK TEST - USES SEEK/READ
RANTST,	0
	CLA
	TAD	RANT1
	DCA	RANT1+1
	TAD	RANT1+2
	JMS I	RANT1+3
RANT3,	JMS	RANUMB
	TAD	RANUM1
	DCA I	RANT2
	TAD	RANUM2
	DCA I	RANT2+1
	JMS I	RANT2+2
	JMS I	RANT2+3
	SAB1
	ISZ	RANT1+1
	JMP	RANT3
	JMP I	RANTST
RANT1,	7000
	0
	131
	SAB2
RANT2,	SAB1
	SAB1+1
	RANSIZ
	SAB3
RANUMB,	0
	CLA
	TAD	RANUM1+1
	AND	RANUM2
	CLL RTR
	RTR
	DCA	RANUM1+3
	TAD	RANUM1+1
	RTR
	RAR
	AND	RANUM2+1
	DCA	RANUM1+2
	JMS	RANUM3
	JMS	RANUM4
	JMS	RANUM4
	JMS	RANUM3
	TAD	RANUM2+2
	DCA	RANUM1
	TAD	RANUM2+3
	DCA	RANUM1+1
	JMS	RANUM3
	TAD	RANUM1+2
	DCA	RANUM1
	TAD	RANUM1+3
	DCA	RANUM1+1
	JMP I	RANUMB
RANUM1,	5
	4321
	0
	0
RANUM2,	7
	17
K3,	3
	3031
RANUM3,	0
	CLA CLL
	TAD	RANUM1+1
	TAD	RANUM1+3
	DCA	RANUM1+3
	RAL
	TAD	RANUM1
	TAD	RANUM1+2
	AND	RANUM2+1
	DCA	RANUM1+2
	JMP I	RANUM3
RANUM4,	0
	TAD	RANUM1+3
	CLL RAL
	DCA	RANUM1+3
	TAD	RANUM1+2
	RAL
	AND	RANUM2+1
	DCA	RANUM1+2
	JMP I	RANUM4
EXLTAW,	0		/LOAD TAR AND INITIATE WRITE
	CLA IAC
	JMS I	.+2
	JMP I	EXLTAW
	EXLTA
	
LDTHRE,	0
	CLA CLL
	TAD	K3
	JMP I	LDTHRE
	
LDFOUR,	0
	CLA CLL IAC
	TAD	K3
	JMP I	LDFOUR
	
*2400
/FORMAT TEST SUBROUTINE
FRMTST,	0
	JMS I	FRM2	/TEST 5.1 FRM15
	0
	0
	53		/ERRNO 53
	JMS I	FRM2+1	/TEST 5.2,5.3 WRB11
	75		/ERRNO 75
	0
	0
	0
	4
	CLA OSR
	AND	FRM2+2	/40
	SZA CLA
	JMP	FRM3
	JMS I	FRM2	/TEST 5.4 FRM15
	0
	1777
	173		/ERRNO
	CLA
	DCA	TRACK
	JMS I 	FRM2+3	/TEST 5.5 FRM5
	0
	EXLTAR
	4000
	4401
	7777
	176		/ERRNO
	JMP	.-7
	JMS I	FRM2+3	/TEST 5.6 FRM5
	0
	EXLTAW
	4000
	4401
	7777
	200		/ERRNO
	JMP	.-7
	JMS I	FRM2	/TEST 5.7 FRM15
	4000
	0
	56		/ERRNO
	CLA
	TAD	MAXSEC
	DCA	FRM4
	TAD	MAXSEC+1
	DCA	FRM4+1
	JMS I	FRM2+1	/TEST 5.8,5.9 WRB11
	105		/ERRNO
FRM4,	0
	0
	7777
	7774
	CLA OSR
	AND	FRM2+4
	SNA CLA
	JMP	FRM7
	JMS I	TYPDIS
	CLA
	DCA	TRACK
	JMS I	FRM2+3	/TEST 5.10 FRM5
	40
	EXLTAW
	400
	5001
	7777
	202		/ERRNO
	JMP	.-7
	JMS I	FRM2+3	/TEST 5.11 FRM5
	0
	EXLTAW
	400
	4041
	7777
	204		/ERRNO
	JMP	.-7
	JMS I	TYPENA
FRM7,	JMS I	FRM2	/TEST 5.12 FRM15
	0
	0
	64		/ERRNO
	JMP I	FRMTST
FRM3,	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /END FORMAT OPERATION/
	JMS I	CRLF
	HLT
	JMP	.-1
FRM2,	FRM15
	WRB11
	40
	FRM5
	20
/WVDMARK PATCH...
/INTRET,	JMS	CLEAR
/		ION
/		JMP I	0
/IONRET,	0
/		JMS	CLEAR
/		ION
/		JMP I	IONRET
/CLEAR,	0
/		CLA
/		NOP
/		NOP	/CLEAR IOT DEPENDING ON DEVICES
/		NOP	/CLEAR IOT DEPENDING ON DEVICES
/		NOP	/CLEAR IOT DEPENDING ON DEVICES
/		NOP	/CLEAR IOT DEPENDING ON DEVICES
/		NOP	/CLEAR IOT DEPENDING ON DEVICES
/		JMP I	CLEAR

*2600
/OVERLAP SEEK-LAI TEST, MAIN ROUTINE
LAITST,	0
	CLA
	TAD	UNIT
	CIA
	DCA	LAI2
	IAC
	DCA I	LAI21
	TAD	LAI2+1	/7770
	DCA I	LAI21+1
	TAD	LAI2
	SNA CLA
	JMP	LAI22
LAI23,	TAD I	LAI21
	CLL RAL
	RTL
	DCA I	LAI21	/0010, 0100, 1000
	TAD I	LAI21+1
	STL RAL
	RTL
	DCA I	LAI21+1	/7704, 7044, 0444
	ISZ	LAI2
	JMP	LAI23
LAI22,	JMS I	RDSSR	/TEST 4.1 READY TO SEEK?
	AND I	LAI21
	SNA CLA
	JMP	LAI3
	NL0004
	IAC		/ERRNO 5
	JMS I	TYPERR
	JMS I	TYPSRI
LAI3,	JMS I	HLTLP
	JMP	LAI22
	CLA IAC
	TAD	MAXTRK
	DCA	TRACK	/MAXTRK+1 FOR NEXT TEST
	DCA	SECTOR
	JMS I	LAI2+5	/LAI6
	JMS I	PWAIT
	AND I	LAI21+1
	DCA I	LAI21+2
LAI31,	JMS I	IOLS	/LOAD SAR AND OVERLAP SEEK
	CLA
	TAD I	LAI21
	RAL
	DCA	LAI2
	TAD	LAI2
	RAL
	TAD	LAI2
	DCA	LAI2
	JMS I	RDSSR
	AND	LAI2
	SNA CLA
	JMP	LAI32
	NL0003
	CLL RAL		/ERRNO 6
	JMS I	TYPERR
	JMS I	TYPSRI
LAI32,	DCA	LAI2
	JMS I	LAI2+6	/LAI7
	SNA CLA
	JMP	LAI34
	ISZ	LAI2
	JMP	LAI32+1
	TAD	LAI2+2	/ERRNO 206
	JMS I	TYPERR
	JMS I	TYPSRI
LAI34,	JMS I	HLTLP
	JMP	LAI31
	TAD	TRACK
	JMS I	LAI2+3	/LAI4
	0
	4
	1
	7		/ERRNO 7..
	JMP	.-6
	JMS I	LAI2+3
	0
	0
	1
	15		/ERRNO 15..
	JMP	.-5
	TAD	MAXTRK
	JMS I	LAI2+3
	0
	0
	1
	23		/ERRNO 23..
	JMP	.-6
	CLA IAC
	DCA	WCCA
	JMS I	IWCCA
	JMS I	LDCON
	TAD	MAXTRK
	JMS I	LAI2+3
	2
	0
	0
	31		/ERRNO 31..
	JMP	.-6
	TAD	UNIT
	DCA	LAI21+3
	TAD	UNIT
	CIA
	TAD	LAI2+4
	DCA	UNIT
	JMS I	LDCON
	TAD	LAI21+3
	DCA	UNIT
	TAD	MAXTRK
	JMS I	LAI2+3
	0
	0
	0
	37		/ERRNO 37..
	JMP	.-6
	JMS I	LAI2+5
	JMP I	LAITST
LAI2,	0
	7770
	206
	LAI4
	3
	LAI6
	LAI7
LAI21,	LAI41
	LAI41+1
	LAI41+2
	0
	
*3000
/CALL SEQ - AC=TRACK,WD1=BUSY VAL,WD2=HDW VAL,WD3=DON VAL,
/WD4=ERROR
/LAI AND OVERLAP SEEK TEST ROUTINE-BASIC DRIVE
LAI4,	0
	DCA	LAI42+3
	JMS I	CLSTAT
	TAD	ADDRES
	TAD	LAI42
	DCA	LAI43
	TAD	LAI42+1
	DCA	LAI42+2
	DCA	LAI42+5
	TAD	LAI42+3
	JMS I	IOLS
LAI43,	0		/6507=DRSS
	AND	LAI41
	SZA CLA
	ISZ	LAI42+5
	ISZ	LAI42+2
	JMP	LAI43
	TAD	LAI43
	DCA	.+1
LAI45,	0		/DRSS AGAIN
	DCA	LAI42+3
	TAD	LAI42+3
	AND	LAI41
	SNA CLA
	JMP	LAI47
	TAD	LAI42+3
	AND	LAI41+1
	CIA
	TAD	LAI41+2
	SNA CLA
	JMP	LAI441
	NL0002
	ISZ	LAI4
	ISZ	LAI4
	ISZ	LAI4
	TAD I	LAI4
	JMS I	TYPERR
	CLA
	TAD	LAI41+2
	JMS I	TYPSRB
LAI46,	ISZ	LAI4
	JMS I	HLTLP
	JMP I	LAI4
	ISZ	LAI4
	JMP I	LAI4
LAI44,	ISZ	LAI42+2
	JMP	LAI45
	ISZ	LAI4
	ISZ	LAI4
	ISZ	LAI4
	TAD I	LAI4
	JMS I	TYPERR
	CLA
	TAD	LAI42+2
	SZA CLA
	JMS I	TYPSTI
	JMS I	TYPSRI
	JMP	LAI46
LAI47,	TAD	UNIT
	CIA
	SNA
	JMP	.+10
	DCA	LAI42+4
	TAD	LAI42+3
	RTR
	RAR
	ISZ	LAI42+4
	JMP	.-3
	DCA	LAI42+3
	NL0002
	AND	LAI42+3
	CIA
	TAD	I	LAI4
	SNA CLA
	JMP	.+3
	NL0003
	JMP	LAI44+2
	ISZ	LAI4
	NL0004
	AND	LAI42+3
	CIA
	TAD I	LAI4
	SNA CLA
	JMP	.+6
	TAD	TYPDSK
	SZA CLA
	JMP	.+3
	NL0004
	JMP	LAI44+3
	ISZ	LAI4
	JMS I	RDSTAT
	RAR
	CLA RAL
	CIA
	TAD I	LAI4
	ISZ	LAI4
	SNA CLA
	JMP	LAI46
	NL0004
	IAC
	JMP	LAI44+5
LAI441,	TAD	.+5
	IAC
	SZA
	JMP	.-2
	JMP	LAI44
	7760
LAI41,	0
	0
	0
LAI42,	DRSS
	7774
	0
	0
	0
	0
	
*3200
/SPECIAL CHECK ROUTINE FOR FORMAT CHECKS
FRM5,	0
	CLA
	DCA	SECTOR
	JMS I	LDSEC
	JMS I	CLSTAT
	CLA
	TAD I	FRM5
	JMS I	LDCON
	ISZ 	FRM5
	CLA
	TAD I	FRM5
	DCA	FRM51
	ISZ	FRM5
	TAD I	FRM5
	CIA
	DCA	FRM51+1
	JMS I	FRM51
	ISZ	FRM5
	TAD I	FRM5
	ISZ	FRM5
	AND I	FRM5
	DCA	FRM51
	JMS I	SKPDON
	JMP	FRM52
	ISZ	FRM51+1
	JMP	.-3
	ISZ	FRM5
FRM53,	TAD I	FRM5
	JMS I	TYPERR
	TAD 	FRM51
	JMS I	TYPSTB
	ISZ	FRM5
	JMS I	HLTLP
	JMP I	FRM5
	ISZ	FRM5
	JMP I	FRM5
FRM52,	JMS I	RDSTAT
	AND I	FRM5
	CIA
	TAD	FRM51
	ISZ	FRM5
	SNA CLA
	JMP	FRM52-5
	IAC
	JMP	FRM53
/ROUTINE TO CHECK FOR LAI ERROR GENERATION
LAI5,	0
	CLA CLL
	TAD I	LAI5
	DCA	LAI51	/READ/WRITE
	ISZ	LAI5
	TAD I	LAI5
	CIA
	DCA	LAI51+2	/TIMEOUT
	ISZ	LAI5
	TAD I	LAI5
	CMA
	SZL
	IAC
	DCA	LAI51+1	/TIMEOUT
	ISZ	LAI5
	JMS I	LDCON
	JMS I	CLSTAT
	CLA IAC
	DCA	WCCA
	JMS I	IWCCA
	JMS I	LDSEC
	JMS I	LAI51
	JMS I	SKPDON
	JMP	LAI52
	ISZ	LAI51+2
	JMP	.-3
	ISZ	LAI51+1
	JMP	.-5
	CLA
LAI53,	TAD I	LAI5	/ERRNO
	ISZ	LAI5
	JMS I	TYPERR
	JMS I	TYPSTI
	JMS I	TYPSRI
	JMS I	HLTLP
	JMP I	LAI5
	ISZ	LAI5
	JMP I	LAI5
LAI52,	JMS I	RDSTAT
	TAD	LAI51+3	/3577 -4201
	SNA CLA
	JMP	.+3
	CLA IAC		/ERRNO+1
	JMP	LAI53
	TAD	UNIT
	CMA
	DCA	LAI51
	JMS I	RDSSR
	RTR
	RAR
	ISZ	LAI51
	JMP	.-3
	SZL CLA
	JMP	.+6
	TAD	TYPDSK
	SZA CLA
	JMP	.+3
	NL0002		/ERRNO+2
	JMP	LAI53
	ISZ	LAI5
	JMP	LAI52-4
EXIWC,	0		/INITIATE WCCA
	CLA
	TAD	EXIWC1
	TAD	ADDRES
	DCA	.+2
	TAD	EXIWC1+1
	0
	CLA
	JMP I	EXIWC
EXOLS,	0		/LOAD SAR WITH CONTENTS OF AC, UNIT, AND INITIATE OVERLAP SEEK
	DCA	EXOLS1
	TAD	EXOLS1+1
	TAD	ADDRES
	DCA	.+5
	TAD	UNIT
	CLL RTR
	RAR
	TAD	EXOLS1
	0
	CLA
	JMP I	EXOLS
	
*3400
LAI6,	0		/SUBTESTS 4.8, 4.9
	TAD	ADDRES
	TAD	LAI61
	DCA	LAI63
	JMS I	LAI61+1	/LAI5 TEST 4.8
	EXLTAR
	400
	0
	45		/ERRNO 45..
	JMP	.-5
	JMS	LAI62
	JMS I	LAI61+1	/LAI5 TEST 4.9
	EXLTAW
	1000
	0
	50		/ERRNO 50..
	JMP	.-5
	JMS	LAI62
	JMP I	LAI6
LAI61,	DSDE
	LAI5
	207		/ERRNO 207
LAI62,	0
	JMS I	RDSTAT
	SMA CLA
	JMP I	LAI62
LAI63,	0
	JMP	.+2
	JMP I	LAI62
	TAD	LAI61+2	/ERRNO 207
	JMS I	TYPERR
	JMS I	TYPSTI
	JMS I	HLTLP
	JMP	LAI63
	JMP I	LAI62
/REGISTER TRANSFER TEST, CALLING SEQUENC-AC=VALUE
/WD1=LDIOT,WD2=RDIOT,WD3=ERRMASK,WD4=TYPOUT,WD5=ERRNO
REGTRT,	0
	DCA	REGT1
	TAD	REGT1
	DCA	TRACK
	TAD	TRACK
	DCA	SECTOR
	JMS	REGT2	/EXEC LDIOT
	JMS	REGT2	/EXEC RDIOT
	AND I	REGTRT
	DCA	REGT1+1
	TAD	REGT1
	AND I	REGTRT
	ISZ	REGTRT
	DCA	REGT1+2
	TAD	REGT1+2
	CIA
	TAD	REGT1+1
	SNA CLA		/READ = VALUE?
	JMP	REGT3
	TAD I	REGTRT
	DCA	REGT1+1	/TYPOUT ERROR ROUTINE
	ISZ	REGTRT
	TAD I	REGTRT
	JMS I	TYPERR	/ERROR NUMBER
	CLA
	TAD	REGT1+2	/TYPE VALUE
	JMS I	REGT1+1
	JMP	.+2		/ERROR RETURN
REGT3,	ISZ	REGTRT	/OK , GO BACK
	ISZ	REGTRT
	JMS I	HLTLP
	JMP	.+2
	ISZ	REGTRT
	CLA
	TAD	REGT1
	JMP I	REGTRT
REGT1,	0
	0
	0
	0
REGT2,	0
	DCA	REGT1+3
	TAD I	REGTRT
	ISZ	REGTRT
	TAD	ADDRES
	DCA	.+3
	TAD	REGT1
	TAD	REGT1+3
	0
	JMP I	REGT2
/INTERRUPT TEST
INTST,	0
	CLA
	TAD	2
	DCA	INT1
	TAD	INT1+1
	DCA	2
	TAD	INT1+2
	JMS I	LDCON
	NL0003
	JMS I	TYPERR
	JMS I	TYPCNI
INT2,	CLA
	TAD	INT1
	DCA	2
	JMS I	LDCON
	ION
	JMS I	HLTLP
	JMP	INTST+1
	JMP I	INTST
INT1,	0
	INT2
	101
EXRDSS,	0		/READ SSR
	CLA
	TAD	ADDRES
	TAD	.+4
	DCA	.+1
	0
	JMP I	EXRDSS
	DRSS
EXLSEC,	0		/LOAD SCR WITH SECTOR
	CLA
	TAD	ADDRES
	TAD	.+6
	DCA	.+2
	TAD	SECTOR
	0
	CLA
	JMP I	EXLSEC
	DLSR
	
*3600
/PARAMETER INPUT ROUTINE
PARAM,	0
	CLA
	KCC
	DCA	ERRFLG
	TAD	PAR11+2
	DCA	ERRFL1
	IAC
	DCA	PASS1
	TAD	PAR1	/-4
	DCA	PAR1+1
	TAD	PAR1+2	/DSKDAT AREA
	DCA	PAR2
PAR3,	JMS I	PAR1+3	/UNPAR
	JMP	PAR21
	JMS I	PEXEC2	/MOVE FROM TO
	TYPDSK-1
PAR2,	0			/POINTS TO AREA OF UNIT
	13
	TAD	PAR2
	TAD	PAR2+1	/POINT TO NEW UNIT
	DCA	PAR2
	ISZ	PAR1+1
	JMP	PAR3	/NEXT UNIT
PAR21,	TAD	PAR1+1
	CIA
	TAD	PAR1
	SZA
	JMP	.+3
	JMS I	TYPQQ
	JMP	PARAM+1
	DCA	PORTS
PAR22,	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /ENTER UNIT ADDRESS/
	JMS I	TYPLAS
	TAD	SWR
	AND	PAR11	/ONLY 64 AND PAIR
	SNA CLA
	JMP	.+3
	JMS I	TYPQQ
	JMP	PAR22
	TAD	SWR
	CLL RAL
	RTL
	DCA	ADDRES	/PUT INTO DEVICE ADDRESS FOR MERGE
	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /ENTER FORMAT LOOP CONTROL/
	JMS I	TYPLAS
	TAD	SWR
	SZA CLA
	IAC
	DCA	LPFORM	/SET FORMAT SWITCH
	JMS I	PAR11+1	/MESSAGE SET FORMAT
	JMS I	TYPTEX
	TEXT /, ERROR AND TYPE OUT CONTROLS/
	JMS I	TYPLAS	/READ SWITCH ONE LAST TIME AND GO
	JMS I	CRLF
	ION
	JMP I	PARAM
PAR1,	7774
	0
	DSKDAT-1
	UNPAR
PAR11,	7701
	EXTNA1
	7771
EXLCON,	0		/LOAD CNR WITH CONTENTS OF AC, UNIT
	DCA	LDCON1
	TAD	LDCON1+1
	TAD	ADDRES
	DCA	.+5
	TAD	UNIT
	CLL RTL
	RAL
	TAD	LDCON1
	0
	CLA
	JMP I	EXLCON
LDCON1,	0
	DLCR
EXRDSC,	0
	CLA
	TAD	ADDRES
	TAD	.+4
	DCA	.+1
	0
	JMP I	EXRDSC
	DSRR
	
*4000
/ENTER PARAMETERS FOR A DISK PORT
UNPAR,	0
	DCA	DAISY
	DCA	DAIVAL
	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /ENTER DISK TEST INFORMATION/
	JMS I	TYPLAS
	TAD	SWR
	SNA
	JMP I	UNPAR	/SWITCH = 0 END PORTS
	AND	UNPAR2
	DCA	UNIT	/BITS 10,11 OF UNIT
	TAD	SWR
	AND	UNPAR2+3	/BIT 8 
	SNA CLA
	JMP	UNPAR3
	TAD	UNPAR2+2	/1457=408 CYL
	SKP
UNPAR3,	TAD	UNPAR4	/627 =204 CYL
	DCA	MAXRTR
	TAD	SWR
	AND	UNPAR2+4	/BIT 9
	SNA CLA CLL
	JMP	UNPAR5
	DCA	TYPDSK	/MOVING HEAD DISK
	TAD	SWR
	AND	UNPAR2+1	/BITS 6-7
	SNA
	JMP	UNPAR5+6	/NOT FIXED AND NOT REMOVABLE ERROR
	RTR
	RTR
	RAR
	SNA CLA		/REMOVABLE?
	JMP	UNPR51
	TAD	UNPAR4+1
	SNL			/FIXED DISK IN LINK
	DCA	DAIVAL	/2000 IF REMOVABLE
	DCA	DAISY	/2000 IF FIXED
	JMP	UNPR51
UNPAR5,	CMA
	DCA	TYPDSK	/FIXED HEAD DISK
	TAD	SWR
	AND	UNPAR4+2	/3700
	SZA
	JMP	.+3
	JMS I	TYPQQ
	JMP	UNPAR+1
	TAD	UNPAR4+3	/5700 16 MAX
	SMA CLA
	JMP	.-4		/MORE THAN 16 ERROR
	TAD	SWR
	AND	UNPAR4+2
	CLL RTR
	RAR
	DCA	MAXRTR	/8 TO 128 TRACKS
	CMA
	TAD	MAXRTR
	DCA	MAXRTR	/-1 FOR MAX TRACKS
UNPR51,	JMS I	UNPAR4+4	/UNPAR6
	MAXRSC
	DCA	FULL	/FULL DISK = 0
	JMS I	PEXEC2	/MOVE TRACKS AND SECTORS
	MAXRSC-1
	MAXTSC-1		/TO TSC
	3
	TAD	SWR		/TEST NUMBER OF CYLS?
	SPA CLA
	JMS I	UNPAR4+5	/YES GO TO UNPAR7
	ISZ	UNPAR
	JMP I	UNPAR
UNPAR2,	3
	60
	1457
	10
	4
UNPAR4,	627
	2000
	3700
	5700
	UNPAR6
	UNPAR7
EXTON,	0
	JMS I	TYPTEX
	TEXT /ON /
	JMP I	EXTON
EXCL1,	0		/FILL LAST WCCA-2 WORDS OF BUF1 WITH 0'S
	CLA		/FOLLOWED BY ONE 6666
	TAD	EXCL11
	DCA	12
	TAD	WCCA
	TAD	EXCL11+4
	CIA
	DCA	EXCL11+1	/WCCA-2
	TAD	EXCL11+2
	DCA I	12		/ZEROS
	ISZ	EXCL11+1
	JMP	.-3
	TAD	EXCL11+3
	DCA I	12		/6666
	JMP I	EXCL1
EXCL11,	BUF1+1		/BUF1-1 + 2
	0
	0
	6666
	7776
EXLAS,	0		/READ SWITCHES, STORE IN SWR
	HLT
	LAS
	DCA	SWR
	TAD	SWR
	JMS I	TYPWD	/AND PRINT
	JMP I	EXLAS
	
*4200
UNPAR6,	0
	TAD	NUMSEC
	CIA
	DCA	UNPR61	/-4
	TAD I	UNPAR6	/MAXRSC OR MAXTSC
	DCA	UNPR61+1
	TAD	UNPR61+1
	DCA	UNPR61+2
	ISZ	UNPAR6
	ISZ	UNPR61+2
	TAD	UNPR61+2
	DCA	UNPR61+3
	ISZ	UNPR61+3
	DCA I	UNPR61+1
	TAD I	UNPR61+3	/GET MAX TRACKS MAXRTR MAXTTR
	DCA I	UNPR61+2
	IAC			/MAX HAD ONE LESS
	TAD I	UNPR61+2	/LOOP HERE
	CLL RAL
	DCA I	UNPR61+2	/LOW ORDER
	TAD I	UNPR61+1
	RAL
	DCA I	UNPR61+1	/HIGH ORDER
	ISZ	UNPR61	/MULTIPLY * 16
	JMP	.-7
	JMP I	UNPAR6
UNPR61,	0
	0			/MAXRSC OR MAXTSC
	0			/MAXRSC OR MAXTSC + 1
	0			/MAXRTR OR MAXTTR
	0
UNPAR7,	0
	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /ENTER MAX CYLINDER/
	JMS I	TYPLAS
	TAD	TYPDSK
	SZA CLA
	JMP	UNPR72
	TAD	MAXRTR
	RAR
	CMA
	DCA	UNPR61+4
	TAD	SWR
	SNA
	JMP	UNPR73
	TAD	UNPR61+4
	SPA SNA CLA
	JMP	.+3
UNPR73,	JMS I	TYPQQ
	JMP	UNPAR7+1
	TAD	SWR
	CLL RAL
	TAD	M1
UNPR74,	DCA	MAXTTR	/GETS SPECIFIED MAX TRACKS
	JMS	UNPAR6
	MAXTSC
	CMA
	DCA	FULL	/SIGNAL PARTIAL TRACK TEST
	JMP I	UNPAR7
UNPR72,	OSR
	CIA
	TAD	MAXRTR
	SPA CLA
	JMP	UNPR73	/NOT BIGGER THAN MAX
	OSR
	JMP	UNPR74
EXTDIS,	0
	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /DISABLE/
	JMS 	FRSW
	JMS I	CRLF
	HLT
	JMP I	EXTDIS
EXTENA,	0
	JMS	EXTNA1
	JMS I	CRLF
	HLT
	JMP I	EXTENA
EXTNA1,	0
	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /ENABLE/
	JMS	FRSW
	JMP I	EXTNA1
FRSW,	0
	JMS I	TYPTEX
	TEXT / FORMAT SWITCH/
	JMP I	FRSW
EXRDST,	0			/READ STATUS REGISTER
	CLA
	TAD	ADDRES
	TAD	.+4
	DCA	.+1
	0
	JMP I	EXRDST
	DRSR
EXRDTR,	0			/READ TRACK ADDRESS
	CLA
	TAD	ADDRES
	TAD	.+4
	DCA	.+1
	0
	JMP I	EXRDTR
	DRTR
	
*4400
EXTEX,	0
	CLA
	TAD I	EXTEX
	AND	EXTEX1
	DCA	EXTEX1+1
	TAD I	EXTEX
	ISZ	EXTEX
	RTR
	RTR
	RTR
	AND	EXTEX1
	JMS	CHAROT
	JMP I	EXTEX
	TAD	EXTEX1+1
	JMS	CHAROT
	JMP I	EXTEX
	JMP	EXTEX+1
EXTEX1,	77
	0
	0
	7745
	100
	200
CHAROT,	0
	SNA
	JMP I	CHAROT
	DCA	EXTEX1+2
	TAD	EXTEX1+2
	TAD	EXTEX1+3
	SPA CLA
	TAD	EXTEX1+4
	TAD	EXTEX1+5
	TAD	EXTEX1+2
	JMS	CHAROD
	ISZ	CHAROT
	JMP I	CHAROT
CHAROD,	0
	IOF
	TLS
	TSF
	JMP	.-1
	TCF
	CLA			/WVDMARK JMS I .+1
	ION			/IONRET
	JMP I	CHAROD
EXCRLF,	0
	CLA
	TAD	EXCRL1
	JMS	CHAROD
	TAD	EXCRL1+1
	JMS	CHAROD
	TAD	EXCRL1
	JMS	CHAROD
	JMP I	EXCRLF
EXCRL1,	215
	212
	277
EXTQQ,	0
	CLA
	TAD	EXCRL1+2
	JMS	CHAROD
	TAD	EXCRL1+2
	JMS	CHAROD
	JMP I	EXTQQ
EXTADD,	0
	JMS I	TYPCHK
	JMP I	EXTADD
	JMS I	TYPSTI	/STR IS
	JMS I	TYPTAB	/TAR SB IS
	JMS I	TYPSCB	/SCR SB IS
	JMP I	EXTADD
EXSCAD,	0		/SAVE TRACK AND SECTOR
	DCA	EXSCA1	/ADD BLOCKS TO SECTOR
	TAD	SECTOR	/CONVERT TO TRACK AND SECTOR
	DCA	SECTOR+1
	TAD	TRACK
	DCA	TRACK+1
	TAD	NUMSEC
	CIA
	DCA	EXSCA1+1
	CMA
	CLL RAL
	ISZ	EXSCA1+1
	JMP	.-2
	DCA	EXSCA1+1
	TAD	BLOCKS
	TAD	SECTOR
	DCA	SECTOR
	TAD	SECTOR
	TAD	EXSCA1+1
	SZL
	JMP	.+3
	DCA	SECTOR
	ISZ	TRACK
	CLA CLL
	TAD	EXSCA1
	JMP I	EXSCAD
EXSCA1,	0
	0
EXHLTP,	0		/HALT OR CONTINUE ROUTINE
	CLA		/FIRST RETURN REPEAT, SECOND CONTINUE
	TAD	ERRFLG
	SNA CLA
	JMP	EXHLT1
	DCA	ERRFLG
	ISZ	ERRFL1	/DONE 7 TIMES?
	JMP I	EXHLTP
	CMA
	DCA	ERRFL1
	OSR
	RTR		/HALT ON ERROR?
	SZL CLA
	JMP	.+3
	TAD	ERRNUM	/YES
	HLT
	CLA OSR		/COME HERE FROM JMP .-12 JMP .-3
	RAR		/CONTINUE WITH TEST?
	SZL CLA
	JMP I	EXHLTP	/REPEAT CURRENT TEST
	ISZ	EXHLTP	/CONTINUE
	TAD	EXHLT1+3
	DCA	ERRFL1
	JMP I	EXHLTP
EXHLT1,	TAD	.+3
	DCA	ERRFL1
	JMP	.-12
	7771
	
*4600
EXTERR,	0		/TYPE ERROR NUMBER
	DCA	ERRNUM
	CMA
	DCA	ERRFLG
	JMS I	TYPCHK
	JMP I	EXTERR
	JMS I	CRLF
	JMS I	TYPTEX
	TEXT /ERROR/
	TAD	ERRNUM
	JMS I	TYPWD
	TAD	ERRNUM
	TAD	EXTER1
	SPA CLA
	JMP	EXTER2
	TAD	ERRNUM
	TAD	EXTER1+1
	SMA CLA
	JMP	EXTER2
	JMS I	TYPON
	JMS I	TYPUN
EXTER2,	JMS I	CRLF
	JMP I	EXTERR
EXTER1,	7773
	7571
	4060
EXWR,	0		/INITIATE WCCA, LOAD SCR WITH SECTOR, INITIATE WRITE
	JMS I	IWCCA
	JMS I	LDSEC
	JMS I	LDTAWR
	JMP I EXWR
EXRD,	0		/INITIATE WCCA, LOAD SCR WITH SECTOR, INITIATE READ
	JMS I	IWCCA
	JMS I	LDSEC
	JMS I	LDTARD
	JMP I	EXRD
EXTDAT,	0
	JMS I	TYPCHK
	JMP I	EXTDAT
	JMS I	TYPTEX
	TEXT /WORD/
	TAD	EXTDA1
	TAD	11
	JMS I	TYPWD
	JMS I	TYPTEX
	TEXT /DATA /
	JMS I	TYPSB
	TAD	10
	DCA	EXTDA1+1
	TAD I	EXTDA1+1
	JMS I	TYPWD
	JMS I	TYPIS
	TAD	11
	DCA	EXTDA1+1
	TAD I	EXTDA1+1
	JMS I	TYPWD
	JMS I	CRLF
	JMP I	EXTDAT
EXTDA1,	-BUF2
	0
EXCLST,	0			/CLEAR STR
	CLA
	TAD	ADDRES
	TAD	.+4
	DCA	.+1
	0
	JMP I	EXCLST
	DCSR
	0
EXSKDN,	0			/SKIP DONE WITH TIMEOUT
	CLA
	TAD	ADDRES
	TAD	SKPDN1
	DCA	.+3
	TAD	SKPDN1+1
	DCA	SKPDN1+2	/INT COUNTER -180
	0
	JMP	.+2
	JMP I	EXSKDN
	ISZ	SKPDN1+2
	JMP	.-4
	ISZ	EXSKDN	/TIMEOUT EXIT 1.11 MSEC
	JMP I	EXSKDN
SKPDN1,	DSDD
	7514
	0
EXTUN,	0			/TYPE UNIT
	TAD	UNIT
	TAD	EXTER1+2
	DCA	.+4
	JMS I	TYPTEX	/UNIT X
	TEXT /UNIT/
	0
	TAD	TYPDSK
	SZA CLA
	JMP I	EXTUN
	TAD	DAIVAL
	SNA CLA
	JMP	EXTER4
	JMS I	TYPTEX	/-REMOVABLE
	TEXT /-REMOVABLE/
	JMP I	EXTUN
EXTER4,	JMS I	TYPTEX
	TEXT /-FIXED/
	JMP I	EXTUN
	
*5000
EXTSTB,	0			/STR SB IS, CNR IS
	DCA	STOR1
	DCA	STOR1+1
	JMS I	TYPCHK
	JMP I	EXTSTB
	JMS I	TYPTEX
	TEXT /STR /
	TAD	STOR1+1
	SZA CLA
	JMP	.+4
	JMS I	TYPSB
	TAD	STOR1
	JMS I	TYPWD
	JMS I	TYPIS
	JMS I	RDSTAT
	JMS I	TYPWD
	JMS I	CRLF
	JMS I	TYPCNI
	JMP I	EXTSTB
EXTSTI,	0			/STR IS
	CLA
	TAD	EXTSTI
	DCA	EXTSTB
	CMA
	JMP	EXTSTB+2
STOR1,	0
	0
EXTSRB,	0			/SSR SB IS
	DCA	STOR1
	DCA	STOR1+1
	JMS I	TYPCHK
	JMP I	EXTSRB
	JMS I	TYPTEX
	TEXT /SSR /
	TAD	STOR1+1
	SZA CLA
	JMP	.+4
	JMS I	TYPSB
	TAD	STOR1
	JMS I	TYPWD
	JMS I	TYPIS
	JMS I	RDSSR
	JMS I	TYPWD
	JMS I	CRLF
	JMP I	EXTSRB
EXTSRI,	0			/SSR IS
	CLA
	TAD	EXTSRI
	DCA	EXTSRB
	CMA
	JMP	EXTSRB+2
EXTCNB,	0			/CNR SB IS
	DCA	STOR1
	DCA	STOR1+1
	JMS I	TYPCHK
	JMP I	EXTCNB
	JMS I	TYPTEX
	TEXT /CNR /
	TAD	STOR1+1
	SZA CLA
	JMP	.+4
	JMS I	TYPSB
	TAD	STOR1
	JMS I	TYPWD
	JMS I	TYPIS
	TAD	ADDRES
	TAD	.+6
	DCA	.+1
	0
	JMS I	TYPWD
	JMS I	CRLF
	JMP I	EXTCNB
	DRCR
EXTCNI,	0			/CNR IS
	CLA
	TAD	EXTCNI
	DCA	EXTCNB
	CMA
	JMP	EXTCNB+2
EXTAB,	0			/TAR SB IS
	JMS I	TYPCHK
	JMP I	EXTAB
	JMS I	TYPTEX
	TEXT /TAR /
	JMS I	TYPSB
	TAD	TRACK
	TAD	DAIVAL
	JMS I	TYPWD
	JMS I	TYPIS
	JMS I	RDTRAD
	JMS I	TYPWD
	JMS I	CRLF
	JMP I	EXTAB
EXTSCB,	0			/SCR SB IS
	JMS I	TYPCHK
	JMP I	EXTSCB
	JMS I	TYPTEX
	TEXT /SCR /
	JMS I	TYPSB
	TAD	SECTOR
	JMS I	TYPWD
	JMS I	TYPIS
	JMS I	RDSEC
	JMS I	TYPWD
	JMS I	CRLF
	JMP I	EXTSCB
EXTSB,	0
	JMS I	TYPTEX
	TEXT /SB/
	JMP I	EXTSB
EXTIS,	0
	JMS I	TYPTEX
	TEXT /IS/
	JMP I	EXTIS
	
*5200
EXTCHK,	0
	LAS
	RTR
	RAR
	SNL CLA
	ISZ	EXTCHK
	JMP I	EXTCHK
EXTWD,	0
	DCA	EXTWD1
	TAD	EXTWD1
	AND	EXTWD1+1
	CLL RTL
	RTL
	TAD	EXTWD1+2
	DCA	EXTWD2
	TAD	EXTWD1
	AND	EXTWD3
	DCA	EXTWD3+1
	TAD	EXTWD1
	RTR
	RAR
	AND	EXTWD3+2
	TAD	EXTWD3+1
	TAD	EXTWD1+3
	DCA	EXTWD2+1
	TAD	EXTWD1
	AND	EXTWD3+2
	CLL RTL
	RTL
	RTL
	TAD	EXTWD3+3
	DCA	EXTWD2+2
	JMS I	TYPTEX
EXTWD2,	0
	0
	0
	0
	JMP I	EXTWD
EXTWD1,	0
	7000
	4060
	6060
EXTWD3,	700
	0
	7
	6040
ILTRP,	0
	CAF
	JMS I	TYPCHK
	JMP	ILTR1
	JMS I	TYPTEX
	TEXT /ILLEGAL TRAP TO ADDRESS 0000 FROM ADDRESS/
	TAD	0
	JMS I	TYPWD
	JMS I	CRLF
ILTR1,	CMA CLA
	DCA	ERRFLG
	DCA	ERRNUM
	JMS I	HLTLP
	NOP
	ION			/WVDMARK JMP I .+1 INTRET
	JMP I	0		/INTRET
RDWX32,	0
	CLA
	TAD	SECTOR+1
	DCA	SECTOR
	TAD	TRACK+1
	DCA	TRACK
	JMP I	RDWX32
LAI7,	0
	TAD	LAI71
	IAC
	SZA
	JMP	.-2
	JMS I	RDSSR
	AND I	LAI71+1
	JMP I	LAI7
LAI71,	7760
	LAI41
EXCL2,	0			/FILLS BUF2 WITH WCCA 3333'S
	CLA			/FOLLOWED BY ONE 6666
	TAD	EXCL21
	DCA	12
	TAD	WCCA
	CIA
	DCA	EXCL21+1
	TAD	EXCL21+2
	DCA I	12
	ISZ	EXCL21+1
	JMP	.-3
	TAD	EXCL21+3
	DCA I	12
	JMP I	EXCL2
EXCL21,	BUF2-1
	0
	3333
	6666
WAIT,	0
	CLA
	TAD	CNT
	DCA	TEMP1
	IAC
	SZA
	JMP	.-2
	ISZ	TEMP1
	JMP	.-4
	JMS I	RDSSR
	JMP I	WAIT
	
	$