Trailing-Edge
-
PDP-10 Archives
-
bb-kl11c-bm_tops20_v6_1_atpch1_16
-
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