Trailing-Edge
-
PDP-10 Archives
-
DEC_CMS-20_V1.0_SRC
-
cms/sources/ctrlc.m36
There are no other files named ctrlc.m36 in the archive.
TITLE CTRLC - BLISS36C INTERFACE TO CTRL/C HANDLER
SEARCH MONSYM
TWOSEG
;
; Facility: CMS Library Processor
;
; Abstract:
;
; This routine will perform the necessary switching and housekeeping
; functions to activate the bliss CTRL/C handler. These functions
; include register saving and restoration. The linkage to the bliss
; CTRL/C handler is via the PUSHJ Linkage. This routine performs the
; DEBRK call to dismiss the interrupt after CTRL/C processing.
; Added is the interface to all TOPS-20 interrupts. The channel
; number is passed via the stack as the only arguement.
;
; Environment: TOPS-20
;
;
; register definitions
;
$S=17 ; AC17 CONTAINS THE STACK POINTER
;
;
;
RELOC 400000
DISPAT::
EXCH 1,CHAN1
EXCH 1,ARG
EXCH 1,CHAN1
JUMPA LNKAGE
DERFIL::
EXCH 1,CHAN11
EXCH 1,ARG
EXCH 1,CHAN11
JUMPA LNKAGE
ILLINS::
EXCH 1,CHAN15
EXCH 1,ARG
EXCH 1,CHAN15
JUMPA LNKAGE
ILLMRE::
EXCH 1,CHAN16
EXCH 1,ARG
EXCH 1,CHAN16
JUMPA LNKAGE
ILLMWR::
EXCH 1,CHAN17
EXCH 1,ARG
EXCH 1,CHAN17
LNKAGE: PUSH $S,16 ; USE AC16 AS A WORK REGISTER
MOVEI 16,15 ; SET UP TO SAVE 15 REGISTERS
PUSH $S,(16) ; SAVE EACH REGISTER ON THE STACK
SOJGE 16,.-1 ; LOOP BACK AND PUT NEXT ON THE STACK
PUSH $S,ARG ; PUSH THE ARGUEMENT ONTO THE STACK
PUSHJ $S,CMSEXT## ; USE PUSHJ LINKAGE TO GET TO BLISS CTRL/C
; PROCESSING ROUTINE
SETZM 16 ; CLEAR AC16 FOR POP OPERATION
POP $S,(16) ; RESTORE AC FROM STACK
AOS 16 ; BUMP POINTER TO NEXT AC
CAIE 16,16 ; RESTORE AC15 YET?
JRST .-3 ; NO - LOOP TO THE POP AGAIN
POP $S,16 ; YES - RESTORE AC16
DEBRK ; RESUME EXECUTION OF THE INTERRUPTED ROUTINE
ARG: 0
CHAN1: 200000000000
CHAN11: 000100000000
CHAN15: 000004000000
CHAN16: 000002000000
CHAN17: 000001000000
RELOC 0
END