Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0078/comp/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