Trailing-Edge
-
PDP-10 Archives
-
bb-d868e-bm_tops20_v41_2020_dist_1of2
-
language-sources/noonce.mac
There are 18 other files named noonce.mac in the archive. Click here to see a list.
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1977,1978 BY DIGITAL EQUIPMENT CORPORATION
TITLE LOONCE - BLISS-10 COMPILER INITIALIZATION
;FILENAME: LOONCE.MAC
;DATE: 21 DECEMBER 73 CMU/MGM/FLD/KR
; REVISION HISTORY
; 12-29-77 POC TABLE IS EXTENDED TO ADD KI10 INSTRUCTION SET TO
; KA10 INSTRUCTION SET. THE SIZE OF POC TABLE IS ALSO
; INCREASED.
; 5-10-77 CHARACTER TYPE TABLE IS LOADED INTO LOWSEG
; BECAUSE "_" IS AN ALPHACHARACTER IN BLS36C
; AND ASSIGNMENT IN BLISS-10.TYPE TABLE GETS MODIFIED
; UNDER BLS36C SWITCH."_" IS MADE AS ALPHACHARACTER IN
; ROUTINE SWITCHER AND USED IN SKAN ROUTINE.
;---------------------------------------------------------------------
;*********************************************************************
;
;
; BLISS COMPILER "ONCE-ONLY" MODULE
; -------------------------------------
;
; THIS FILE CONTAINS THE CODE TO INITIALIZE THE MAJOR BLISS COMPILER
; TABLES (EG., THE SYMBOL TABLE).IT IS INVOKED ONLY ONCE FOR EACH
; TIME THE COMPILER IS LOADED.
; MANY OF THE VARIABLES DECLARED "EXTERNAL" IN OTHER MODULES ARE
; DEFINED HERE. IN PARTICULAR THE MASTER TABLE, "TABLE", IS DECLARED
; HERE IN SUCH A WAY THAT IT OVERWRITES THE ONCEONLY CODE.
;
;
;
;*********************************************************************
;---------------------------------------------------------------------
; REVISION HISTORY
; 1/26/77 GLOBAL DLCNT ADDED (NUMBER OF DELETE CHARACTERS FOUND
; IN THE INPUT LINE).
; ADD LOAD& AND LIBRARY& KEYWORDS TO THE SYMBOL TABLE.
;
LOONV=: 16 ;MODULE VERSION NUMBER
TWOSEG
RELOC 0 ; LOWSEG
;************* V E R S I O N N U M B E R *******************
LASTED==:0 ;LAST EDITOR
;0 = DEC SOFTWARE DEV
;1 = OTHER DEC
;2-4 = CUSTOMER
;5-7 = CUSTOMER OF CUSTOMER
MAJVER==:7 ;MAJOR VERSION NUMBER
MINVER==:5 ;MINOR VERSION NUMBER
EDNUM==:^D151 ;EDIT NUMBER
LOC 137 ; .JBVER
EXP <LASTED>B2+<MAJVER>B11+<MINVER>B17+<EDNUM>
RELOC
SALL ; SUPPRESS MACRO EXPANSIONS
;EXTERNAL DECLARATIONS
;---------------------
EXTERNAL STINSERT, ERROR, INSTVECTOR, .JBREL ;%2.29%
EXTERNAL SLEAVE,SDECLABEL,SREQUIRE ;V2H
EXTERNAL SLOAD,SLIBRARY
EXTERNAL SPAROPEN,SSELECT,SCREATE,SEXCHJ
EXTERNAL SCOMPOUND,SCASE,SREP,SIF,SSET,SWU,SDO,SPLIT
EXTERNAL SLOCAL,SREGISTER,SOWN,SGLOBAL,SEXTERNAL,SFUNCTION
EXTERNAL SROUTINE,SSTRUCTURE,SMAP,SBIND,SMACRO,SMODHEAD,SFORWARD,SLINKAGE
EXTERNAL SMACHOP,SSWITCHES, SESCAPE,SALLMACHOP,SUNDECLARE
EXTERNAL GOR,GXOR,GEQV,GAND,GNOT,GLSS,GLEQ,GEQL,GNEQ
EXTERNAL GGEQ,GGTR,GMOD,GDIV,GSLSH
EXTERNAL GSTO,GADD,GSUB,GLSH,GDOT,GAT,SPTR,SSQOPEN,GMUL
; REGISTER USAGE
; --------------
$S=0 ; S-REG PTR TO TOP OF STACK
$F=:2 ; F-REG PTR TO ACTUAL PARAMETERS AND LOCAL VARIABLES
$V=:3 ; V-REG CONVEYOR OF ROUTINE VALUE
R1==3 ; V-REG CONVEYER OF ROUTINE VALUE
T1=R1+1 ; T1-T4 ARE HIGHLY TEMPORARY AND ARE NEVER SAVED
T2=T1+1
T3=T2+1
T4=T3+1
R2=T4+1 ; R2-R10 ARE GENERAL REGISTERS WHICH MUST BE SAVED
R3=R2+1 ; IN THE PROLOGS OF ROUTINES WHICH USE THEM
R4=R3+1
R5=R4+1
R6=R5+1
R7=R6+1
R8=R7+1
; MACROS FOR ROUTINES
DEFINE DUMMY(X)<X>
DEFINE RCALL(R,A)<
$A==0
IRP A,<$A==$A+1
PUSH $S,A>PUSHJ $S,R
IFN $A,<SUB $S,[<$A>B17+$A]>>
DEFINE ROUTINE(R,A)<
ENTRY R
R:
PUSH $S,$F
HRRZ $F,$S
$N==1
$A==0
IRP A,<$A==$A+1>IRP A<F.'A==DUMMY\$N-$A-2
DEFINE A<F.'A($F)>
$N==$N+1>$N==1>
DEFINE SAVREG(R)<
IRP R,<PUSH $S,R
$N==$N+1>>
DEFINE RETURN(NL,R)<
IFN NL,<SUB $S,[<NL>B17+NL]>
IRP R,<POP $S,R>POP $S,$F
POPJ $S,>
DEFINE BLKXIT(NL)<
$N==$N-NL
IFN NL,<SUB $S,[<NL>B17+NL]>>
; MACROS TO INIT TABLES
DEFINE IST(STRING,LEX,ROUTINE)<
RCALL(CONVT,[[ASCIZ/STRING/]])
RCALL(STINSERT,<[0],<[XWD LEX,ROUTINE]>>)
>
DEFINE IDT(CODE,LEX,ROUTINE)<
XDUMMY==CODE
IFGE XDUMMY-133, <XDUMMY==XDUMMY-32>
IFGE XDUMMY-72, <XDUMMY==XDUMMY-12>
MOVE T1,[XWD LEX,ROUTINE]
MOVEM T1,DT+XDUMMY-40
>
DEFINE IDT2(CODE,LEX,ROUTINE)<
XDUMMY==CODE
IFGE XDUMMY-133, <XDUMMY==XDUMMY-32>
IFGE XDUMMY-72, <XDUMMY==XDUMMY-12>
MOVE T1,[XWD LEX,ROUTINE]
MOVEM T1,DT+XDUMMY
>
DEFINE IOCE(X)<
IRP X,<ASCII X>>
DEFINE ISTG(STRING,TYP,ADINFO)<
MOVEI R1,[ASCIZ/STRING/]
RCALL(CONVT,R1)
MOVEI R1,TYP
LSH R1,1
ADDI R1,1
LSH R1,17
RCALL(STINSERT,<R1,[ADINFO]>)>
; DECLARATION OF THE VARIABLES DECLARED "EXTERNAL" IN OTHER MODULES
; -----------------------------------------------------------------------
DEPTH==:2000 ; MAX NUMBER OF WORDS FOR STACK
DDEPTH==1000 ; MAX NUMBER OF WORDS FOR DUMP STACK
HTSIZE==^D125 ; SIZE OF SYMBOL HASH TABLE
EXPHTSIZE==^D31 ; SIZE OF EXTERNAL EXPRESSION HASH TABLE
DTSIZE==100 ; SIZE OF DELIMITER TABLE
PTMASK==777
LTMASK==777
AVLSZ==1000
FLAGS=:BXA+12
DEFINE DECLARE(X)<IRP X<
X:: BLOCK 1>>
DEFINE VECDEC(X,N)<
X:: BLOCK N>
AVL:: BLOCK <AVLSZ-DDEPTH>
TSTACK:: BLOCK DDEPTH
; HERE'S THE CHARACTER TYPE TABLE
; -------------------------------
TYPEDOPE:: ; POINTERS TO THE TABLE
POINT 4, TYPETAB, 3
POINT 4, TYPETAB, 7
POINT 4, TYPETAB, 11
POINT 4, TYPETAB, 15
POINT 4, TYPETAB, 19
POINT 4, TYPETAB, 23
POINT 4, TYPETAB, 27
POINT 4, TYPETAB, 31
TYPETAB: ; TYPE TABLE
BYTE(4)17,17,17,16,17,17,17,11 ; 0- 7
BYTE(4)17,17,17,17,17,05,17,17 ; 10-17
BYTE(4)17,17,17,17,17,17,17,17 ; 20-27
BYTE(4)17,17,17,17,17,17,17,17 ; 30-37
BYTE(4)17,05,03,04,07,06,02,03 ; 40-47
BYTE(4)07,07,07,07,07,07,07,07 ; 50-57
BYTE(4)00,00,00,00,00,00,00,00 ; 60-67
BYTE(4)01,01,07,07,07,07,07,10 ; 70-77
BYTE(4)07,02,02,02,02,02,02,02 ; 100-107
BYTE(4)02,02,02,02,02,02,02,02 ; 110-117
BYTE(4)02,02,02,02,02,02,02,02 ; 120-127
BYTE(4)02,02,02,07,07,07,07,07 ; 130-137
BYTE(4)03,02,02,02,02,02,02,02 ; 140-147
BYTE(4)02,02,02,02,02,02,02,02 ; 150-157
BYTE(4)02,02,02,02,02,02,02,02 ; 160-167
BYTE(4)02,02,02,17,17,17,17,17 ; 170-177
;THE ABOVE ARE NOT ZEROED IN ONCE AS PART OF THE "FIXED DATA BLOCK"
DECLARE(<SFDB>) ; NOTE: THIS MUST BE THE FIRST DECLARE FOR ALL STORAGE
; WHICH IS TO BE ZEROED AT ONCE-ONLY TIME
; THESE ARE FOR THE MACROS
VECDEC(MCBUFF,3)
DECLARE(<LABIND>) ;V2H - STE INDEX OF LABEL CHAIN ENCOUNTERED BY
;V2H - EXPRESSION OR SOPERATOR.
DECLARE(<GLLIST>) ;%2.34% INDEX OF FIRST ENTRY IN GLOBAL SYMBOL TABLE
DECLARE(<STEMC,FBLKMC,BODYMC,POSIT,POSITC,FORGET>)
DECLARE(<SAVJBREL>)
DECLARE(<HOLD,STRINFIXED,ERRORFOUND,WARNINGFOUND,ERRLEVEL,PGSL>)
DECLARE(<CODETOG,MHTIME>)
DECLARE(<SESTOG,FREEVHEADER>)
DECLARE(<DEVBPT,VALIDBUF>)
DECLARE(<AMNTFREE>)
DECLARE(<NOGBGCOL,NORECVAL,MODLENGTH,NODISC>)
DECLARE(<SREG,BREG,FREG,VREG,MODREGM,SVREGM,HITREGM,LAHTR,LOADECREG,OPTTOREGADDR,JSPREG,VTARGET>)
DECLARE(<NOSVR,RESREGM,NOCSAV,NOPSAV>)
DECLARE(<FUNCTIONLEVEL,BLOCKLEVEL,FCNSTATE,REGUSE,NOSAVREG>)
DECLARE(<NLINES,DLCNT>)
DECLARE(<CHAR,VAL,ACCUMLENGTH,MACRODEF,PACCUM,PBUFF,PSTRING>)
DECLARE(<SYM,DEL,FUTSYM,FUTDEL,STRHED,FSTRHED>)
DECLARE(<NCBUFF,UNDECLEX>)
DECLARE(<ENLEX>)
DECLARE(<NEXTLOCAL,MAXLOCAL,NEXTGLOBAL,NEXTOWN>)
DECLARE(<BUFPT1,BUFPT2,PTLNK>)
DECLARE(<CODEPTR,CODEPROP,PROGRAM,PGM,GENSYMS,SFORLABEL>)
; DECLARE(<PRTOG>)
; DECLARE(<LTFULL,EXECFORSPACE,COMPILERERROR,EXPANDMACRO,MAXSTRING>)
; DECLARE(<LOSE>)
; DECLARE(<TRSX,TRFX,TRTX,TRPX,TRJX,TRKX,TRLX,TRNX>)
DECLARE(<FCNLIST>)
DECLARE(<GTL,OTL,GTP>)
DECLARE(<LOC2,LOCC,ETP,ETL,MNAME>)
DECLARE(<LINCNT>)
DECLARE(<TYPE,QUOTETYPE>)
DECLARE(<NREG>)
DECLARE(<XNCBUFF,XHED>)
DECLARE(<RETOT>) ; TOPOFTABLE FOR RE-INIT
DECLARE(<NSYM,NDEL,NFUTSYN,NFUTDEL>)
DECLARE(<BEGCPU,BEGTIME>)
DECLARE(<CHANGE,JMPING>)
DECLARE(<STRSTE,INCA,NUMPARS,INCASIZE,STE,SIZE>)
DECLARE(<STELIST,STELAST,STRLXS>)
DECLARE(<OFLAGS,OTYPE,OPAR,OFUN,OEQL,OASS>)
DECLARE(<SERRPOS,SERRSTE>)
DECLARE(<TRBLEVEL,TGRBLEVEL,PTOVECTOR,STRDEF,CURST,CURSTI>)
DECLARE(<LXOPEP,LXPLUS,LXCLOP,LXOPEA,LXCOMMA,LXCLOA>)
DECLARE(<SSTREX,STREXP,CURSTE,CURSTAP,CURSTNP,MUSTDU>)
DECLARE(<INDECS,REALFS,REALS,MAPTB>)
DECLARE(<ENTHED,NUMENT,LSTART,PLHEAD,PLNEXT,PLBOOL>)
DECLARE(<OWNHEAD,GLOHEAD,OWNBLK,GLOBLK,STUTYPE,REGASSN,ZFLAG>)
DECLARE(<NOMOREINPUT,NEEDDISP,ORG2,HIORG>)
DECLARE(<CSTI,CSTIL>)
DECLARE(<STKSTAT,TIMSTAT>)
; TIMSTAT MUST <MUST!> FOLLOW STKSTAT
VECDEC(FNSTAT,2)
VECDEC(WDVECTOR,2)
VECDEC(BXA,20)
DECLARE(<DEBFLG>) ; FLAG FOR DEBUG LINKAGE
DECLARE(<B20FLG>) ; FLAG FOR BLISS-20C INTERFACE
VECDEC(MMC,3)
; VECDEC(POC,130)
; VECDEC(OCE,40)
; VECDEC(MPOCDV,10)
; VECDEC(TYPETAB,21)
; VECDEC(TYPEDOPE,10)
VECDEC(BUF1,24)
VECDEC(BUF2,24)
; VECDEC(EBUF,2)
; VECDEC(IBUF,3)
; VECDEC(OBUF,3)
; VECDEC(Q.BUFF,3)
; VECDEC(PDBUF,20)
VECDEC(SACCUM,2) ;V2G- TO SAVE THE CONTENTS OF ACCUM ON A HOLD
VECDEC(ACCUM,^D28)
VECDEC(GNAMES,9)
VECDEC(MNAM,2)
VECDEC(RREG,5)
VECDEC(BUFF,^D30) ;ALLOW UP TO 145 CHARS PER LINE PLUS ONE WORD FOR TERMINATORS
VECDEC(STRING,^D28)
VECDEC(XHT,HTSIZE)
VECDEC(EXPHT,EXPHTSIZE)
VECDEC(HT,HTSIZE)
VECDEC(DT,DTSIZE)
VECDEC(LT,LTMASK+2)
VECDEC(PT,2*<PTMASK+1>)
VECDEC(ART,^D20)
VECDEC(RT,^D32)
; VECDEC(TTYSPEC,3)
; VECDEC(TTYOBH,3)
; VECDEC(LPTSPEC,3)
; VECDEC(LPTOBH,3)
; VECDEC(SPECS,20)
VECDEC(GRAPHHEAD,40)
; VECDEC(REGS,20)
VECDEC(STACK,DEPTH)
VECDEC(IOBUFFERS,1100) ; SHOULD BE 300 + <<<# OF BUFFERS PER FILE> * 200> * 3>
VECDEC(PTTRANST,PTMASK+1)
; VECDEC(LTTRANST,LTMASK+2)
; VECDEC(LTREFNO,1)
; VECDEC(SEGARG,1)
; VECDEC(SEGCALL,^D9)
; VECDEC(NOWSEG)
LTNUM=10 ;%2.9% NUMBER OF LT AND LTTRANS MODULES
VECDEC(LTBASE,LTNUM) ;%2.9% BASE POINTERS FOR LT MODULES
VECDEC(LTTBASE,LTNUM) ;%2.9% BASE POINTER FOR LTTRANST MODULES
DECLARE(<TEXTHD>) ;%2.25% POINTER TO TEMP EXT LIST FROM EXPHT
DECLARE(<EXTCOUNT>) ;%2.25% COUNT OF EXTERN NAMES OUTPUT TO MACRO LIST
DECLARE(<XWDOFFSET>) ;%2.25% OFFSET OF CURRENT CONSTANT IN THIS CONSTANT AREA
DECLARE(<NEXTLAB>) ;2.25 NUMBER OF NEXT LABEL TO BE ASSIGNED
VECDEC(ONAME,2) ;2.25 THE FOLLOWING HOLDS ASCIZ MODULE SYMBOL NAMES
VECDEC(GNAME,2) ;2.25
VECDEC(FNAME,2) ;2.25
VECDEC(CNAME,2) ;2.25
VECDEC(LNAME,2) ;2.25
VECDEC(TNAME,2) ;2.25
VECDEC(PNAME,2) ;2.25
VECDEC(PTREFNO,1)
; VECDEC(ACSTOR,4)
VECDEC(RBREG,1) ; 3.36
VECDEC(RENTLEX,17)
VECDEC(RXITLEX,17)
DECLARE(<ERRDAT,ERROPEN,ERRDEV,ERRPPN>) ; 3.18
VECDEC(ERRFIL,4) ; 3.18
DECLARE(<STARTBLOCK, NOENGLISH>) ; 3.22 & 3.18
DECLARE(<COREGONE>) ; 3.24 & 3.31
DECLARE(<GBPHDR>)
EFDB: 0
RELOC 400000 ; TO HISEG
; AREAS THAT ARE NOT WRITTEN OVER BY "TABLE"
ROUTINE(CONVT,FROM)
SAVREG<R2,R3,R4>
MOVE R2,[-2]
MOVEM R2,ACCUM
MOVEM R2,ACCUM+1
MOVE R2,[POINT 7,0,34]
OR R2,FROM
SUBI R2,1
MOVE R3,[POINT 7,ACCUM-1,34]
ILDB R4,R2
CAIN R4,0
JRST .+3
IDPB R4,R3
JRST .-4
RETURN 0,<R4,R3,R2>
; HERE'S THE MACHINE MNEMONIC TABLE
; ---------------------------------
; THE TABLE IS EXTENDED SO THAT KI10 INSTRUCTIONS ARE ADDED TO
; KA10 INSTRUCTION SET. 12-29-77
DEFINE MACMNE <
IPOC(<<DFAD,DFSB,DFMP,DFDV,NULL,NULL,NULL,NULL>,
<DMOVE,DMOVN,FIX,NULL,DMOVE,DMOVN,FIXR,FLTR>,
<UFA,DFN,FSC,IBP,ILDB,LDB,IDPB,DPB>,<FAD,FADR,FSB,FSBR,FMP,FMPR,
FDV,FDVR>,<MOVE,MOVS,MOVN,MOVM,IMUL,MUL,IDIV,DIV>,<ASH,ROT,LSH,JFFO,AS
HC,ROTC,LSHC,NULL,EXCH,BLT,AOBJP,AOBJN,JRST,JFCL,XCT,MAP,PUSHJ,PUSH,P
OP,POPJ,JSR,JSP,JSA,JRA,ADD,ADDI,ADDM,ADDB,SUB,SUBI,SUBM,SUBB>,<CAI,CA
M,JUMP,SKIP,AOJ,AOS,SOJ,SOS>,<SETZ,AND,ANDCA,SETM,ANDCM,SETA,XOR,IOR>,
<ANDCB,EQV,SETCA,ORCA,SETCM,ORCM,ORCB,SETO>,<JSYS>>)
>
J==0
DEFINE IPOC(X)
<IRP X,
< J
COUNT(X) >>
DEFINE COUNT(X)
<IRP X, <J==J+1>>
MPOCDV:: MACMNE ; POINTERS TO DISP IN POC
DEFINE IPOC(X)
<IRP X,
< COUNT(X) >>
DEFINE COUNT(X)
<IRP X,
< ASCII /X/ >>
POC:: MACMNE ; ASCII FOR MACHINE MNEMONICS
OCE:: IOCE(< . ., .I., .M., .S.>)
IOCE(< . ., .I., .M., .B.>)
IOCE(< . ., .Z., .O., .E.>)
IOCE(< .N., .Z., .C., .O.>)
IOCE(< . ., .E., .A., .N.>)
IOCE(< . ., .L., .E., .LE., .A., .GE., .N., .G. >)
RELOC ; TO LOWSEG
; THE ONCE-ONLY INITIALIZATION CODE FOLLOWS
; -------------------------------------------
; THE INITIAL LOCATION OF TABLE IS PLACED HERE SO THAT THE TABLE
; WILL OVERWRITE THE ONCE-ONLY INITIALIZATION ROUTINE.
CT::TABLE::
DECLARE(<TOPOFTABLE,FREEHEAD,ENDOFSPACE,ENDLK>)
ROUTINE(ONCEONLY)
EXTERNAL .JBSA, .JBFF, .JBREL
SETZM SFDB
HRLI 3, SFDB
HRRI 3, SFDB+1
BLT 3, EFDB ; ZERO THE ENTIRE FIXED DATA BLOCK
MOVEM 7, ERRPPN ; 3.18 SAVE HOME PPN
MOVEM 11, ERRDEV ; 3.18 HOME DEVICE NAME
MOVE 3, [SIXBIT /BLIS10/] ; 3.18, ALSO ON 3-30-77
MOVEM 3, ERRFIL ; 3.18
MOVSI 3, (SIXBIT /ERR/) ; 3.18
MOVEM 3, ERRFIL+1 ; 3.18 AND EXT
HRRZ T1,.JBREL ;SAVE ORIGINAL LOW SEGMENT SIZE FOR
MOVEM T1,SAVJBREL ;SHRINKBACK AFTER EACH COMPILATION
MOVEI T1,IOBUFFERS
MOVEM T1,.JBFF
HRLM T1,.JBSA
MOVEI T1,1
MOVEM T1,FREEHEAD ; FREEHEAD_1;
MOVEI T1,4
MOVEM T1,TOPOFTABLE ; TOPOFTABLE_4;
HRRZ T1, .JBREL
SUBI T1, TABLE ; INITIAL LENGTH OF TABLE
MOVEM T1,ENDOFSPACE ; ENDOFSPACE_ SIZE (OF BASIC TABLE)
SETZM ENDLK ; ENDLK_0;
; INIT A FEW USEFUL MACHINE OPS INTI ST
ISTG MOVE,40,200
ISTG MOVEI,40,201
ISTG MOVEM,40,202
ISTG PUSH,40,261
ISTG POP,40,262
ISTG PUSHJ,40,260
ISTG POPJ,40,263
ISTG BLT,40,251
ISTG EXCH,40,250
ISTG JSR,40,264
ISTG JSP,40,265
ISTG JRST,40,254
ISTG LDB,40,135
ISTG ILDB,40,134
ISTG DPB,40,137
ISTG IDPB,40,136
ISTG IBP,40,133
IST FADR,261720,GFADR
IST FSBR,262700,GFSBR
IST FMPR,244720,GFMLR
IST FDVR,245700,GFDVR
IST FNEG,263504,GFNEG ;3.34
IST FLOAT,223504,GFLOAT ;2.21 & 3.34
IST FIX,223504,GFIX ;2.21 & 3.34
EXTERNAL GFADR,GFSBR,GFMLR,GFDVR,GFNEG,GFLOAT,GFIX
; DEFN OF THE SPL-FCN NAMES
ISTG SCANN,41,1
ISTG SCANI,41,2
ISTG REPLACEN,41,3
ISTG REPLACEI,41,4
ISTG COPYNN,41,5
ISTG COPYNI,41,6
ISTG COPYIN,41,7
ISTG COPYII,41,10
ISTG INCP,41,11
ISTG A.SHIFT,41,12 ; ASH SPECIAL FUNCTION %7-JUN-77%
ISTG ASH.,41,12 ; ASH SPECIAL FUNCTION %7-JUN-77%
ISTG ROT.,41,13 ; ROT SPECIAL FUNCTION %7-JUN-77%
ISTG LSH.,41,14 ; LSH SPECIAL FUNCTION %7-JUN-77%
; DEFN OF THE SPL-UNOP NAMES
ISTG FIRSTONE,43,0;GJFFO
ISTG ABS,43,1;GMOVM
ISTG SIGN,43,2;GSGN
ISTG OFFSET,43,3;GOFFSET !%2.10% OFFSET FUNCTION
; DEFN OF THE RESERVED WORD DELIMITERS
IST BEGIN,2560,SCOMPOUND
IST CASE,1140,SCASE
IST DECR,1100,SREP
IST IF,2140,SIF
IST IFSKIP,2141,SIF
IST INCR,2100,SREP
IST SET,7140,SSET
IST UNTIL,4140,SWU
IST WHILE,5140,SWU
IST DO,3140,SDO
IST LEAVE,3141,SLEAVE ;V2H - LEAVE ESCAPE EXPRESSSION
IST WITH,405000,0 ;V2H
IST LABEL,600001,SDECLABEL ;V2H - LABEL DECLARATION
IST CREATE,1541,SCREATE
IST EXCHJ,1542,SEXCHJ
IST LENGTH,400101,0
IST AT,400102,0
IST END,400020,0
IST OF,401000,0
IST FROM,401040,0
IST THEN,400040,0
IST TO,402040,0
IST TES,400000,0
IST ELSE,406040
IST BY,402041
IST SELECT,1540,SSELECT
IST NSET,400100
IST TESN,400200
IST ALWAYS,400260
IST OTHERWISE,400264
IST OR,340730,GOR
IST XOR,361730,GXOR
IST EQV,362730,GEQV
IST AND,320730,GAND
IST NOT,311514,GNOT
IST LSS,301710,GLSS
IST LEQ,303710,GLEQ
IST EQL,302730,GEQL
IST NEQ,306730,GNEQ
IST GEQ,305710,GGEQ
IST GTR,307710,GGTR
IST MOD,246700,GMOD
IST DIV,245700,GDIV
IST NAMES,400010,0
IST INDEXES,400011,0
IST GLOBALLY,400012,0
IST LOCAL,600020,SLOCAL
IST REGISTER,601020,SREGISTER
IST OWN,600012,SOWN
IST GLOBAL,601012,SGLOBAL
IST PORTAL,601013,SGLOBAL
IST EXTERNAL,600002,SEXTERNAL
IST FUNCTION,601024,SFUNCTION
IST REQUIRE,600003,SREQUIRE
IST LOAD.,600003,SLOAD
IST LIBRARY.,600003,SLIBRARY
IST ROUTINE,602024,SROUTINE
IST STRUCTURE,600014,SSTRUCTURE
IST MAP,601002,SMAP
IST BIND,602002,SBIND
IST MACRO,600016,SMACRO
IST TRAP,602020,ERROR
IST FORWARD,600000,SFORWARD
IST LINKAGE,600004,SLINKAGE
IST ENTXIT,604000,ERROR ;6040XX FOR LINKAGE TYPES
IST UNDECLARE,603002,SUNDECLARE
IST BREAK,1140,SESCAPE
IST RETURN,2140,SESCAPE
IST EXITLOOP,1140,SESCAPE
IST EXITCOMPOU,1141,SESCAPE
IST EXITCOMP,1141,SESCAPE
IST EXITBLOCK,1142,SESCAPE
IST EXITCONDIT,1143,SESCAPE
IST EXITCOND,1143,SESCAPE
IST EXITSELECT,2141,SESCAPE
IST EXITCASE,2142,SESCAPE
IST EXITSET,2143,SESCAPE
IST EXIT,3140,SESCAPE
IST MACHOP,602034,SMACHOP
IST ALLMACHOP,602034,SALLMACHOP
IST SWITCHES,602034,SSWITCHES
IST MODULE,2563,SMODHEAD
IST ELUDOM,400023,0
IST PLIT,5560,SPLIT
IST UPLIT,5561,SPLIT
IST(SEMICOLON,400360,0)
IDT "_",370740,GSTO
IDT "+",261720,GADD
MOVEM T1,LXPLUS
IDT "-",262700,GSUB
IDT "/",245700,GDIV
IDT "^",221700,GLSH
IDT ".",211504,GDOT ;2.21
IDT "@",212504,GAT ;2.21
IDT "\",213504,GSLSH ;2.21
IDT "(",3750,SPAROPEN
MOVEM T1,LXOPEP
IDT 74,2750,SPTR ;<
MOVEM T1,LXOPEA
IDT "[",4750,SSQOPEN
IDT 73,400060,0 ;;
IDT ")",401020,0
MOVEM T1,LXCLOP
IDT 54,401060,0 ;,
MOVEM T1,LXCOMMA
IDT 76,402020,0 ;>
MOVEM T1,LXCLOA
IDT "=",370740,GSTO ; (5.200.14) IDT "=",407020,0
IDT "]",403020,0
IDT "*",244720,GMUL
IDT ":",403060,0
IDT2 "+",261720,GFADR
IDT2 "-",262700,GFSBR
IDT2 "*",244720,GFMLR
IDT2 "/",245700,GFDVR
RCALL(INSTVECTOR)
; HERE WE SAVE THE TOP-OF-TABLE POINTER FOR RE-INITS
MOVE T1,TOPOFTABLE
HRRZM T1,RETOT ;SAVE TOP OF TABLE IN RH
MOVE T1,ENDOFSPACE
HRLM T1,RETOT ;SAVE BOTTOM OF TABLE IN LH
RETURN 0
RELOC ; TO HISEG FOR LITERALS
XLIST ; LITERALS
LIT
LIST
END ; OF THE ONCE-ONLY INITIALIZATION ROUTINE