1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-17 23:42:45 +00:00
Files
PDP-10.its/src/mini/gtros.mac
2022-03-12 16:09:44 +01:00

89 lines
1.9 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.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