Google
 

Trailing-Edge - PDP-10 Archives - bb-kl11f-bm_tops20_v7_0_atpch1_19 - autopatch/cobold.c12
There are 2 other files named cobold.c12 in the archive. Click here to see a list.
 INS 5/2	;12C1
	;MJC	15-JUL-85	[1602] Fix NEXT SENTENCE broken by edit 1541
	;MJC	21-JUN-85	[1600] Implement INITIALIZE for tables
 INS 24/5	;12C2
		SETZM	INIDAT##	;[1600] Initialize DATTAB pointer
		SETZM	INIVAL##	;[1600] Initialize VALTAB pointer
 INS 24/15	;12C3
		HRRZI	TB,2		;[1600]
		ADDM	TB,REPSUB	;[1600]Ref. mod uses two entrys
 INS 73/17	;12C4
		ADDM	TD,REPSUB	;[1600]Ref. mod + subscripts + additives
 INS 32/34	;12C5
		INTER.	PA103N		;[1602]Duplicate PA103. for NEXT SENTANCE
	PA103N:	SWOFF	UNCONT		;[1602]No GOTOs
		SKIPN	CH,NXTSNT	;[1602]Already defined?
		PUSHJ	PP,GETTAG	;[1602]Then don't get a new one
		ANDI	CH,077777	;[1602]
		JUMPE	CH,.-2		;[1602]Can't use tag zero
		HRRZM	CH,NXTSNT	;[1602]Save it for when we find a period
		HRLZI	TB,(CH)		;[1602]
		HRRI	TB,74		;[1602]JUMPTO OP CODE
		JRST	P198.E		;[1602]

 INS 5/134	;12C6
		;[1600]inidat defined?
		SKIPE	INIDAT		;[1600]Counter defined?
		JRST	PA811A		;[1600]Yes use old one
		;[1600]no make a -generated-initialize-counter- DATAB entry
		MOVE	TA,[XWD NAMWRD,NAMWRD+1]	; [1600]
		SETZM	NAMWRD		;[1600]
		BLT	TA,NAMWRD+4	;[1600]
		MOVE	TA,[XWD [SIXBIT /:GENERATED:INITIALIZE:COUNTER:/],NAMWRD];[1600]
		BLT	TA,NAMWRD+4	;[1600]
		PUSHJ	PP,BLDNAM	;[1600]Get a NAMTAB entry
		HLRZ	W1,TA		;[1600]Save for now
		MOVE	TA,[CD.DAT,,SZ.DAT]	;[1600]Get a basic datab entry
		PUSHJ	PP,GETENT	;[1600]
		MOVEM	TA,INIDAT	;[1600]Save the address
		DPB	W1,DA.NAM##	;[1600]Save the NAMTAB pointer
		MOVE	TB,EAS1PC##	;[1600]Get a core location
		DPB	TB,DA.LOC##	;[1600]
		AOS	EAS1PC		;[1600]Bump the PC
		HRRZI	TB,LVL.01	;[1600]Set the level
		DPB	TB,DA.LVL##	;[1600]
		HRRZI	TB,%US.1C	;[1600]1-WORD COMP
		DPB	TB,DA.USG##	;[1600]Set usage
		HRRZI	TB,%CL.NUM	;[1600]Numeric
		DPB	TB,DA.CLA##	;[1600]Set the class	
		SETOM	TB		;[1600]This is a fake entry
		DPB	TB,DA.FAK##	;[1600]
		DPB	TB,DA.DEF##	;[1600]Item is defined
		HRRZI	TB,6		;[1600]1 word = 6 characters
		DPB	TB,DA.EXS##	;[1600]External size is 1 word
		DPB	TB,DA.INS##	;[1600] so is internal size
		DPB	LN,DA.LN##	;[1600]Point errors at INITIALIZE
		DPB	CP,DA.CP##	;[1600]Line number and character position
		MOVE	CH,[XWD AS.XWD##,1]	;[1600]Put an xwd
		PUSHJ	PP,PUTAS1##	;[1600] into AS1FIL
	;	MOVE	CH,[XWD AS.CNS##,0]	;[1600]Value of zero
		HRRZI	CH,AS.CNB##	;[1600]
		PUSHJ	PP,PUTAS1	;[1600]Put it into AS1FIL
		HRRZI	CH,AS.CNB##	;[1600]
		PUSHJ	PP,PUTAS1	;[1600]Put it into AS1FIL
		MOVE	TA,[CD.VAL,,1]	;[1600]Get a valtab entry 1 word long
		PUSHJ	PP,GETENT	;[1600]
		MOVEM	TA,INIVAL	;[1600]Save VALTAB pointer
		HRRZI	TB,1		;[1600]Size is 1
		DPB	TB,VA.SIZ##	;[1600]
		HRRZI	TB,"1"		;[1600]ASCII '1'
		DPB	TB,VA.LFC##	;[1600]Store the character value
	PA811A:				;[1600]yes use old one
		HLRZ	TB,INIDAT	;[1600] DATAB for counter
		HRLZI	TA,400000	;[1600] Set operand bit
		HRRZI	TD,%US.1C	;[1600]One word comp
		DPB	TD,[POINT 4,TA,13]	;[1600]PUT USAGE IN FIRST GENFIL WORD.
		DPB	LN,[POINT 13,TA,28]	;[1600]Line number
		DPB	CP,[POINT 7,TA,35]	;[1600]Character position
		PUSHJ	PP,PUTGEN	;[1600] put it in the genfil
		HRLZI	TA,400000	;[1600] Set operand bit
		TLO	TA,GNLIT	;[1600] SET LITERAL BIT
		TLO	TA,GNNUM	;[1600] SET NUMERIC LITERAL BIT
		DPB	LN,[POINT 13,TA,28]	;[1600]Line number
		DPB	CP,[POINT 7,TA,35]	;[1600]Character position
		HLRZ	TB,INIVAL	;[1600] valtab + 1 offset
		PUSHJ	PP,PUTGEN	;[1600] Put the VALTAB entry into GENFIL
 REP 27/134	;12C7
		POPJ	PP,
 WIT
		SETZM	REPSUB		;[1600]Start counting subscripts from here
		POPJ	PP,

		INTER.	PA817.		;[1600]
	PA817.:	HRRZ	TB,REPSUB##	;[1600]The number of subs on replace item
		HRLZI	TA,400000	;[1600] Set operand bit
		TLO	TA,GNLIT	;[1600] SET LITERAL BIT
		TLO	TA,GNNUM	;[1600] SET NUMERIC LITERAL BIT
		DPB	LN,[POINT 13,TA,28]	;[1600]Line number
		DPB	CP,[POINT 7,TA,35]	;[1600]Character position
		PUSHJ	PP,PUTGEN	;[1600]Put it in genfil
		POPJ	PP,		;[1600]Done
 SUM 103388