/ 
/ 
/                   FIRST PRINTING, FEBRUARY 1974
/ 
/ THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO 
/ CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED
/ AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPON-
/ SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS
/ DOCUMENT.
/ 
/ THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR-
/ NISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON
/ A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH
/ INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR 
/ USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PRO-
/ VIDED IN WRITING BY DIGITAL.
/ 
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/ FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP-
/ MENT THAT IS NOT SUPPLIED BY DIGITAL.
/ 
/ COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION
/ 
/ 
        .EJECT
/ EDIT #13
/
/ COPYRIGHT 1971,1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
/
/ RSX-15 MACRO DEFINITIONS      14 JUN 73       H. KREJCI
/						M. HEBENSTREIT
/
/ ABREVIATIONS -- UNLESS OTHERWISE SPECIFIED, ALL PARAMETERS
/		  EXCEPT ADDRESSES ARE GIVEN IN DECIMAL.
/
/	BUFF	CORE BUFFER ADDRESS
/	CL	INTERRUPT CONNECT LOCATION
/	CTB	CONTROL TABLE ADDRESS
/	EV	EVENT VARIABLE ADDRESS
/	FLNAM	FILE NAME (1-6 CHARACTERS)
/	LN	INTERRUPT LINE NUMBER (OCTAL)
/	LUN	LOGICAL UNIT NUMBER
/	MI	MARK TIME INTERVAL (A TICK THRU A DAY)
/	MODE	DATA MODE INDICATOR
/	MU	MARK TIME UNITS
/	RA	RESUMPTION ADDRESS
/	RI	RESCHEDULE INTERVAL (0-1 DAY, WHERE 0 IMPLIES NO RESCHEDULING)
/	RP	RUN PRIORITY (0-512, WHERE 0 IMPLIES DEFAULT PRIORITY)
/	RU	RESCHEDULE UNITS (H,M,S,T)
/	SD	SCHEDULE DELTA (A TICK THRU A DAY)
/	SH	SCHEDULE HOURS (0-23)
/	SIZE	CORE BUFFER SIZE (OCTAL)
/	SM	SCHEDULE MINUTES (0-59)
/	SS	SCHEDULE SECONDS (0-59)
/	SU	SCHEDULE DELTA UNITS (H,M,S,T)
/	SZ	SYNCHRONIZATION UNIT (H,M,S,T)
/	TASNAM	TASK NAME (1-6 CHARACTERS)
/	EXT	FILE NAME EXTENSION (1-3 CHARACTERS)
/	UNIT	UNIT NUMBER OF DISK
/	TYPE	DISK TYPE: 2 -- RF, 3 -- RP, 24 -- RK, 0 -- SYSTEM DISK
/
H=4	/HOURS INDICATOR
M=3	/MINUTES INDICATOR
S=2	/SECONDS INDICATOR
T=1	/TICKS INDICATOR
/
.INH=705522 /INTERRUPT INHIBIT IOT
.ENB=705521 /INTERRUPT ENABLE IOT
/
SAVE=131 /SAVE ENTRY POINT (IN SCOM)
REST=134 /RESTORE ENTRY POINT (IN SCOM)
    
/
/ ****  REQUEST TASNAM[,RP[,EV]]
/
	.DEFIN	REQUEST,TN,RP,EV
	CAL	.+2
	JMP	.+6
	01
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.DEC
	RP+0
	.ENDM
/
/ ****  SCHEDULE  TASNAM,SH,SM,SS[,RI,RU[,RP[,EV]]]
/
	.DEFIN	SCHEDULE,TN,SH,SM,SS,RI,RU,RP,EV
	CAL	.+2
	JMP	.+13
	02
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.DEC
	SH; SM; SS
	RI+0
	RU+0
	RP+0
	.ENDM
/
/ ****  RUN	TASNAM,SD,SU[,RI,RU[,RP[,EV]]]
/
	.DEFIN	RUN,TN,SD,SU,RI,RU,RP,EV
	CAL	.+2
	JMP	.+12
	03
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.DEC
	SD; SU
	RI+0
	RU+0
	RP+0
	.ENDM
/
/ ****  SYNC	TASNAM,SZ,SD,SU[,RI,RU[,RP[,EV]]]
/
	.DEFIN	SYNC,TN,SZ,SD,SU,RI,RU,RP,EV
	CAL	.+2
	JMP	.+13
	14
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.DEC
	SZ; SD; SU
	RI+0
	RU+0
	RP+0
	.ENDM
/
/ ****  CANCEL	TASNAM[,EV]
/
	.DEFIN	CANCEL,TN,EV
	CAL	.+2
	JMP	.+5
	04
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.ENDM
/
/ ****  SUSPEND
/
	.DEFIN	SUSPEND
	CAL	(6)
	.ENDM
/
/ ****  RESUME	TASNAM[,RA[,EV]]
/
	.DEFIN	RESUME,TN,RA,EV
	CAL	.+2
	JMP	.+6
	07
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	RA+0
	.ENDM
/
/ ****  MARK	MI,MU,EV
/
	.DEFIN	MARK,MI,MU,EV
	CAL	.+2
	JMP	.+5
	13
	EV
	.DEC; MI; MU
	.ENDM
/
/ ****  WAITFOR	EV
/
	.DEFIN	WAITFOR,EV
	CAL	.+2
	JMP	.+3
	20
	EV
	.ENDM
/
/ ****  WAIT
/
	.DEFIN	WAIT
	CAL	(5)
	.ENDM
/
/ ****  EXIT
/
	.DEFIN	EXIT
	CAL	(10)
	.ENDM
/
/ ****  CONNECT	LN,CL[,EV]
/
	.DEFIN	CONNECT,LN,CL,EV
	CAL	.+2
	JMP	.+5
	11
	EV+0
	LN
	CL
	.ENDM
/
/ **** DISCONNECT  LN,CL[,EV]
/
	.DEFIN	DISCONNECT,LN,CL,EV
	CAL	.+2
	JMP	.+5
	12
	EV+0
	LN
	CL
	.ENDM
/
/ ****	READ	LUN,MODE,BUFF,SIZE[,EV]
/
	.DEFIN	READ,LUN,MODE,BUFF,SIZE,EV
	CAL	.+2
	JMP	.+7
	2600
	EV+0
	.DEC; LUN; .OCT
	MODE
	BUFF
	SIZE
	.ENDM
/
/ ****	WRITE	LUN,MODE,BUFF[,EV]
/
	.DEFIN	WRITE,LUN,MODE,BUFF,EV
	CAL	.+2
	JMP	.+6
	2700
	EV+0
	.DEC; LUN; .OCT
	MODE
	BUFF
	.ENDM
/
/ ****	DSKAL	CTB[,EV]  FOR SYSTEM DISK ONLY
/
	.DEFIN	DSKAL,CTB,EV
	CAL	.+2
	JMP	.+5
	1500
	EV+0
	1
	CTB
	.ENDM
/
/ ****	DSKDAL	CTB[,EV]  FOR SYSTEM DISK ONLY
/
	.DEFIN	DSKDAL,CTB,EV
	CAL	.+2
	JMP	.+5
	1600
	EV+0
	1
	CTB
	.ENDM
/
/ ****	DSKPUT	CTB[,EV]  FOR SYSTEM DISK ONLY
/
	.DEFIN	DSKPUT,CTB,EV
	CAL	.+2
	JMP	.+5
	3100
	EV+0
	1
	CTB
	.ENDM
/
/ ****	DSKGET	CTB[,EV]  FOR SYSTEM DISK ONLY
/
	.DEFIN	DSKGET,CTB,EV
	CAL	.+2
	JMP	.+5
	3000
	EV+0
	1
	CTB
	.ENDM
/ 
/ ****	MDALLO	CTB,UNIT,TYPE(,EV)
/ 
	.DEFIN	MDALLO,CTB,UNIT,TYPE,EV
	CLL
	LAC	(UNIT
	ALS	17
	DAC	CTB+1
	CAL	.+2
	JMP	.+6
	11500
	EV
	1
	CTB
	TYPE
	.ENDM
/ 
/ ****	MDDEAL	CTB,UNIT,TYPE(,EV)
/ 
	.DEFIN	MDDEAL,CTB,UNIT,TYPE,EV
	CLL
	LAC	CTB+1
	AND	(7777
	DAC	CTB+1
	LAC	(UNIT
	ALS	17
	TAD	CTB+1
	DAC	CTB+1
	CAL	.+2
	JMP	.+6
	11600
	EV
	1
	CTB
	TYPE
	.ENDM
/ 
/ ****	MDGET	CTB,UNIT,TYPE(,EV)
/ 
	.DEFIN	MDGET,CTB,UNIT,TYPE,EV
	CLL
	LAC	CTB
	AND	(7777
	DAC	CTB
	LAC	(UNIT
	ALS	17
	TAD	CTB
	DAC	CTB
	CAL	.+2
	JMP	.+6
	13000
	EV
	1
	CTB
	TYPE
	.ENDM
/ 
/ ****	MDPUT	CTB,UNIT,TYPE(,EV)
/ 
	.DEFIN	MDPUT,CTB,UNIT,TYPE,EV
	CLL
	LAC	CTB
	AND	(7777
	DAC	CTB
	LAC	(UNIT
	ALS	17
	TAD	CTB
	DAC	CTB
	CAL	.+2
	JMP	.+6
	13100
	EV
	1
	CTB
	TYPE
	.ENDM
/
/ ****	ATTACH	LUN[,EV]
/
	.DEFIN	ATTACH,LUN,EV
	CAL	.+2
	JMP	.+4
	2400
	EV+0
	.DEC; LUN; .OCT
	.ENDM
/
/ ****	DETACH	LUN[,EV]
/
	.DEFIN	DETACH,LUN,EV
	CAL	.+2
	JMP	.+4
	2500
	EV+0
	.DEC; LUN; .OCT
	.ENDM
/
/ ****	SEEK	LUN,FLNAM,EXT[,EV]
/
	.DEFIN	SEEK,LUN,FLNAM,EXT,EV
	CAL	.+2
	JMP	.+7
	3200
	EV+0
	.DEC; LUN; .OCT
..=.;	.SIXBT "FLNAM"
	0; .LOC ..+2
	.SIXBT "EXT"
	.ENDM
/
/ ****	ENTER	LUN,FLNAM,EXT[,EV]
/
	.DEFIN	ENTER,LUN,FLNAM,EXT,EV
	CAL	.+2
	JMP	.+7
	3300
	EV+0
	.DEC; LUN; .OCT
..=.;	.SIXBT "FLNAM"
	0; .LOC ..+2
	.SIXBT "EXT"
	.ENDM
/
/ ****	DELETE	LUN,FLNAM,EXT[,EV]
/
	.DEFIN	DELETE,LUN,FLNAM,EXT,EV
	CAL	.+2
	JMP	.+7
	3500
	EV+0
	.DEC; LUN; .OCT
..=.;	.SIXBT "FLNAM"
	0; .LOC ..+2
	.SIXBT "EXT"
	.ENDM
/
/ ****	CLOSE	LUN[,FLNAM,EXT[,EV]]
/
	.DEFIN	CLOSE,LUN,FLNAM,EXT,EV
	CAL	.+2
	JMP	.+7
	3400
	EV+0
	.DEC; LUN; .OCT
..=.;	.SIXBT	'FLNAM'
	0;	.LOC	..+2
	.SIXBT	'EXT'
	.ENDM
/
/ *** RENAME	LUN,FLNAM,EXT[,EV]
/
	.DEFIN	RENAME,LUN,FLNAM,EXT,EV
	CAL	.+2
	JMP	.+7
	3700
	EV+0
	.DEC; LUN; .OCT
..=.;	.SIXBT "FLNAM"
	0; .LOC ..+2
	.SIXBT	"EXT"
	.ENDM
/
/ ****	HINF	LUN,EV
/
	.DEFIN	HINF,LUN,EV
	CAL	.+2
	JMP	.+4
	3600
	EV+0
	.DEC; LUN; .OCT
	.ENDM
/
/ ****	DISABLE	TASNAM[,EV]
/
	.DEFIN	DISABLE,TN,EV
	CAL	.+2
	JMP	.+5
	21
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.ENDM
/
/ ****	ENABLE	TASNAM[,EV]
/
	.DEFIN	ENABLE,TN,EV
	CAL	.+2
	JMP	.+5
	22
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.ENDM
/
/ ****  FIX	TASNAM[,EV]
/
	.DEFIN	FIX,TN,EV
	CAL	.+2
	JMP	.+5
	15
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.ENDM
/
/ ****  UNFIX	TASNAM[,EV]
/
	.DEFIN	UNFIX,TN,EV
	CAL	.+2
	JMP	.+5
	16
	EV+0
..=.;	.SIXBT "TN"
	0; .LOC ..+2
	.ENDM
/
/ ****  DATE	MON,DAY,YEAR,HRS,MIN,SEC
/
	.DEFIN	DATE,MON,DAY,YEAR,HRS,MIN,SEC
	CAL	.+2
	JMP	.+11
	24
	0
MO	0
DA	0
YR	0
HH	0
MM	0
SS	0
	LAC	MO
	DAC	MON
	LAC	DA
	DAC	DAY
	LAC	YR
	DAC	YEAR
	LAC	HH
	DAC	HRS
	LAC	MM
	DAC	MIN
	LAC	SS
	DAC	SEC
	.ENDM
/
/ ****  INTENTRY  CL
/
	.DEFIN	INTENTRY,CL
CL	0
	DBA
	JMS* (SAVE)
	.REPT 24
	0
	NOP
	.ENDM
/
/ ****  INTEXIT	CL
/
	.DEFIN	INTEXIT,CL
	LAC	(CL)
	JMP*	(REST)
	.ENDM
/
	.EOT
