perm filename GEN.MS[MEW,AIL] blob sn#091955 filedate 1974-03-19 generic text, type T, neo UTF8

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 1,1

******** GEN **** PAGE 1
1)	COMMENT ⊗   VALID 00059 PAGES VERSION 17-1(171)
1)	RECORD PAGE   DESCRIPTION
1)	 00001 00001
1)	 00011 00002	HISTORY
1)	 00028 00003		LSTON	(GEN)
1)	 00036 00004	TABLEDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
1)	 00041 00005	TABCONDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
1)	 00044 00006	DSCR GENINI
1)	 00048 00007	DSCR GETOP, GETADL, GETAD
1)	 00050 00008	DSCR -- SAIL DECLARATION EXECS
1)	 00055 00009	DSCR TYPSET, VALSET, XOWSET,  etc.
1)	 00058 00010	DSCR TCON, BTRU, BFAL, BNUL, BINF
1)	 00061 00011	DSCR TWID10, ECHK, ESET
1)	 00064 00012	DSCR DWN, BLOCK, BLNAME, ENTID, UP, NAMCHK, etc.
1)	 00072 00013	↑ENTID:	
1)	 00078 00014	
1)	 00084 00015	 Check for match on block names.
1)	 00085 00016	DSCR RQ00, RQSET, SRCSWT
1)	 00090 00017	
1)	 00092 00018	
1)	 00097 00019	
1)	 00100 00020	↑SRCSWT:
1)	 00101 00021	DSCR DFPREP, DCPREP, DWPREP, DFPINS, DFSET, DFENT, MACOFF, MACON 
1)	 00114 00022	DSCR STCAT
1)	 00125 00023	DSCR DCLNT1,DCLNT2
1)	 00131 00024	DSCR CNDRCY, CNDRCN, CNDRCP 
1)	 00138 00025	DSCR LETSET, LETENT
1)	 00141 00026	DSCR TWCOND,SWICHP,SWPOFF,PSWICH,OKEOF
1)	 00149 00027	↑SETWHL: EXCH	SP,STPSAV	 GET STRING POINTER
1)	 00162 00028		SUBTTL	EXECS for Entry Declaration
1)	 00164 00029	DSCR ALOT
1)	 00169 00030	↑ALOT:				ROUTINE TO HANDLE ALLOCATION
1)	 00173 00031	
1)	 00177 00032	BAIL <
1)	 00183 00033	
1)	 00188 00034	Comment 
1)	 00194 00035	NOSY:	PUSHJ	P,URGSTR	IF ON STRING RING....
1)	 00203 00036	LOADER BLOCK FOR POLISH FIXUP
1)	 00205 00037	DSCR PDOUT
1)	 00212 00038	DOLVIN:	PUSH	P,PNT2
1)	 00214 00039	ROUTINE TO PUT OUT LOCAL VAR INFO -- USED BY DIS
1)	 00220 00040	 %AA% -- SDFLTS
1)	 00221 00041	Allo -- Allocate One Type of Symbol
1)	 00226 00042	ROUTINE TO ALLOCATE SPACE FOR TEMP CELLS AND TO OUTPUT
1)	 00230 00043	REQINI -- USER REQUIRED INITIALIZTIONS
1)	 00235 00044	DSCR DONES
1)	 00238 00045	

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 1,1

1)	 00244 00046	REN <
1)	 00246 00047	
1)	 00250 00048	
1)	 00255 00049	MEMORY  and LOCATION EXECS, ALSO UINCLL
1)	 00258 00050	DSCR MAKBUK, FREBUK
1)	 00260 00051	BEGIN	ERRORS
1)	 00266 00052	DSCR SCNBAK,POPBAK,KILPOP,QREM2,QTYPCK
1)	 00271 00053	DSCR  UNDEC -- Undeclared identifiers
1)	 00277 00054	DSCR  QDEC0,1,2   QARSUB  QARDEC QPARM QPRDEC
1)	 00284 00055	BEGIN SCOMM
1)	 00285 00056	BEGIN  INLINE
1)	 00287 00057	DSCR CODNIT, WRDNIT, ONEWRD, SETSIX, SETOP, CODIND, CODREG, etc.
1)	 00295 00058	↑CESSGO:MOVE	TEMP,OPDUN		SAVING OPDUN
1)	 00301 00059	BEGIN COUNT
1)	 00304 ENDMK
1)	⊗;
1)	COMMENT ⊗HISTORY
1)	AUTHOR,REASON
1)	021  102100000253  ⊗;
1)	COMMENT ⊗
1)	VERSION 17-1(171) 3-17-74 BY RLS INSTALL TENEX
1)	VERSION 17-1(170) 3-16-74 BY RHT BUG #RN# PROTECT_ACS LOSSAGE
*** GEN[S,AIL] *** PAGE 1
2)	COMMENT ⊗   VALID 00059 PAGES VERSION 17-1(170)
2)	RECORD PAGE   DESCRIPTION
2)	 00001 00001
2)	 00006 00002	HISTORY
2)	 00023 00003		LSTON	(GEN)
2)	 00031 00004	TABLEDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
2)	 00036 00005	TABCONDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
2)	 00039 00006	DSCR GENINI
2)	 00043 00007	DSCR GETOP, GETADL, GETAD
2)	 00045 00008	DSCR -- SAIL DECLARATION EXECS
2)	 00050 00009	DSCR TYPSET, VALSET, XOWSET,  etc.
2)	 00053 00010	DSCR TCON, BTRU, BFAL, BNUL, BINF
2)	 00056 00011	DSCR TWID10, ECHK, ESET
2)	 00059 00012	DSCR DWN, BLOCK, BLNAME, ENTID, UP, NAMCHK, etc.
2)	 00067 00013	↑ENTID:	
2)	 00073 00014	
2)	 00079 00015	 Check for match on block names.
2)	 00080 00016	DSCR RQ00, RQSET, SRCSWT
2)	 00085 00017	
2)	 00087 00018	
2)	 00092 00019	
2)	 00095 00020	↑SRCSWT:
2)	 00096 00021	DSCR DFPREP, DCPREP, DWPREP, DFPINS, DFSET, DFENT, MACOFF, MACON 
2)	 00109 00022	DSCR STCAT
2)	 00120 00023	DSCR DCLNT1,DCLNT2

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 1,1

2)	 00126 00024	DSCR CNDRCY, CNDRCN, CNDRCP 
2)	 00133 00025	DSCR LETSET, LETENT
2)	 00136 00026	DSCR TWCOND,SWICHP,SWPOFF,PSWICH,OKEOF
2)	 00144 00027	↑SETWHL: EXCH	SP,STPSAV	 GET STRING POINTER
2)	 00157 00028		SUBTTL	EXECS for Entry Declaration
2)	 00159 00029	DSCR ALOT
2)	 00164 00030	↑ALOT:				ROUTINE TO HANDLE ALLOCATION
2)	 00168 00031	
2)	 00172 00032	BAIL <
2)	 00178 00033	
2)	 00183 00034	Comment 
2)	 00189 00035	NOSY:	PUSHJ	P,URGSTR	IF ON STRING RING....
2)	 00198 00036	LOADER BLOCK FOR POLISH FIXUP
2)	 00200 00037	DSCR PDOUT
2)	 00207 00038	DOLVIN:	PUSH	P,PNT2
2)	 00209 00039	ROUTINE TO PUT OUT LOCAL VAR INFO -- USED BY DIS
2)	 00215 00040	 %AA% -- SDFLTS
2)	 00216 00041	Allo -- Allocate One Type of Symbol
2)	 00221 00042	ROUTINE TO ALLOCATE SPACE FOR TEMP CELLS AND TO OUTPUT
2)	 00225 00043	REQINI -- USER REQUIRED INITIALIZTIONS
2)	 00230 00044	DSCR DONES
2)	 00233 00045	
2)	 00238 00046	REN <
2)	 00240 00047	
2)	 00244 00048	
2)	 00249 00049	MEMORY  and LOCATION EXECS, ALSO UINCLL
2)	 00252 00050	DSCR MAKBUK, FREBUK
2)	 00254 00051	BEGIN	ERRORS
2)	 00260 00052	DSCR SCNBAK,POPBAK,KILPOP,QREM2,QTYPCK
2)	 00265 00053	DSCR  UNDEC -- Undeclared identifiers
2)	 00271 00054	DSCR  QDEC0,1,2   QARSUB  QARDEC QPARM QPRDEC
2)	 00278 00055	BEGIN SCOMM
2)	 00279 00056	BEGIN  INLINE
2)	 00281 00057	DSCR CODNIT, WRDNIT, ONEWRD, SETSIX, SETOP, CODIND, CODREG, etc.
2)	 00287 00058	↑CESSGO:MOVE	TEMP,OPDUN		SAVING OPDUN
2)	 00293 00059	BEGIN COUNT
2)	 00296 ENDMK
2)	⊗;
2)	COMMENT ⊗HISTORY
2)	AUTHOR,REASON
2)	021  102100000252  ⊗;
2)	COMMENT ⊗
2)	VERSION 17-1(170) 3-16-74 BY RHT BUG #RN# PROTECT_ACS LOSSAGE


******** GEN **** PAGE 6
1)	;No RAID on TENEX and $M causes UNDEF GLOBAL loading errors
1)	NOTENX <

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 6,6

1)	IFN FTDEBUG <
1)		MOVE TEMP,BITABLE
1)		EXTERNAL $M
1)		MOVEM	TEMP,$M+3	;RAID LOC
1)	>;IFN FTDEBUG
1)	>;NOTENX
1)	; ***** THIS CODE MOVED TO LEAP
*** GEN[S,AIL] *** PAGE 6
2)	IFN FTDEBUG <
2)		MOVE TEMP,BITABLE
2)		EXTERNAL $M
2)		MOVEM	TEMP,$M+3	;RAID LOC
2)	>
2)	; ***** THIS CODE MOVED TO LEAP


******** GEN **** PAGE 26
1)	;; #RA# (1 OF 1)
1)		SETOM	EOFCEL		;
1)		POPJ	P,		; BUT SCANNER SOMETIMES HAS TO TURN IT OFF
*** GEN[S,AIL] *** PAGE 26
2)	;; #RA# (1 OF 1) ! 
2)		SETOM	EOFCEL		; 
2)		POPJ	P,		; BUT SCANNER SOMETIMES HAS TO TURN IT OFF


******** GEN **** PAGE 29
1)	THSLVL:	0
1)	ENDDATA
*** GEN[S,AIL] *** PAGE 29
2)	ENDDATA


******** GEN **** PAGE 30
1)		MOVEM	TEMP,THSLVL
1)		HRRZ	LPSA,ADRTAB	;ADDRESS CONSTANTS.
*** GEN[S,AIL] *** PAGE 30
2)		MOVEM	TEMP,THSLVL#
2)		HRRZ	LPSA,ADRTAB	;ADDRESS CONSTANTS.


******** GEN **** PAGE 35
1)	IMSSS<
1)		TRNE	TBITS,ITEM			;IS IT AN ITEM AT IMSSS?
1)		  TLO	A,400000			;YES, TURN OFF PRINTOUT DDT
1)	>;IMSSS
1)		TRNE	TBITS,ITEM
*** GEN[S,AIL] *** PAGE 35

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 35,35

2)		TRNE	TBITS,ITEM


******** GEN **** PAGE 45
1)	NOTENX <
1)		MOVEI	TBITS2,LSTCDB		;GET FILE NAME
1)		MOVE	A,CFIL(TBITS2)
1)	>;NOTENX
1)	TENX <;WE WANT THE SIXBIT NAME OF THE LST FILE IN AC A
1)	ZERODATA
1)	LISFLN:	BLOCK 11
1)	ENDDATA
1)		PUSH	P,B
1)		PUSH	P,C
1)		PUSH	P,D
1)		HRROI	A,LISFLN	
1)		HRRZ	B,LISJFN		;SET UP IN CC
1)		MOVSI	C,002000		;PRINT NAME ONLY
1)		JSYS	JFNS			;GET THE NAME
1)		MOVEI	C,6
1)		SETZ	A,			;ACCUMULATE SIXBIT HERE
1)		MOVE	B,[POINT 7,LISFLN,-1]
1)	SIXLUP:	ILDB	D,B			;GET A BYTE
1)		SKIPE	D
1)		  SUBI	D,40			;CONVERT TO SIXBIT
1)		LSH	A,=6			;MOVE OVER
1)		ADD	A,D			;ADD IN
1)		SOJG	C,SIXLUP
1)		POP	P,D			
1)		POP	P,C
1)		POP	P,B
1)	>;TENX
1)		TLZ	FF,RELOC		;DON'T RELOCATE IT
*** GEN[S,AIL] *** PAGE 45
2)		MOVEI	TBITS2,LSTCDB		;GET FILE NAME
2)		MOVE	A,CFIL(TBITS2)
2)		TLZ	FF,RELOC		;DON'T RELOCATE IT


******** GEN **** PAGE 53
1)	ZERODATA 
1)	↑↑QQFLAG:0
1)	↑↑QQBLK: 0 
1)	ENDDATA
1)	DSCR  QDEC0,1,2   QARSUB  QARDEC QPARM QPRDEC;
*** GEN[S,AIL] *** PAGE 53
2)	↑↑QQFLAG:0
2)	↑↑QQBLK: 0 

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 53,53

2)	DSCR  QDEC0,1,2   QARSUB  QARDEC QPARM QPRDEC;


******** GEN **** PAGE 56
1)	NOTENX <
1)	TNAME:	OPNAME
1)		'OPS   '
1)	TWORD3: 0
1)	TPPN:	OPPPN
1)	>;NOTENX
1)	ENDDATA
*** GEN[S,AIL] *** PAGE 56
2)	TNAME:	OPNAME
2)		'OPS   '
2)	TWORD3: 0
2)	TPPN:	OPPPN
2)	ENDDATA


******** GEN **** PAGE 57
1)	NOTENX <
1)		SKIPE	B,INSTBL		;TABLE IN CORE?
*** GEN[S,AIL] *** PAGE 57
2)		SKIPE	B,INSTBL		;TABLE IN CORE?


******** GEN **** PAGE 57
1)	>;NOTENX
1)	TENX<
1)		SKIPE	INSTBL			;TABLE READ IN?
1)		  JRST	TABLIN			;YES
1)		PUSH	P,A
1)		HRROI	B,[OPFILE]
1)		HRLZI	A,100001		;OLD FILE, SHORT FORM
1)		JSYS	GTJFN
1)		  ERR	<CAN'T FIND OPFILE>
1)		
1)		HRLI	A,400000		;XWD FORK, JFN
1)		JSYS	GET			;OPFILE IS SSHARED
1)		SETOM	INSTBL			;MARK THAT THE TABLE IS HERE
1)		POP	P,A
1)	>;TENX
1)	TABLIN:	
1)	Comment ⊗ 
1)		B pnts to  current table entry (LH IS -COUNT)
1)		A is soon be sixbit for OPcode being sought
1)	⊗
1)	NOTENX<

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 57,57

1)		MOVE	D,[CAME A,(B)]		;SET UP QUICK SEARCH LOOP
*** GEN[S,AIL] *** PAGE 57
2)	TABLIN:	
2)	Comment ⊗ 
2)		B pnts to  current table entry (LH IS -COUNT)
2)		A will soon be sixbit for OPcode being sought
2)	⊗
2)		MOVE	D,[CAME A,(B)]		;SET UP QUICK SEARCH LOOP


******** GEN **** PAGE 57
1)	>;NOTENX
1)	TENX<
1)	COMMENT !
1)		In TENEX, the opcode table is created by MAKTAB.TNX to
1)	be a SSAVEd file.  It consists of the operations names (in sixbit),
1)	their opcodes, in bucket-driven link lists.
1)		!
1)	OPBUKT←←=307				;NUMBER OF BUCKETS
1)	BUKPAG←←600				;STARTING PAGE FOR OPTABLE
1)	BUKTST←←BUKPAG*1000			;STARTING ADDR FOR BUCKETS
1)		MOVM	B,A			;ABS(OPCODE)
1)		IDIVI	B,OPBUKT		;COMPUTE BUCKET NUMBER IN C
1)		MOVE	B,BUKTST(C)		;GET BUCKET POINTER
1)				
1)	TABLI1:	CAMN	A,(B)			;IS THIS THE RIGHT OPCODE?
1)		  JRST	FNDOPC			;YES	  
1)		SKIPN	B,2(B)			;CDR DOWN LIST, ARE WE TO NIL
1)		  JRST	UNFNDOP			;YES, NO MORE	
1)		JRST	TABLI1			;NO, KEEP GOING
1)	FNDOPC:	MOVE	B,1(B)			;PICK UP THE OPCODE
1)		MOVEM	B,GENRIG		;STORE FOR A WHILE
1)		MOVE	TEMP,%OPC		;MARK OPCODE FOUND
1)		MOVEM	TEMP,PARRIG		;SAVE FOR PARSER
1)	UNFNDOP: POPJ	P,			;RETURN, ANSWER IN B
1)	>;TENX
1)	↑CESSGO:MOVE	TEMP,OPDUN		;SAVING OPDUN
*** GEN[S,AIL] *** PAGE 58
2)	↑CESSGO:MOVE	TEMP,OPDUN		;SAVING OPDUN


******** GEN **** PAGE 58
1)	NOTENX<
1)		DPB	A,[POINT 9,OPCOD,8]	;OPCOD POSITION
1)	>;NOTENX
1)	TENX<
1)		MOVEM	A,OPCOD			;36-BIT OPCODE
1)	>;

	1) GEN vs. 2) GEN[S,AIL]	SRCCOM	03-19-74	02:06	PAGES 58,58

1)		POPJ	P,
*** GEN[S,AIL] *** PAGE 58
2)		DPB	A,[POINT 9,OPCOD,8]	;OPCOD POSITION
2)		POPJ	P,