Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-03 - decus/20-0078/rts/simmc1.mac
There are 3 other files named simmc1.mac in the archive. Click here to see a list.
COMMENT;
AUTHOR:		CLAES WIHLBORG
CONTENT:	THIS FILE DEFINES REGISTERS,MACROS,SWITCHES,CONSTANTS AND
		FIELDS USED IN PASS 1.
;

	SEARCH	SIMMAC
	SALL
	CUNIV	SIMMC1	;[104]

	IF1,<END>


	EXTERN	YLSNLS,YLSCLS,YLSLLS	;VARIABLES FOR LINE AND SEMICOLON COUNTERS


	PRINTX	UPDATE: 27 18-Mar-1977/LE
;			ACCUMULATORS
;			============

	X1CUR=15	;CURRENT SYMBOL
	X1NXT=16	;NEXT SYMBOL

	XDPIN=14
	XDPOUT=13
	XDPFIL=12
	XLSTXT=0
	XALLOC=10

	X1ID1=2		;IDENTIFIER FIRST SIX CHARS
	X1ID2=X1ID1+1	;    -"-    LAST    -"-
	X1LEX=X1ID1+2
	X1BYTE=X1LEX	;CURRENT 7 BIT ASCII BYTE POINTED TO BY X1LBP

	X1SR0=14	;ACCUMULATORS USED FOR PARAMETER TRANSMISSION FROM SR
	X1SR1=X1SR0-1
	X1SR2=X1SR0-2
	X1SR3=X1SR0-3

	X1LBP=7		;BYTE POINTER TO YLCLB

	X1MASK=6	;BIT MASK

	X1R0=0		;Scratch ACCUMULATORS, NEVER SAVED
	X1R1=1
	X1R2=4		;NOTE THAT X1R2=X1LEX
	X1R3=5
;			MACROS:
;			=======

DEFINE YZSE1(REG)<ZSE1+QNRESW-QLOWID(REG)>
DEFINE YZSE2(REG)<ZSE2+QNRESW-QLOWID(REG)>
DEFINE YZSE3(REG)<ZSE3+QNRESW-QLOWID(REG)>


DEFINE RELADD(X)<>
DEFINE RELSUB(X)<>

DEFINE .EXIT(A)<L9()>

DEFINE PUTFIL(A)<
IRP A,<	EXTERN	YBH'A
	DEFINE	PUT'A(REG)<
		SOSGE	YBH'A+2
		XEC	O1'A
		IDPB	REG,YBH'A+1
	>
	>
>

PUTFIL(<DF1,REL,IC1,XRF,ZSE,LS1>)

DEFINE GETEXT(REG)<
	SOSGE	YBHEXT+2
	XEC	O1EXT
	ILDB	REG,YBHEXT+1
>
;			SWITCHES
;			========

;BITS IN X1MASK RIGHT HALFWORD


	;SETONA,SETOFA,IFONA,IFOFFA MACROS CAN HANDLE THESE SWITCHES

	DSW	(YERNP2,0,35,X1MASK)	;NO PASS 2 PROCESSING
	DSW	(YERNC,0,34,X1MASK)	;NO CODE GENERATION
	DSW	(YLSID,0,33,X1MASK)	;TOO LONG IDENTIFIER
	DSW	(YZSE,0,32,X1MASK)	;NO INSERT IN ZSE
	DSW	(YO1ZSW,0,31,X1MASK)	;ZSE IS WRITTEN OUT
	DSW	(YBSOV,0,30,X1MASK)	;BLOCK STACK OVERFLOW
	DSW	(YLSEND,0,29,X1MASK)	;LS END COMMENT TO BE SCANNED
	DSW	(YLSNUM,0,28,X1MASK)	;LS NUMBER SWITCH
	DSW	(YLSENW,0,27,X1MASK)	;LS END COMMENT WARNING GENERATED
	DSW	(YI1MS,0,26,X1MASK)	;I1 SWITCH
	DSW	(YI1SCS,0,25,X1MASK)	;I1 SWITCH
	DSW	(YI1SWF,0,24,X1MASK)	;I1 SWITCH
	DSW	(YI1SWS,0,23,X1MASK)	;I1 SWITCH
	DSW	(YI1NEG,0,22,X1MASK)	;I1 SWITCH
	DSW	(YI1OPT,0,21,X1MASK)	;I1 SWITCH
	DSW	(YSWEMP,0,20,X1MASK)	;MAIN PROGRAM
	DSW	(YSWECL,0,19,X1MASK)	;EXTERNAL CLASS
	DSW	(YSWEPR,0,18,X1MASK)	;EXTERNAL PROCEDURE
	DSW	(YSWEFO,0,0,X1MASK)	;EXTERNAL FORTRAN-10 PROCEDURE
	DSW	(YSWEM,0,1,X1MASK)	;EXTERNAL MACRO PROCEDURE WITH CHECK
	DSW	(YSWEMN,0,2,X1MASK)	;EXTERNAL MACRO PROCEDURE WITH NOCHECK
	DSW	(YSWECO,0,3,X1MASK)	;BEFORE PROGRAM START IF OFF
	DSW	(YSWC,0,4,X1MASK)	;ON IF XRF WAS REQUESTED
	DSW	(ZQUOUT,0,5,X1MASK)	;ON IF SYSTEM PROC OUTPUT
	DSW	(YSWE40,0,6,X1MASK)	;EXTERNAL FORTRAN-40 PROCEDURE
	DSW	(YSWEMQ,0,7,X1MASK)	;[4] Ext. MACRO-10, quick call
	DSW	(ZHSRFL,6,0)		;ON IF SUBBLOCKS ARE TO BE REDUCED


;BITS IN X1MASK LEFT HALFWORD, ONLY FOR COMPILER DEBUG
	DSW	(TRSR,0,17,X1MASK)	;ON SR1 OFF SR0	TRACE SYNTACTIC ROUTINES
	DSW	(TRIC,0,16,X1MASK)	;ON O11 OFF O10	TRACE IC1
	DSW	(DMPIC1,0,15,X1MASK)	;ON IC1		DUMP IC1
	DSW	(DMPDF1,0,14,X1MASK)	;ON DF1		DUMP DF1
	DSW	(TRLS,0,13,X1MASK)	;ON LS1 OFF LS0	TRACE LS OUTPUT
	DSW	(TRER,0,12,X1MASK)	;TRACE ERROR MESSAGES
	DSW	(TRSD,0,11,X1MASK)	;ON SD1 OFF SD0 TRACE SD
;			CONSTANTS
;			=========



	QSREG=22	;ERROR MASKS FROM SR TO SM
	QSREE=23
	QSREP=24
	QSREC=25
	QSREA=26
	QSRES=27
	QSRET=30
	QSREW=31

;*****  ERROR NUMBERS *****
	W=Q1.WAR
	E=Q1.ERR
	T=Q1.TER
DEFINE X(MODULE,NOOFWAR,NOOFERR,NOOFTER)<
	Q1'MODULE'.W=W
	W=W+NOOFWAR
	Q1'MODULE'.E=E
	E=E+NOOFERR
	Q1'MODULE'.T=T
	T=T+NOOFTER>

	X	(I1,30,1,16)
	X	(O1,0,0,6)
	X	(LC,2,2,0)
	X	(LS,16,25,0)
	X	(SH,0,0,1)
	X	(SR,6,47,1)
	X	(SD,0,20,1)
	X	(DP,0,2,5)
	X	(T1,0,0,1)

	PURGE	X

QQZQU=1B<QZQU+^D33>
QQZHE=1B<QZHE+^D33>
QQZHB=1B<QZHB+^D33>
;			COMMON FIELDS
;			=============

 DF YLSNLIN,YLSNLS,18,35
; LINE NUMBER OF LINE CONTAINING NEXT SYMBOL

 DF YLSNSEM,YLSNLS,18,17
;SEMICOLONS PRECEDING NEXT SYMBOL ON LINE

 DF YLSCLIN,YLSCLS,18,35
;LINE NUMBER OF LINE CONTAINING CURRENT SYMBOL

 DF YLSCSEM,YLSCLS,18,17
;SEMICOLONS PRECEDING CURRENT SYMBOL ON LINE

 DF YLSLLIN,YLSLLS,18,35
;LINE NUMBER OF LINE CONTAINING LAST SYMBOL

 DF YLSLSEM,YLSLLS,18,17
;SEMICOLONS PRECEDING  LAST SYMBOL ON LINE


 DF ZHSSTR,0,18,17	;POINTER TO START OF SUBLIST SD&DP
 DF ZHSEND,0,18,35	;POINTER TO END OF SUBLIST
 DF ZHSAST,6,18,35	;START OFFSET ENTRY IN BLOCKSTACK
 DF ZHSOBL,5,18,17	;OWN BLOCK LENGTH


;[13]; ZRQ record (request block info) ;;

DR	ZRQ,4
 DF	ZRQSRC,0,1,0	;On if member of search list
 DF	ZRQOUT,0,1,1	;On if request block should be output to REL file
 DF	ZRQSTD,0,1,2	;On for member of standard search list
 DF	ZRQZRQ,0,18,35	;Link to next ZRQ
 DF	ZRQFIL,1,36,35	;File name
 DF	ZRQPPN,2,36,35	;ppn
 DF	ZRQDEV,3,36,35	;Device name

;[144] ZSF record (SFD path block)

DR ZSF,3		;3 words of fixed information
 DF ZSFSTR,0,36,35	;File structure for PATH. UUO
 DF ZSFSCN,1,36,35	;Scan switch
 DF ZSFPPN,2,36,35	;ppn to be used
 DF ZSFPJ,2,18,17	;project number
 DF ZSFPG,2,18,35	;programmer number
 DF ZSFSFD,3,36,35	;First SFD name (sixbit)
	END