mirror of
https://github.com/PDP-10/its.git
synced 2026-03-17 23:42:45 +00:00
89 lines
1.9 KiB
Plaintext
Executable File
89 lines
1.9 KiB
Plaintext
Executable File
.TITLE GTROS BY RICHARD C WATERS
|
||
.ENABL ABS
|
||
.REPT 64
|
||
.+2
|
||
HALT
|
||
.ENDM
|
||
;THIS IS THE INTERUPT VECTORS FOR THE SCOPE
|
||
.=320
|
||
.WORD GTROS,340,WDISAB,0,WDISAB,0
|
||
;THIS BRANCH TABLE IS USED TO LINK GTROS WITH THE USER PROGRAM
|
||
BR WEXEC
|
||
BR WREXEC
|
||
;THE FORLLOWING CODE EXECUTES THE ACTIONS CALLED FOR BY THE
|
||
;11/05.
|
||
;THE PARAMETER IS PASSED ON THE STACK.
|
||
WEXEC: MOV #WSTK,WSPTR
|
||
MOV 2(SP),SPC
|
||
RTS PC
|
||
WREXEC: MOV @WSPTR,-(SP)
|
||
JSR PC,WPOP
|
||
MOV (SP)+,SPC
|
||
RTS PC
|
||
;THE FOLLOWING CODE DECODES AND EXECUTES THE EXTENDED SCOPE
|
||
;INSTRUCTIONS
|
||
GTROS: MOV SPC,WPC
|
||
MOV @WPC,WHW2
|
||
SUB #2,WPC
|
||
MOV @WPC,WHALTC
|
||
ADD #4,WPC
|
||
BIT #10,WHALTC
|
||
IF NE ;IS A RELATIVE INSTRUCTION
|
||
ADD WPC,WHW2
|
||
ENDF
|
||
BIT #2,WHALTC
|
||
IF NE ;IS SINT(R) OR SINTH(R)
|
||
MOV WHW2,-(SP) ;THIS IS 11/05 ADDR
|
||
BIT #1,WHALTC
|
||
IF EQ ;IS SINT(R)
|
||
MOV WPC,SPC ;RESTART SCOPE
|
||
ELSE ;IS SINTH(R)
|
||
JSR PC,WPUSH
|
||
MOV WPC,@WSPTR ;STACK RETURN FOR SREXEC
|
||
ENDF
|
||
RTS PC ;GO TO 11/05
|
||
ELSE ;IS SJSR(R), SRTS, OR SJMPR
|
||
BIT #1,WHALTC
|
||
IF NE ;IS SJSR(R)
|
||
JSR PC,WPUSH
|
||
MOV WPC,@WSPTR ;STACK RETURN FOR SRTS
|
||
MOV WHW2,SPC
|
||
ELSE ;IS SRTS OR SJMPR
|
||
BIT #10,WHALTC
|
||
IF EQ ;IS SRTS
|
||
MOV @WSPTR,-(SP)
|
||
JSR PC,WPOP
|
||
MOV (SP)+,SPC
|
||
ELSE ;IS SJMPR
|
||
MOV WHW2,SPC
|
||
ENDF
|
||
ENDF
|
||
ENDF
|
||
RTI
|
||
WPUSH: SUB #2,WSPTR
|
||
CMP #WSTKB,WSPTR
|
||
IF HI ;STOP ON OVERFLOW
|
||
HALT
|
||
ENDF
|
||
RTS PC
|
||
WPOP: ADD #2,WSPTR
|
||
CMP #WSTK,WSPTR
|
||
IF LO ;STOP ON UNDERFLOW
|
||
HALT
|
||
ENDF
|
||
RTS PC
|
||
;THIS IS THE DATA AREA
|
||
WDISAB: RTI ;NOOPS SOME INTERUPTS
|
||
WSTKB: .BLKW 20 ;STACK FOR SCOPE SUBROUTINE CALLS
|
||
;TO CHANGE THE SIZE OF THE STACK JUST CHANGE THIS NUMBER ^
|
||
WSTK:
|
||
WSPTR: .WORD WSTK ;SCOPE STACK POINTER
|
||
WPC: .WORD 0 ;COPY OF THE SCOPE PC
|
||
WHALTC: .WORD 0 ;THE LDA THE SCOPE HALTED ON,
|
||
; IT CONTAINS THE EXTENDED OP CODE.
|
||
WHW2: .WORD 0 ;THIS IS THE ADDRESS AFTER THE LDA
|
||
WSNOOP: SNOOP
|
||
WSJSR: SJSR 0
|
||
STOPER:WSRTS: SRTS
|
||
.END
|
||
|