Trailing-Edge
-
PDP-10 Archives
-
bb-kl11f-bm_tops20_v7_0_atpch1_19
-
autopatch/cobscn.c12
There are 2 other files named cobscn.c12 in the archive. Click here to see a list.
REP 22/1 ;12C1
WIT
;MJC 21-JUN-85 [1601] Remove FORTRAN edit numbers
REP 23/7 ;12C2
XJBFF: BLOCK 1 ;[1632] Holds .JBFF across compiles
XJBREL: BLOCK 1 ;[1632] Holds .JBREL across compiles
WIT
XJBFF: BLOCK 1 ; Holds .JBFF across compiles
XJBREL: BLOCK 1 ; Holds .JBREL across compiles
REP 40/9 ;12C3
GETNM ;[1612] Get the name of the program
MOVE T2,T1 ;[1612] Private name is name returned by GETNM%
WIT
GETNM ; Get the name of the program
MOVE T2,T1 ; Private name is name returned by GETNM%
REP 63/9 ;12C4
MOVE T1,.JBFF ;[1632] Save value of .JBFF across compile
MOVE T2,.JBREL ;[1632] Save value of .JBREL across compile
DMOVEM T1,XJBFF ;[1632]
WIT
MOVE T1,.JBFF ; Save value of .JBFF across compile
MOVE T2,.JBREL ; Save value of .JBREL across compile
DMOVEM T1,XJBFF ;
REP 16/10 ;12C5
MOVEI T1, .FHSLF ;[1600] OWN FORK
CIS% ;[1600] CLEAR INTERUPT SYSTEM
MOVE T2, [LEVTAB,,CHNTAB] ;[1600] ADDR OF LEVEL TAB & CHAN TAB
SIR% ;[1600] SET INTERUPT ADDRESSES
EIR% ;[1600] ENABLE INTERUPT SYSTEM
MOVE T2, .JBREL ;[1600] END OF CORE (REFERENCES PG 0)
ORI T2, 777 ;[1612] END OF PAGE-IFY
MOVEI T3, 1777 ;[1600] START AT END OF PAGE 1
APR.1: CAMLE T3, T2 ;[1612] DONE YET?
JRST APR.2 ;[1612] YES, ACTIVATE INTERUPTS
SKIP (T3) ;[1612] NO, REFERENCE THIS PAGE
ADDI T3, 1000 ;[1612] BUMP UP 1 PAGE
JRST APR.1
APR.2: MOVE T2,[CHNMSK] ;[1600] ARM PROPER CHANNELS
AIC% ;[1600] ENABLE INTERUPT CHANNELS
POPJ SREG, ;[1600]
; [1600] Blocks for TOPS-20 interupt system
; [1600] Note: all interupts happen at level 1
LEVTAB: LEV1PC ;[1600] ADDR OF LEVEL 1 PC
LEV2PC ;[1600] ADDR OF LEVEL 2 PC
LEV3PC ;[1600] ADDR OF LEVEL 3 PC
RELOC ;[1600] TO THE LOWSEG
LEV1PC: BLOCK 1 ;[1600] LEVEL 1 PC
LEV2PC: BLOCK 1 ;[1600] LEVEL 2 PC
LEV3PC: BLOCK 1 ;[1600] LEVEL 3 PC
RELOC ;[1600] BACK TO PURE STORAGE
CHNMSK==1B<.ICPOV>!1B<.ICIRD>!1B<.ICIWR>!1B<.ICNXP> ;[1600] CHANNEL MASK
CHNTAB: PHASE 0 ;[1600] *** BEWARE! ***
;[1600] The value of "." is now the current offset into the table
;[1600] instead of .-CHNTAB so you are allways <n>-. words away from
;[1600] entry <n> instead of <n>-<.-CHNTAB>
BLOCK .ICPOV-. ;[1600] (0-8)
1,,POVTRP ;[1600] (9) PDL OVERFLOW
WIT
MOVEI T1, .FHSLF ; OWN FORK
CIS% ; CLEAR INTERUPT SYSTEM
MOVE T2, [LEVTAB,,CHNTAB] ; ADDR OF LEVEL TAB & CHAN TAB
SIR% ; SET INTERUPT ADDRESSES
EIR% ; ENABLE INTERUPT SYSTEM
MOVE T2, .JBREL ; END OF CORE (REFERENCES PG 0)
ORI T2, 777 ; END OF PAGE-IFY
MOVEI T3, 1777 ; START AT END OF PAGE 1
APR.1: CAMLE T3, T2 ; DONE YET?
JRST APR.2 ; YES, ACTIVATE INTERUPTS
SKIP (T3) ; NO, REFERENCE THIS PAGE
ADDI T3, 1000 ; BUMP UP 1 PAGE
JRST APR.1
APR.2: MOVE T2,[CHNMSK] ; ARM PROPER CHANNELS
AIC% ; ENABLE INTERUPT CHANNELS
POPJ SREG, ;
; Blocks for TOPS-20 interupt system
; Note: all interupts happen at level 1
LEVTAB: LEV1PC ; ADDR OF LEVEL 1 PC
LEV2PC ; ADDR OF LEVEL 2 PC
LEV3PC ; ADDR OF LEVEL 3 PC
RELOC ; TO THE LOWSEG
LEV1PC: BLOCK 1 ; LEVEL 1 PC
LEV2PC: BLOCK 1 ; LEVEL 2 PC
LEV3PC: BLOCK 1 ; LEVEL 3 PC
RELOC ; BACK TO PURE STORAGE
CHNMSK==1B<.ICPOV>!1B<.ICIRD>!1B<.ICIWR>!1B<.ICNXP> ; CHANNEL MASK
CHNTAB: PHASE 0 ; *** BEWARE! ***
; The value of "." is now the current offset into the table
; instead of .-CHNTAB so you are allways <n>-. words away from
; entry <n> instead of <n>-<.-CHNTAB>
BLOCK .ICPOV-. ; (0-8)
1,,POVTRP ; (9) PDL OVERFLOW
REP 66/10 ;12C6
BLOCK .ICNXP-. ;[1600] (18-21)
1,,NXPTRP ;[1600] (22) NON-EXISTENT PAGE
BLOCK ^D35-. ;[1600] (23-35)
DEPHASE ;[1600] *** END OF PHASE 0 ***
WIT
BLOCK .ICNXP-. ; (18-21)
1,,NXPTRP ; (22) NON-EXISTENT PAGE
BLOCK ^D35-. ; (23-35)
DEPHASE ; *** END OF PHASE 0 ***
REP 2/11 ;12C7
; NEW [1600] /PLB
WIT
; NEW /PLB
REP 42/11 ;12C8
MOVEM T3,APRSV3 ;[1612] STORE T3
WIT
MOVEM T3,APRSV3 ; STORE T3
REP 5/12 ;12C9
NXPTRP: DMOVEM T1, APRSV1 ;[1600] SAVE REGS T1 & T2
MOVEI T1, .FHSLF ;[1600] US
GTRPW% ;[1600] GET TRAP WORD
JUMPE T1, NXP.0 ;[1600] NO ERROR ?
WIT
NXPTRP: DMOVEM T1, APRSV1 ; SAVE REGS T1 & T2
MOVEI T1, .FHSLF ; US
GTRPW% ; GET TRAP WORD
JUMPE T1, NXP.0 ; NO ERROR ?
REP 17/12 ;12C10
NOTRAP: DMOVE T1, APRSV1 ;[1600] GET REGS BACK
DEBRK% ;[1600] RETURN FROM TRAP
;[1600] FALL THRU ON ERROR
DMOVEM T1, APRSV1 ;[1600] SAVE REGS T1 & T2
WIT
NOTRAP: DMOVE T1, APRSV1 ; GET REGS BACK
DEBRK% ; RETURN FROM TRAP
; FALL THRU ON ERROR
DMOVEM T1, APRSV1 ; SAVE REGS T1 & T2
REP 24/12 ;12C11
NXP.1: HRROI T2, [ASCIZ \Illegal Memory Reference\] ;[1600] GENERIC NXM
TLNE T1, (PF%WRT) ;[1600] PAGE FAIL ON WRITE?
WIT
NXP.1: HRROI T2, [ASCIZ \Illegal Memory Reference\] ; GENERIC NXM
TLNE T1, (PF%WRT) ; PAGE FAIL ON WRITE?
REP 68/12 ;12C12
APRTR2: DMOVE T1,APRSV1 ;[1612] RESTORE REGS
MOVE T3,APRSV3 ;[1612] FOR CRASH
WIT
APRTR2: DMOVE T1,APRSV1 ; RESTORE REGS
MOVE T3,APRSV3 ; FOR CRASH
REP 197/13 ;12C13
HRROI T1,[ASCIZ \COBOL: \] ;[1603] No square bracket
WIT
HRROI T1,[ASCIZ \COBOL: \] ; No square bracket
REP 203/13 ;12C14
\] ;[1603] No square bracket
WIT
\] ; No square bracket
REP 211/13 ;12C15
DMOVE T1,XJBFF ;[1632] Restore value of .JBFF
MOVEM T1,.JBFF ;[1632]
MOVEM T2,.JBREL ;[1632] Restore value of .JBREL
WIT
DMOVE T1,XJBFF ; Restore value of .JBFF
MOVEM T1,.JBFF ;
MOVEM T2,.JBREL ; Restore value of .JBREL
REP 31/33 ;12C16
ERJMP [MOVE T1,XJBFF ;[1632] Restore value of .JBFF
MOVEM T1,.JBFF ;[1632]
MOVE T1,XJBREL ;[1632] Restore value of .JBREL
MOVEM T1,.JBREL ;[1632]
WIT
ERJMP [MOVE T1,XJBFF ; Restore value of .JBFF
MOVEM T1,.JBFF ;
MOVE T1,XJBREL ; Restore value of .JBREL
MOVEM T1,.JBREL ;
SUM 255830