XDTCDE.MAC/-AU=EXDBT.MAC -1,3 .TITLE XDTCDE ;XDT0+ .IDENT "V02.00" .ENABL LC .SBTTL Loadable XDT debugger code ; ;************************************************************************* ; * ; Modified EXDBT source, which forms template code section for loadable * ; XDT task. This code is placed in a partition which is created at XDT * ; startup time, and is vectored to by a small pool-resident chunk of * ; code which maps to this code via KAPR6 then transfers control. * ; * ; Edit log: * ; ??-???-?? V01.00 RWS Original edit * ; 28-Oct-80 V01.01 RWS Remove GETVAL, PUTVAL * ; 13-Jul-82 V02.00 RBD Manually edited EXDBT V05.11 from the RSX-11M * ; V4.0 kit, incorporating RWS mods, a few bug * ; fixes, and additional edits required for this * ; version. Fixed problem where initial "BE:xxxxx" * ; message always went to TT0:, regardless of what * ; TT: was selected in "XDT /LOA/TER=TTn:". Made * ; TT: and LP: CSR addresses global so they could * ; be defaulted at TKB time with GBLDEF's. * ; Marked ";XDT0" * ; * ;************************************************************************* .PSECT $$$XDT RW,I,LCL,REL,CON ; Give him a p-section ; ; Set the following XDT symbols global for loading and transfer ; vectoring: ; .GLOBL XDTBEG ADR1 UIN SSTVEC SSTXDT SSTADR .GLOBL ERR DCD SGMT ODDA BPTI IOTX .GLOBL ILLI NEMT TYPE OUTB OUTS .GLOBL TKB TKS TPB TPS LPB LPS -8,8 ; -143 XDTBEG:: ;Ref Label ;XDT0 -153,153 UPC: 0 ;USER PC $7 ;XDT0 -158,158 CNST: 0 ;CONSTANT REGISTER $C ;XDT0 -189 ; ;XDT0+ ; Loadable XDT Terminal CSR's ; XDTCSR:: TTYTKS: .WORD TKS ; KB CSR TTYTKB: .WORD TKB ; KB Buffer TTYTPS: .WORD TPS ; CRT CSR TTYTPB: .WORD TPB ; CRT Buffer ; ; Loadable XDT dispatch vectors ; EXEXIT:: .WORD 0 ; Normal executive exit routine RTNXIT:: .WORD 0 ; Return from trap routine CRSXIT:: .WORD 0 ; Exit to CRASH routine ;XDT0- -212,212 + $TRTRP ;6-TRAP ;XDT0 -439,471 ; ; Loadable XDT internal stack: ; .BLKB 100 ; Allocate 100 bytes -671,671 ERR:: MOV #XDTSTK,SP ; Set the stack for sanity ;XDT0 CALL SETCN ;SET OUTPUT FOR CONSOLE -723,724 SETCN: MOV TTYTPB,OUTB ;SET OUTPUT BUFFER ADDRESS MOV TTYTPS,OUTS ;SET OUTPUT STATUS ADDRESS -993,993 JMP RTNX ;RTT MUST HAVE BEEN CHANGED TO AN RTI ;XDT0 -1070,1070 ;;;TRPI: JMP $TRTRP ; (No longer needed) ;XDT0 -1124 RTNX: MOV RTN,-(SP) ; Get instruction to exit with ;XDT0 JMP @RTNXIT ; and exit the trap. ;XDT0 -1212,1215 10$: TST (SP)+ ; Clean stack ;XDT0+ RTS R5 ; Process trap 20$: MOV (SP)+,R5 ; Get new return address JMP @EXEXIT ; Take normal executive exit ;XDT0- -1278,1278 JMP @CRSXIT ; Alternate E.P. to CRASH module ;XDT0 -1282,1282 JMP @CRSXIT ; If no crash support, just crash ;XDT0 -1457,1459 GET: TSTB @TTYTKS ;CHARACTER READY? ;XDT0 BPL GET ;IF PL NO MOVB @TTYTKB,R0 ;READ INPUT BYTE ;XDT0 -1463,1465 5$: TSTB @TTYTKS ;HAS A CHARACTER BEEN TYPED? ;MSH155/XDT0 BPL 5$ ;IF PL NO ;MSH155 MOVB @TTYTKB,R0 ;READ INPUT BYTE ;MSH155/XDT0 -1508,1512 30$: CMP OUTS,TTYTPS ;IS OUTPUT DEVICE A TERMINAL? ;MSH155/XDT0 BNE 34$ ;IF NE NO ;MSH155 TSTB @TTYTKS ;HAS A CHARACTER BEEN TYPED IN? ;MSH155XDT0 BPL 34$ ;IF PL NO ;MSH155 MOVB @TTYTKB,-(SP) ;GET THE CHARACTER ;MSH155/XDT0 -1516,1518 33$: TSTB @TTYTKS ;HAS A CHARACTER BEEN TYPED IN? ;MSH155/XDT0 BPL 33$ ;IF PL NO ;MSH155 MOVB @TTYTKB,-(SP) ;GET THE CHARACTER ;MSH155/XDT0 -1699,1700 ; ;XDT0+ ; Define symbols for load size and mark end of XDT ; XDTSIZ == <.-XDTBEG> ; Size of XDT XDTEND:: ; End of XDT .END ;XDT0- /