mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 23:36:30 +00:00
URUG - GT40 debugger.
This version uses CMP Rn,(Rn)+ to add 2 to a register, which PALX complains about. However, the resulting binary is fine.
This commit is contained in:
parent
1e02a45164
commit
91cc05958e
@ -1036,6 +1036,12 @@ expect ":KILL"
|
||||
respond "*" ":midas sys3;ts carpet_syseng;carpet\r"
|
||||
expect ":KILL"
|
||||
|
||||
# URUG, GT40 debugger.
|
||||
respond "*" ":palx sysbin;_sysen2;urug\r"
|
||||
respond "=YES" "1\r"
|
||||
respond "37000" "37000\r"
|
||||
expect ":KILL"
|
||||
|
||||
# KL10 front end debugger. Put it in the same directory as the
|
||||
# "MX" IOELEV.
|
||||
respond "*" ":palx sysbin;_syseng; klrug\r"
|
||||
|
||||
@ -248,6 +248,7 @@
|
||||
- UNTALK, split-screen comm-link program.
|
||||
- UP/DOWN, check if host is online.
|
||||
- UPTIME, Chaosnet uptime server.
|
||||
- URUG, GT40 debugger.
|
||||
- USQ/TYPESQ, unsqueeze/uncram or type a file.
|
||||
- VERSA/SPOOLR, Versatec/Gould printer spooler.
|
||||
- VTTIME, display running time on the terminal.
|
||||
|
||||
211
src/sysen2/urug.27
Executable file
211
src/sysen2/urug.27
Executable file
@ -0,0 +1,211 @@
|
||||
.TITLE GT40 MICRORUG
|
||||
|
||||
R0=%0
|
||||
R1=%1
|
||||
R2=%2
|
||||
R3=%3 ;SUBROUTINE CALL LINK
|
||||
R4=%4 ;ADDRESS OF OPEN LOCATION
|
||||
R5=%5
|
||||
R6=%6
|
||||
R7=%7
|
||||
|
||||
.IF1
|
||||
.PRINT /USE BPT INSTRUCTION? 0=NO, 1=YES /
|
||||
.TTYMA A
|
||||
USEBPT==A
|
||||
.ENDM
|
||||
.PRINT /URUG STARTING ADDRESS? (USUALLY 37000) /
|
||||
.TTYMA A
|
||||
SA==A
|
||||
.ENDM
|
||||
.ENDC
|
||||
|
||||
.=SA
|
||||
BEG: MOV R0,SAVR0+2
|
||||
MOV R1,SAVR1+2
|
||||
MOV R2,SAVR2+2
|
||||
MOV R3,SAVR3+2
|
||||
MOV R4,SAVR4+2
|
||||
MOV R5,SAVR5+2
|
||||
MOV R6,SAVR6+2
|
||||
.IFZ USEBPT
|
||||
CLR @#177560 ;NO KEYBD INTERRUPT
|
||||
.ENDC
|
||||
RESUME: MOV #DISBEG,@#172000 ;START HERE AFTER NXM, ODD ADDR TRAPS
|
||||
BLOC: MOV #-1,R4
|
||||
BGE BFLUSH ;BREAKPOINT WAS SET
|
||||
CLR R4 ;SO INITIAL LF IS HAPPY
|
||||
BEG1: MOV R7,R3
|
||||
BR SCROLL
|
||||
MOV #DISL+110,R0
|
||||
RUBOUT: BIC #7,R0
|
||||
MOV #20040,R1 ;CLEAR OUT RUBBED OUT CHARS
|
||||
MOV R1,(R0)+
|
||||
MOV R1,(R0)+
|
||||
MOV R1,(R0)+
|
||||
BIC #7,R0
|
||||
GETDIG: CLR R2
|
||||
GETD1: TSTB @#177560
|
||||
BPL GETD1
|
||||
MOVB @#177562,R1
|
||||
BIC #177600,R1
|
||||
MOV R1,R5
|
||||
CMP #60,R1
|
||||
BGT SPCL ;SPECIAL CHAR, NOT A DIGIT
|
||||
CMP #71,R1
|
||||
BLT SPCL
|
||||
MOVB R1,(R0)+
|
||||
SUB #60,R1
|
||||
ASL R2
|
||||
ASL R2
|
||||
ASL R2
|
||||
ADD R1,R2
|
||||
BR GETD1
|
||||
|
||||
.IFNZ USEBPT
|
||||
HITBRK: SUB #2,(R6)
|
||||
MOV (R6)+,SAVGO+2
|
||||
MOV (R6)+,SAVPS+2
|
||||
BR BEG
|
||||
.ENDC
|
||||
SETBRK: TST BLOC+2
|
||||
BGE BLOC ;FLUSH PRIOR BKPT INSTEAD
|
||||
.IFZ USEBPT
|
||||
MOV (R2)+,BWORD1+2 ;B AT ODD LOC WILL ADDRESS ERROR
|
||||
MOV (R2),BWORD2+2
|
||||
MOV #BEG,(R2)
|
||||
MOV #137,-(R2) ;JMP @#
|
||||
.IFF
|
||||
MOV (R2),BFLUSH+2 ;B AT ODD LOC WILL ADDRESS ERROR
|
||||
MOV #3,(R2)
|
||||
.ENDC
|
||||
MOV R2,BLOC+2
|
||||
BR BEG1
|
||||
|
||||
BFLUSH:
|
||||
.IFZ USEBPT
|
||||
BWORD1: MOV #0,(R4)+
|
||||
BWORD2: MOV #0,(R4)
|
||||
CMP -(R4),-(R4)
|
||||
.IFF
|
||||
MOV #0,(R4)
|
||||
.ENDC
|
||||
COM BLOC+2
|
||||
BR AUTOPN
|
||||
|
||||
SCROLL: MOV #DISL,R0
|
||||
SCRL1: MOV 30(R0),(R0)+
|
||||
CMP #DISL+110,R0
|
||||
BNE SCRL1
|
||||
SCRL2: MOV #20040,(R0)+ ;ERASE BOTTOM LINE
|
||||
CMP #DISL+140,R0
|
||||
BNE SCRL2
|
||||
MOV #5015,-(R0)
|
||||
RETURN: CMP R3,(R3)+
|
||||
MOV R3,R7
|
||||
DPOSIT: MOV R2,@R4 ;DEPOSIT THE ARGUMENT
|
||||
MOV R7,R3
|
||||
BR FILL
|
||||
MOV #5015,-(R0)
|
||||
CHEKLF: CMP #12,R5
|
||||
BNE BEG1
|
||||
.IFZ USEBPT
|
||||
AUTOPN:
|
||||
.ENDC
|
||||
CMP R4,(R4)+
|
||||
.IFNZ USEBPT
|
||||
AUTOPN:
|
||||
.ENDC
|
||||
MOV R7,R3 ;AUTOMATICALLY OPEN A LOCATION
|
||||
BR SCROLL
|
||||
MOV #DISL+110,R0
|
||||
MOV R4,R2
|
||||
MOV R7,R3
|
||||
BR TYPNUM
|
||||
BR DOLF
|
||||
|
||||
EVEN: BIC #1,R2 ;EXAMINE ONLY EVEN LOCS
|
||||
BICB #1,-1(R0)
|
||||
EVENOK: MOV R7,R3
|
||||
BR FILL
|
||||
MOV R2,R4
|
||||
DOLF: MOV @R4,R2 ;EXAMINE LOCATION
|
||||
MOV R7,R3
|
||||
BR TYPNUM
|
||||
BR GETDIG
|
||||
|
||||
SPCL: SUB #40,R1
|
||||
BLE SPACE ;SPACE, CR, LF, SUNDRY CTRL CHARS
|
||||
MOVB R1,(R0)+
|
||||
CMP #102,R1
|
||||
BEQ SETBRK
|
||||
CMP #122,R1
|
||||
BEQ GETDIG ;R TYPED
|
||||
CMP #107,R1
|
||||
BNE RUBOUT
|
||||
BIT #6,R0 ;G TYPED
|
||||
BEQ SAVR0 ;NO ARGUMENT TYPED
|
||||
MOV R2,SAVGO+2
|
||||
SAVR0: MOV #0,R0
|
||||
SAVR1: MOV #0,R1
|
||||
SAVR2: MOV #0,R2
|
||||
SAVR3: MOV #0,R3
|
||||
SAVR4: MOV #0,R4
|
||||
SAVR5: MOV #0,R5
|
||||
SAVR6: MOV #0,R6
|
||||
.IFZ USEBPT
|
||||
SAVGO: MOV #BEG,R7
|
||||
.IFF
|
||||
SAVGO: CMP #BEG,R7
|
||||
SAVPS: MOV #0,-(R6) ;"R8" = PS
|
||||
MOV #DISBEG,@#172000 ;"R9" = DPC
|
||||
MOV SAVGO+2,-(R6)
|
||||
RTI
|
||||
.ENDC
|
||||
SPACE: BIT #7,R0
|
||||
BEQ CHEKLF ;NO ARGUMENT TYPED
|
||||
CMP #DISL+110+20,R0
|
||||
BLT DPOSIT
|
||||
CMPB #122,DISL+110 ;WAS FIRST CHAR R?
|
||||
BNE EVEN
|
||||
ASL R2 ;SPECIAL FUDGE FOR REGISTERS
|
||||
ASL R2
|
||||
ADD #SAVR0+2,R2
|
||||
BR EVENOK
|
||||
|
||||
TYPNUM: MOV #100000,R1
|
||||
LUP1: MOVB #57,(R0)
|
||||
LUP2: INCB (R0)
|
||||
SUB R1,R2
|
||||
BPL LUP2
|
||||
ADD R1,R2 ;SETS C
|
||||
ADC R0 ;CLEARS C AND UPDATES R0
|
||||
ROR R1
|
||||
ASR R1
|
||||
ASR R1
|
||||
BNE LUP1
|
||||
FILL1: MOVB #40,(R0)+
|
||||
FILL: BIT #7,R0
|
||||
BNE FILL1
|
||||
BR RETURN
|
||||
.=.+<-.&7> ;GET DISL ON 8N BOUNDARY
|
||||
DISL: .REPT 13
|
||||
20040 ;SPACE SPACE
|
||||
.ENDR
|
||||
5015 ;CR LF (REVERSED)
|
||||
.ASCII \ THIS IS THE 1000-BYTE\
|
||||
5015
|
||||
.ASCII \ MICRORUG DEBUGGER FOR\
|
||||
5015
|
||||
.ASCII \ THE GT-40! MIT AI LAB\
|
||||
5015
|
||||
DISBEG: 170000 ;LSR A
|
||||
117000 ;SGM POINT, INT 4
|
||||
40000 ;INTEN, X
|
||||
1000 ;Y
|
||||
100000 ;SGM CHAR
|
||||
160000 ;JUMP
|
||||
DISL
|
||||
|
||||
.END
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user