File: RKS8ES.PA of Disk: Disks/PDP8-Net/multos8
(Source file text) 


/MAINDEC-X8-DHRK*-*-L  "DEC/X8"  RKS8ES

/RKS8E DISK SYSTEM MODULE FOR DEC/X8

/COPYRIGHT 1972, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.

/THIS MODULE OPERATIONAL ON PDP-8,8/I,8/L,8/E,8/M AND PDP-12 WITH AN RKS8E DISK CONTROL.

	/PRG:


	/BUILDER INSTRUCTIOUS:

	/1.PRIORITY:  NOT CRITICAL, BUT SHOULD BE ASSIGNED NEAR LEVEL 0
	/TO PROVIDE MAXIMUM DATA BREAK INTERACTION.

	/2.JOB SLOT:  4 PAGES REQUIRED, SLOT JX1 OR JX2.


	/INITIALIZER INSTRUCTIONS:


/CODE	DEFINED			RESPONSE				PRESET

/A:	LOWEST DISK TO USE	0-7					0
/B:	HIGHEST DISKTO USE	0-7					0
/C:	TYPE OF DATA		0=RANDOM; 1  NNNN=CONSTANT		RANDOM
/D:	ADDRESSING		0=RANDOM; 1  NNNN  NNNN=CONSTANT*	RANDOM
/				*NOTE: THE MAX ADDRESS ACCEPTED BY THIS
/				MODULE IS 010DDD  4536 WHERE (DDD) IS
/				THE DISK NUMBER.
/E:	LENGTH OF TRANSFER	0=RANDOM; 1  NNNN=CONSTANT		RANDOM
/				WHERE NNNN MAY BE1 TO 1000.
/F:	BUFFER ASSIGNMENT	0=RANDOM; 1  NNNN=CONSTANT		RANDOM



/SPECIAL USER MODIFICATIONS VIA RELATIVE "^O" FACILITY.

	/1."REPORT" MAY BECHANGED FROM 3777 TO XXXX WHERE ANY
	/  CLEAR BITS INHIBIT ANERROR REPORT FOR THAT CONDITION.

	/2."PARITY" MAY BE CHANGED FROM3767 TO 3777 TO INHIBIT
	/  DATA CHECKINGAFTER A CRC ERROR.


/REPORT SYMBOL DEFINITIONS:

	/1.REFER TO MODULE TABLE IN THIS LISTING FOR DESCRIPTION
	/  OF CNTR, SA:-SG:, AND DA:-DC:

	/2."CODE" DEFINITIONS:

		/CODE	DEFINED
		/0002	READ
		/0004	WRITE
		/001X	FALSE DATA ERROR (BAD CHECKSUM BUT
		/	DATA LOOKED GOOD ON WORD BY WORD CHECK.)
		/0012	THIS TYPE OF ERROR MAY BE REPORTED AFTER
		/	A CRC ERROR AND INDICATES THE FOLLOWING:
		/	1. THE CRC ERROR STOPPED THE TRANSFER PRIOR TO
		/	COMPLETION AND THEREBY CAUSED A SOFTWARE
		/	SUMCHECK ERROR; 2. THE DATA THAT WAS READ IN
		/	WAS GOOD.



	/RKS8E STANDARDS

	/DEVICE CODE: 74, 75

/RKS8E IOT DEFINITIONS

DSKP=6741	/PC+1->PC IF TD OR ER
DCLR=6742	/AC=0000	/0->AC; 0->SR
		/AC=0001	/0->AC; 0->CONTROL
		/AC=0002	/0->AC; RECALIBRATE SELECTED DRIVE
DLAG=6743	/AC->DAR; GO; 0->AC
DLCA=6744	/AC->CA; 0->AC
DRST=6745	/SR->AC
DLDC=6746	/AC->CM; 0->AC
DMAN=6747	/AC BIT		/FUNCTION
		/0		/ENTER MAINTENANCE
		/1		/ENABLE SHIFT TO LOWER BUFFER
		/2		/NOT USED IN THIS MODULE
		/3		/SHIFT CMTO LOWER BUFFER
		/4		/SHIFT SUR/SEC TO LOWER BUFFER
		/5		/NOT USED IN THIS MODULE
		/6		/NOT USED IN THIS MODULE
		/7		/0->AC; LOWER BUFFER TO AC
		/8-11		/NOT USED IN THIS MODLULE
DCWC=6752
DLWC=6753
DRWC=6755


/MODULE TABLE


	*200

JOB,	0				/JOB NUMBER
TEXT1,	TEXT	"RKS8ES"		/DEVICE NAME
	TEXT	"DHRK*-*"		/MODULE DESIGNATOR
HOMEDF,	0				/DF=IF
	HLT/CDF
	JMP I	HOMEDF
INTACK,	CIF	00			/ACKNOWLEDGE INTERRUPT.
	JMS I	IHRETP
	-1				/PRIORITY
KILL,	-1				/COMMAND TO KILL JOB.
KILLED,	-1				/MODULE SETS TO -1 WHEN JOB KILLED.
CNTR,	0				/NUMBER OF EXERCISER LOOP PASSES.
ERROR,	0				/ERROR CALL.
	DCA	.+11
	LAS
	AND Z	K4
	SZA
	DCA	KILL
	JMS	HOMEDF
	IOF
	CIF	00
	JMS I	ERRP
	0
	JMP I	ERROR
CODE,	0				/ERROR CODE.

	-7			/STATUS WORD TALLY
ERRSA,	0			/STATUS REGISTER
ERRSB,	0			/BUFFER DESIGNATOR
ERRSC,	0			/INITIAL SOFTWAREWORDCOUNT
ERRSD,	0			/FINAL SOFTWARE WORDCOUNT
ERRSE,	0			/INITIAL CA
ERRSF,	0			/INITIAL CMAND TRK0
ERRSG,	0			/INITIAL DAR (TRK/SUR/SEC)
	-3				/DATA ERROR ENTRY TALLY.
ERRDA,	0				/BUFFER ADDRESS
ERRDB,	0				/GOOD DATA
ERRDC,	0				/BAD DATA

/END OF MODULE TABLE

/INTERRUPT SERVICE - IMMEDIATE ONLY

INT,	0			/MONITOR JMS HERE
	ISZ	RENTRY		/EXPECTED INTERRUPT?
	JMP	INT1		/NO
DC74A,	DRST			/READ STATUS
	JMS	HOMEDF		/NO. DF=IF
	DCA	ERRSA		/SAVE STATUS
DC75B,	DRWC			/READ THEWORD COUNT
	DCA	ERRSD		/SAVEIT INERRSD
DC74B,	DCLR			/CLEAR STATUS
	TAD	(DEFSRV		/SET DEFERREDSERVICE
	JMP	INTACK		/ACKNOWLEDGE INTERRUPT
INT1,	RDF			/UNEXPECTED INTERRUPT.
	TAD Z	KCIFDF
	DCA	.+2
	DCA	RENTRY
	HLT
	JMP I	INT		/EXIT TO MONITOR CHAIN
RENTRY,	0
SECDAR=ERRDA
AGAIN=ERRDC


/ROUTINE TO SET UP RKS8E TO READ OR WRITE DATA

	/CALL MUST BE:
/1.	SET UP ERRSB,ERRSC,ERRSE,AT LEAST BITS 5,9-11 OF ERRSF,ERRSG
/2.	DF=IF
/3.	AC=2 FOR READ; AC=4 FOR WRITE
/4.	JMS I (GO
/5.	CM FOR READ OR WRITE DATA WITH INT ENA
/6.	ERROR RETURNHERE
/7.	GOOD RETURNHERE

GO,	0
	DCA	CODE		/SAVE ERROR CODE INCASE
	TAD	KILL		/KILLCHECK
	SNA
	JMP	.+4
	DCA	KILLED
	JMS I	(RELEAS
	SERVEX
	TAD	ERRSF		/KEEP ONLY DISK AND TRK0 IN INIT CM
	AND	K107
	DCA	ERRSF
	TAD	ERRSC		/MAKE FINAL WC=INIT WC
	DCA	ERRSD
	TAD	ERRSF		/ADD TRK0 AND DISK
	TAD I	GO		/ADD READ OR WRITE DATA+ENA
	ISZ	GO		/MOVE TO BAD EXIT
	DCA	ERRSF
	TAD	ERRSB		/ADD FIELD BITS
	AND Z	K70
	TAD	ERRSF
	DCA	ERRSF		/SAVE GOOD INIT CM
	CLA CMA			/ALLOW ONE INTERRUPT
	IOF
	DCA	RENTRY
	TAD	ERRSC		/LOAD WC
DC75A,	DLWC
	TAD	ERRSE		/LOAD CA
DC74F,	DLCA
	TAD	ERRSF		/LOAD CMAND CLEAR STATUS
DC74G,	DLDC
	TAD	ERRSG		/LOADDAR AND GO.
DC74H,	DLAG
	SERVEX			/OUT
GORET,	JMP I	GO		/OUT
DATCON,	0
	TAD	ERRDB
	JMP I	DATCON
/END OF PAGE
*.

	*400


/RANDOM NUMBER GENERATOR

RANDOM,	0
	ISZ	RAN1
	NOP
	TAD	RAN2
	TAD	K1111A
	CLL RAL
	SNL
	IAC
	DCA	RAN2
	TAD	RAN1
	TAD	RAN2
	JMP I	RANDOM
SAVRAN,	0			/PRESET
	CDF	00
	TAD I Z K0
	DCA	RAN2
	JMS I	(HOMEDF
	TAD	RAN1
	DCA	SAV1
	TAD	RAN2
	DCA	SAV2
	JMP I	SAVRAN
RESRAN,	0			/RESTORE
	TAD	SAV1
	DCA	RAN1
	TAD	SAV2
	DCA	RAN2
	JMP I	RESRAN
RAN1,	0
RAN2,	0
SAV1,	0
SAV2,	0
K1111A,	1111

DATCHK,	0				/CHECK DATA.
	TAD I	(ERRSD			/GET FINAL WC.
	JMS I	(SUMCHK			/SUMCHECK.
	CIA
	TAD I	(SUMSAV			/GOOD?
	SNA CLA
	JMP I	DATCHK			/YES. OUT.
	JMS	RESRAN			/NO. RESTORE DATA GENERATOR.
	TAD I	(ERRSD			/PRESET TO CHECK DATA.
	JMS	DATSET
	DCA	.+5			/SAVE CDF TO BUFFER FIELD.
	TAD I	(DATGEV			/MOVE DATA GENERATOR POINTER TO THIS
	DCA	DATSET			/PAGE
	JMS I	DATSET			/GENERATE 1 WORD.
	DCA I	(ERRDB			/SAVE IN GOOD.
	HLT/CDF				/DF TO BUFFER FIELD.
AUA,	TAD I	AUTO			/GET WORD IN BUFFER.
	JMS I	(HOMEDF			/DF=IF
	DCA I	(ERRDC			/SAVE IN BAD.
AUB,	TAD	AUTO			/GET ADDR AND SAVE.
	DCA I	(ERRDA
	TAD I	(ERRDC			/GOOD=BAD?
	CIA
	TAD I	(ERRDB
	SZA
	JMS I	(ERROR			/NO. DATA ERROR (AC NOT 0)
	ISZ I	(BUFTAL			/DONE?
	JMP	.-16			/NO.
	TAD I	(CODE			/YES. SET CODE=001X
	TAD Z	K10
	DCA I	(CODE
	JMS I	(ERROR			/CLOSE ERROR ROUTINE.
	JMP I	DATCHK			/OUT.
DATSET,	0				/SET UP FOR DATA GENERATE OR CHECK.
	CIA				/COMPUTE LENGTH TO FILL OR CHECK.
	TAD I	(ERRSC
	SNA
	JMP I	DATCHK
	DCA I	(BUFTAL			/SAVEIT.
	CLA CMA
	TAD I	(ERRSE			/PUT CA IN AUTO INDEX.
AUC,	DCA	AUTO
	TAD I	(ERRSB			/COMPUTE CDF TOBUFFER FIELD.
	AND Z	K70
	TAD Z	KCDF
	JMP I	DATSET			/EXIT WITH IT IN AC.

/DEFERRED SERVICE ENTRY

DEFSRV,	CLA
	TAD I	(ERRSA		/ERROR REPORT?
	AND	REPORT
	SZA CLA
	JMS I	(ERROR		/YES. STATUS ERROR REPORT.
	CLL CMA RAR		/CHECK FOR ERROR RECOVERY
	JMP I	(GOTER		/DO IT.
REPORT,	3777

RELEAS,	0			/RELEASE BUFFER
	TAD I	(ERRSB		/DESIGINAC
	IOF			/MONITOR CALL
	CIF	00
	RLBUFF
	JMP I	RELEAS		/EXIT WITH ION
*.
	*600


/RUNNER

RUN,	DCA I	(ERRSB		/CLEAR BUFFER DESIG
	DCA I	(CNTR		/0-> PASS COUNTER

/START OFEXERCISER LOOP

EXER,	LAS			/CHANGE DISKADDRESS?
	RAR
	SZL CLA
	JMP	LGTGEN		/NO
EXERA,	JMS I	ADRGEV		/YES. GET DSKAND TRK
	AND Z	K7
	DCA I	(ERRSF
	TAD I	(ERRSF		/>OR=LOW?
	TAD	LODSK
	SPA CLA
	JMP	EXERA		/NO. REGENERATE
	TAD I	(ERRSF		/YES. <OR=HIGH?
	TAD	HIDSK
	SMA SZA CLA
	JMP	EXERA		/NO. REGENERATE
EXERB,	JMS I	ADRGEV		/YES. GENERATE TRK/SUR/SEC
	DCA I	(ERRSG
	JMS I	ADRGEV		/GEN RANDON NUMBER; -# MEANS SET CYL 0
	SMA CLA			/TRK0 TO BE SET?   +# MEANS CLEAR CYL0
	JMP	LGTGEN		/NO. TRK 0 IS ALREADY 0; WHATEVER IN DAR IS OK
	STL			/YES; CHECK THE DAR; START WITH LINK SET
	TAD I	(ERRSG		/CHECK TRK/SUR/SEC<4537. NOTE LINK IS ALREADY SET.
	TAD	M4537A
	SNL CLA
	JMP	EXERB		/OUT OF LIMITS. REGENERATE
	TAD Z	K100		/DAR IN LIMITS; NOW SET BIT 5 IN ERRSF
	TAD I	(ERRSF)
	DCA I	(ERRSF)
LGTGEN,	JMS I	LGTGEV		/GENERATE TRANSFER LENGTH, 7000-7777
	AND	K777
	TAD	K7000A
	DCA I	(ERRSC		/SAVEININIT SOFT WC
BUFGEN,	JMS I	BUFGEV		/GET A BUFFER
	TAD I	(ERRSB		/MAKE INIT CA
	AND Z	K7600
	DCA I	(ERRSE
DATGEN,	JMS I	(SAVRAN		/PRESET RANDOM
	JMS I	(DATSET		/FILL BUFFER
	DCA	.+1
	HLT/CDF
	JMS I	DATGEV
AUD,	DCA I	AUTO
	ISZ	BUFTAL
	JMP	.-3
	JMS I	(HOMEDF		/SUMCHECK
	JMS	SUMCHK
	DCA	SUMSAV		/SAVE SUM
	TAD Z	M3		/SET FOR 3 REREADS IF CRC ERROR
	DCA	PARTAL
	TAD Z	K4		/CODE 4 FOR WRITE
	JMS I	(GO
	4400	/WRITE DATA INT ENA
	JMP	EXER		/STATUS ERROR
DSKRD,	JMS I	(DATSET		/OK. CLEAR BUFFER
	DCA 	.+1
	HLT/CDF
AUE,	DCA I	AUTO
	ISZ	BUFTAL
	JMP	.-2
	JMS I	(HOMEDF
	STL RTL			/2 FOR READ
	JMS I	(GO		/READ
	0400	/READ DATA INT ENA
	JMP	DKRK		/STATUS ERROR
	JMS I	(DATCHK		/OK. CHECKDATA
DSKOUT,	ISZ I	(CNTR		/+1->CNTR
K7000A,	7000			/NOP
	JMP	EXER		/LOOP
DKRK,	TAD I	(ERRSA
	AND	PARITY
	SNA CLA
	JMS I	(DATCHK		/CRC ERROR. CHECK DATA.
	TAD I	(ERRSA		/CRC ERROR?
	AND	K3767A
	SNA CLA
	ISZ	PARTAL		/YES. 3 REREADS?
	JMP	DSKRD		/NO. 1 MORE.
	JMP	DSKOUT		/YES. OUT
BUFTAL,	0
SUMSAV,	0
PARTAL,	0
PARITY,	3767
K777,	0777
K107,	0107
K3767A,	3767
LODSK,	0			/LOW DISK SELECT =(TYPED INVALUE)
HIDSK,	0			/HIGH DISK SELECT =(TYPED INVALUE)
M4537A,	-4537
K600A,	600
SUMCHK,	0				/SUM CHECK BUFFER
	JMS I	(DATSET
	DCA	.+1
	HLT/CDF
	CLL
AUF,	TAD I	AUTO
	SZL
	IAC
	ISZ	BUFTAL
	JMP	.-5
	JMS I	(HOMEDF
	JMP I	SUMCHK


GOTER,	AND I	(ERRSA		/ERROR?
	SNA CLA
	ISZ I	(GO		/NO. MAKE GOODEXIT
	IAC
DC74E,	DCLR			/CLEAR CONTROL
	JMP I	(GORET
ADRCON,	0
	JMP	LGTGEN
/END OF PAGE

*.


/NOTE:  THESE LOC'S ARE SPECIFIED BELOW THE *. SO THAT THE ADDRESSES
/INDICATED ARE MODIFIED PROPERLY BY THE DEC-X8 LOADER.

LGTGEV,	RANDOM	/LGTCON
BUFGEV,	BUFRAN	/BUFCON
DATGEV,	RANDOM	/DATCON
ADRGEV,	RANDOM	/ADRCON

*1000

/ROUTINE TO ASSIGN AND HOLD A SPECIFIED BUFFER WHICH MUST BE
/LEGALLY SPECIFIED IN CONBUF (STANDARD BUFFER DESIGNATOR)

BUFCON,	0
	TAD	ERRSB		/GET CURRENTBUFFER WORD.
	CIA
	TAD	CONBUF
	SNA CLA			/SPECIFIED BUFFER ASSIGNED?
	JMP I	BUFCON		/YES. EXIT.
	JMS	BUFRAN		/NO. GET NEW BUFFER.
	JMP	BUFCON+1	/CHECK IT
CONBUF,	0			/MUST CONTAIN LEGAL BUFFER DESIGNATOR.

/ROUTINE TO ASSIGN A BUFFER OBSERVING SR 10.

LTRCOD=.
BUFRAN,	0
	LAS			/PUT SR 10 (NOT) IN LINK.
	RTR
	CLA CML
	TAD	ERRSB		/BUFFER WORD IN AC.
	SNL SZA
	JMP	.+6		/EXIT IF AC NON ZERO AND LINK SET.
	SZA CLA
	JMS	RELEAS		/RELEASE BUFFER IF AC NON ZERO.
	IOF			/ASSIGNA BUFFER
	CIF	00
	ASBUFF
	DCA	ERRSB		/SAVE BUFFER DESIGNATOR.
	JMP I	BUFRAN		/EXIT.

LGTCON,	0
	TAD I	(ERRSC
	JMP I	LGTCON

/INITIALIZER
					/"INIT" IS INITIALIZING ADDRESS.
INIT,	MESAGE
	TEXT1
INITLP,	TAD Z	K301			/SET CODE TO "A"
	DCA	LTRCOD
	JMS	INISR1			/GET LOW DISK.
	DCA	LODSK			/SAVE IN BITS 4-5 NEGATED
	JMS	INISR1			/SAME FOR HIGH DISK.
	DCA	HIDSK
	JMS	INISR2			/TYPE OF DATA.
	JMP	.+4			/RANDOM
	DCA I	(ERRDB			/CONSTANT-SAVE IN GOOD DATA.
	TAD	(DATCON			/PRESET POINTERS.
	SKP
	TAD	(RANDOM
	DCA I	(DATGEV
	JMS	INISR2			/TYPE OF ADDRESSING:
	JMP	.+10			/RANDOM
	DCA I	(ERRSF			/CONSTANT-SAVE EMA PART.
	SPACE2				/2 SPACES
	FOROCT				/GET DMA PART.
	JMP	INITLP
	DCA I	(ERRSG			/SAVE IT.
	TAD	(ADRCON			/PRESET POINTERS
	SKP
	TAD	(RANDOM
	DCA I	(ADRGEV
	JMS	INISR2			/LENGTH OF TRANSFER:
	JMP	.+5			/RANDOM
	CIA				/CONSTANT-NEGATE AND SAVE

	DCA I	(ERRSC			/AS INITIAL WC.
	TAD	(LGTCON			/PRESET POINTERS.
	SKP
	TAD	(RANDOM
	DCA I	(LGTGEV
	JMS	INISR2			/BUFFER ASSIGNMENT:
	JMP	.+4			/RANDOM
	DCA	CONBUF			/CONSTANT-SAVE IN HOLDER.
	TAD	(BUFCON			/PRESET POINTERS.
	SKP
	TAD	(BUFRAN
	DCA I	(BUFGEV
	INITEX				/OUT.

INISR1,	0				/SERVICE1.
	JMS	INISR3			/DO SERVICE 3.
	CIA				/NEGATE
	JMP I	INISR1			/OUT.

INISR2,	0				/SERVICE 2
	JMS	INISR3			/DO SERVICE 3.
	SNA CLA
	JMP I	INISR2			/0=RANDOM OUT
	ISZ	INISR2			/NOT 0 IS CONSTANT.
	SPACE2				/2 SPACES.
	FOROCT				/GET 4 OCTAL NUMBERS
	JMP 	INITLP			/ERROR.
	JMP I	INISR2			/OUT

INISR3,	0				/SERVICE 3.
	CRLF				/CARRIAGE RET-LINE FEED.
	TAD	LTRCOD			/GET LETTER CODE.
	TYPE				/PRINT IT
	SPACE2				/2 SPACES
	ONEOCT				/GET ONE OCTAL NUMBER.
	JMP	INITLP			/ERROR.
	AND Z	K7			/MAKE <OR=7 ARBITRARILY.
	ISZ	LTRCOD			/UPDATE LETTER CODE.
	JMP I	INISR3			/OUT.

/END
/


/DEC/X8 EXTERNAL SYMBOL TABLE  "EXTSYM
/FOR USE IN ASSEMBLINGDEC/X8 SOFTWARE MODULES.

/COPYRIGHT 1972, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
/	XLIST
/MAINDEC-X8-DIQAC

ASBUFP=0060
AUTO=0017
CRLFP=0054
ERRP=0061
EXINIT=0020
EXSERV=0004
EXTMEM=0161
FOROCP=0043
IHRETP=0026
IOFMSP=0056

K0=0066
K10=0076
K100=0107
K11=0077
K116=0071
K13=0100
K17=0101
K177=0130
K20=0102
K200=0110
K2000=0122
K212=0111
K215=0112
K240=0113
K260=0114
K272=0115
K277=0116
K3=0072
K30=0103
K301=0117
K32=0067
K323=0120
K4=0073
K40=0104
K400=0121
K5=0074
K540=0124
K5200=0123
K5402=0003
K64=0070
K7=0075
K70=0105
K7510=0125
K7520=0126
K7540=0127
K7600=0131
K77=0106
K7735=0132
K7740=0133
K7750=0134
K7760=0135
K7771=0136
K7773=0137
K7774=0140
K7775=0141
KCDF=0064
KCIF=0005
KCIFDF=0020
KIOF=0004
LISNP=0040

M20=0135
M200=0131
M240=0127
M260=0126
M270=0125
M3=0141
M30=0134
M4=0140
M40=0133
M43=0132
M5=0137
M7=0136

MESAGP=0044
MUL26P=0065
ONEOCP=0042
PRNT1P=0051
PRNT2P=0052
PRNT4P=0053
RLBUFP=0057
SPACEP=0055
TWOOCP=0041
TYPEP=0050

/D E F I N E D  C A L L S:

MESAGE=JMS I MESAGP
CRLF=JMS I CRLFP
TYPE=JMS I TYPEP
LISN=JMS I LISNP
ONEOCT=JMS I ONEOCP
TWOOCT=JMS I TWOOCP
FOROCT=JMS I FOROCP
PRNT1=JMS I PRNT1P
PRNT2=JMS I PRNT2P
PRNT4=JMS I PRNT4P
SPACE2=JMS I SPACEP
ASBUFF=JMS I ASBUFP
RLBUFF=JMS I RLBUFP
INITEX=JMP EXINIT
SERVEX=JMP EXSERV

/	XLIST

/END OF PAGE AND END OF PROGRAMCODE

EOP4=.
*INIT+1;TEXT1
*EOP4



FIELD	1		/LOADER CALL

	*1200

INIT;RUN;INT

DSKP;0;1;HLT;HLT;HLT

-6;AUA;AUB;AUC;AUD;AUE;AUF


-2

0740;-7;DC74A;DC74B;DC74E;DC74F;DC74G;DC74H;1
0750;-2;DC75A;DC75B

0

0

$$$$$$$$$$$