Google
 

Trailing-Edge - PDP-10 Archives - bb-d868b-bm_tops20_v3a_2020_dist - 3a-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