Google
 

Trailing-Edge - PDP-10 Archives - BB-H240B-BM - dngen/rsxmc.mac
There are no other files named rsxmc.mac in the archive.
	.IIF NDF S$$YDF , .NLIST
	.TITLE	RSXMC
	.IDENT	/M3.1/
;
; COPYRIGHT (C) 1976, 1977
; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
; SINGLE COMPUTER SYSTEM AND MAY  BE  COPIED   ONLY  WITH  THE
; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,  OR
; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED  OR  OTHERWISE
; MADE AVAILABLE TO ANY OTHER PERSON   EXCEPT FOR  USE ON SUCH
; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE  TERMS.  TITLE
; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL  TIMES  REMAIN
; IN DEC.
;
; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
; EQUIPMENT CORPORATION.
;
; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
;  
; VERSION M3.1
;
R$$11S=0		;RSX-11S SYSTEM
V$$RSN=31		;RSX-11M VERSION 3.1
A$$CHK=0		;ADDRESS CHECKING
I$$RDN=0		;I/O RUNDOWN
M$$MGE=0		;MEMORY MANAGEMENT
A$$CPS=0		;ACP SUPPORT
M$$NET=0		;NETWORK ACP SUPPORT
P$$TPT=0		;POINT TO POINT NETWORK SUPPORT
A$$TRP=0		;AST SUPPORT
G$$TPP=0		;GET PARTITION PARAMETERS DIRECTIVE
R$$SND=0		;RECEIVE/SEND DIRECTIVES
L$$ASG=0		;LOGICAL UNIT ASSIGNMENT
L$$DRV=0		;LOADABLE DRIVER SUPPORT
M$$NT2=0		;DECNET VERSION 2 SUPPORT
A$$CHK=0		;ADDRESS CHECKING
G$$TTK=0		;GET TASK PARAMETERS DIRECTIVE
R$$SND=0		;RECEIVE/SEND DIRECTIVES
X$$DBT=0		;EXECUTIVE DEBUGGING TOOL
R$$DER=0		;CORAL DEALLOCATION ERROR CHECKING
C$$ORE=1024.		;SIZE OF DYNAMIC STORAGE REGION
S$$YSZ=32.*32.		;SIZE OF PHYS. MEMORY IN 32W BLOCKS
H$$RTZ=60.		;LINE FREQUENCY
K$$CSR=177546		;LINE CLOCK CSR ADDRESS
K$$CNT=177546		;COUNT REGISTER ADDRESS
K$$TPS=60.		;TICKS PER SECOND
K$$LDC=1		;LOAD COUNT VALUE
K$$IEN=115		;CLOCK INTERRUPT ENABLE (KW11-P AT LINE FREQ)
P$$RTY=0		;PARITY MEMORY
N$$LDV=1		;NULL DEVICE
V$$CTR=1200		;ADDRESS OF HIGHEST VECTOR PLUS 4
M$$CRB=84.		;MCR COMMAND BUFFER LENGTH
R$$11M=0		;RSX-11M SYSTEM
V$$RSN=31		;RSX-11M VERSION 3.1
;
; EXEC MACROS
;
; ASSUME MACRO FOR CHECKING ADJACENCY AND OFFSET VALUE ASSUMPTIONS
;
 
;	.MACRO	ASSUME	A,B=0
;	.IF NE	A-B
;	.ERROR			;EXPRESSION(S) NOT EQUAL
;	.ENDC
;	.ENDM
 
;
; CALL SUBROUTINE
;
;
	.MACRO	CALL SUBR ARG
	.IF IDN	<$INTSV>,<SUBR>
	JSR	R5,$INTSV
	.IF DF	L$$SI1
	.WORD	ARG
	.IFF
	.WORD	^C<ARG>&PR7
	.ENDC
	.IFF
	.IF IDN	<$SAVNR>,<SUBR>
	JSR	R5,$SAVNR
	.IFF
	.IF IDN	<$SWSTK>,<SUBR>
	EMT	376
	.WORD	ARG
	.IFF
	JSR	PC,SUBR
	.ENDC
	.ENDC
	.ENDC
	.ENDM
	
;
; CALL AND RETURN FROM SUBROUTINE
;
;
	.MACRO	CALLR SUBR
	JMP	SUBR
	.ENDM
	
;
; CRASH SYSTEM
;
;
	.MACRO	CRASH
	IOT
	.ENDM
	
;
; DIRECTIVE REGISTER SAVE AND SET PRIORITY
;
;
	.MACRO	DIRSV$
	JSR	R5,$DIRSV
	.ENDM
	
;
; SET DIRECTIVE STATUS
;
;
	.MACRO 	DRSTS VALUE
	TRAP	VALUE
	.ENDM
	
;
; GENERATE INTERRUPT ROUTINE ENTRY POINT LABEL
;
;
;
	.IF DF	E$$DVC
	.MACRO	INTLB NUM,NAM
$'NAM'NUM'T::
	.ENDM
	.ENDC
	
	
;
; INTERRUPT SAVE GENERATION MACRO FOR ERROR LOGGING DEVICES
;
;
	.MACRO	INTSE$ DEV,PRI,NCTRLR,PSWSV,UCBSV,?LAB
	.IF DF	L$$DRV & LD$'DEV & M$$MGE
$'DEV'INT::
	.IF NDF	E$$DVC
	.IF EQ	NCTRLR-1
	CLR	R4
	.ENDC
	.ENDC
	.IFF
	.IF NDF	E$$DVC
$'DEV'INT::INTSV$	DEV,PRI,NCTRLR,PSWSV,UCBSV
	.IF EQ	NCTRLR-1
	CLR	R4
	.ENDC
	.MEXIT
	.IFF
$$$=0
	.REPT	NCTRLR
	INTLB	\$$$,DEV
	JSR	R5,$INTSE
	SCBLB	\$$$,DEV
	.IF DF	L$$SI1
	.WORD	PRI
	.IFF
	.WORD	^C<PRI>&PR7
	.ENDC
	.IF GT	NCTRLR-$$$-1
	BR	LAB
	.ENDC
$$$=$$$+1
	.ENDR
LAB:
	.ENDC
	.ENDC
	GTUCB$	UCBSV,NCTRLR
	.ENDM
	
	
;
; INTERRUPT SAVE GENERATION FOR NON-ERROR LOGGING DEVICES
;
;
	.MACRO	INTSV$	DEV,PRI,NCTRLR,PSWSV,UCBSV
	.IF NDF	L$$DRV ! M$$MGE ! LD$'DEV
	.IF GT	NCTRLR-1
	.IF B	<PSWSV>
	MFPS	TEMP
	.IFF
	MFPS	PSWSV
	.ENDC
	.IFTF
	JSR	R5,$INTSV
	.IF DF	L$$SI1
	.WORD	PRI
	.IFF
	.WORD	^C<PRI>&PR7
	.ENDC
	.IFT
	.IF B	<PSWSV>
	MOV	TEMP,R4
	.IFF
	MOV	PSWSV,R4
	.ENDC
	BIC	#177760,R4
	ASL	R4
	.ENDC
	.ENDC
	GTUCB$	UCBSV,NCTRLR
	.ENDM
	
	
;
; GENERATE CODE TO LOAD UCB ADDRESS INTO R5 -- CALLED
; ONLY BY INTSE$ AND INTSV$
;
;
	.MACRO	GTUCB$	UCBSV,NCTRLR
	.IF NB	<UCBSV>
	.IF GT	NCTRLR-1
	MOV	UCBSV(R4),R5
	.IFF
	MOV	UCBSV,R5
	.ENDC
	.IFF
	.IF GT	NCTRLR-1
	MOV	CNTBL(R4),R5
	.IFF
	MOV	CNTBL,R5
	.ENDC
	.ENDC
	.ENDM
	
	
;
; PROCESSOR STATUS READ/WRITE
;
;
	.IF NDF	L$$SI1
	.MACRO	MFPS DST
	MOVB	@#PS,DST
	.ENDM
	.MACRO	MTPS SRC
	.IF IDN	<#0>,<SRC>
	CLRB	@#PS
	.IFF
	MOVB	SRC,@#PS
	.ENDC
	.ENDM
	.ENDC
	
	
;
; SAVE NONVOLATILE REGISTERS
;
;
	.MACRO	SAVNR
	JSR	R5,$SAVNR
	.ENDM
	
;
; GENERATE STATUS CONTROL BLOCK REFERENCE LABEL
;
;
;
	.IF DF	E$$DVC
	.MACRO	SCBLB NUM,NAM
	.WORD	$'NAM'NUM
	.ENDM
	.ENDC
	
	
;
; RETURN FROM SUBROUTINE
;
;
	.MACRO	RETURN
	RTS	PC
	.ENDM
	
;
; SOB LOOP INSTRUCTION
;
;
;
	.IF NDF	R$$EIS
	.MACRO	SOB	A,B
	DEC	A
	BNE	B
	.ENDM
	.ENDC
	
;
; STATE SWITCHING MACRO
;
;
	.MACRO	SWSTK$ ARG
	CALL	$SWSTK,ARG
	.ENDM
	
	.IF DF	F$$LPP
	
;
; LOAD FLOATING DOUBLE
;
;
	.MACRO	LDD A,B
	.NTYPE	N,A
	.NTYPE	M,B
	.WORD	172400+<M*64.>+N
	.ENDM
	
;
; LOAD FLOATING POINT STATUS
;
;
	.MACRO	LDFPS A
	.IF IDN	<A>,<@H.FPSA(R2)>
	.WORD	170100+72
	.WORD	H.FPSA
	.IFF
	.NTYPE	N,A
	.WORD	170100+N
	.ENDC
	.ENDM
	
;
; SET DOUBLE FLOATING MODE
;
;
	.MACRO	SETD
	.WORD	170011
	.ENDM
	
;
; STORE FLOATING DOUBLE
;
;
	.MACRO	STD A,B
	.NTYPE	N,A
	.NTYPE	M,B
	.WORD	174000+<N*64.>+M
	.ENDM
	
;
; STORE FLOATING POINT STATUS
;
;
	.MACRO	STFPS A
	.NTYPE	N,A
	.WORD	170200+N
	.ENDM
	
;
; STORE STATUS
;
;
	.MACRO	STST A
	.WORD	170337
	.WORD	FLSTS
	.ENDM
	
	.ENDC
	
	
	.IIF NDF S$$YDF , .LIST