.TITLE PASS3 .IDENT /hah010/ ; ; VERSION 01 ; ; TOM GETZINGER 19-SEP-80 ; ; Modified: 14-Nov-83 hah009 ; Add support for ISD entries in STB files ; Modified: 27-Jul-85 hah010 ; Convert SELECT subroutine to support DOB as a I&D space task. ; ; THIS MODULE OUTPUTS THE DISASSEMBLED CODE ; ; MACROs ;hah010 ; ;hah010 .macro select table ;hah010 mov r0,-(sp) ;Save R0 (restored by SELECT) ;hah010 mov table, r0 ;hah010 call select ;hah010 .endm ;hah010 ; ; LOCAL DATA ; .PSECT RODATA,RO,D table: ;hah010 .BYTE RT.GSD,RT.END ;hah010 .WORD skip ; ILLEGAL ;hah010 .WORD skip ; GSD ;hah010 .WORD skip ; END OF GSD ;hah010 .WORD TXT3+1 ; TXT (CALLED) ;hah010 .WORD RLD3+1 ; RLD (CALLED) ;hah010 .word isd3+1 ; isd ;hah010 .WORD done ; END OF MODULE ;hah010 .PSECT CODE,RO .MCALL GET$S PASS3:: MOV VBN,R1 ; GET STARTING VBN MOV VBN+2,R2 MOV BYTNUM,R3 ; GET STARTING BYTE NUMBER MOV #FDBIN,R0 ; GET INPUT FDB ADDRESS CALL .POINT ; POINT TO START OF OBJECT MODULE MOV #-1,CRNPSN ; INITIALIZE CURRENT PSECT NUMBER CLR CRNADR ; AND CURRENT ADDRESS INC PASS ; SET "OUTPUT PASS" FLAG skip: GET$S #FDBIN ; GET THE NEXT RECORD MOV F.NRBD(R0),R4 ; GET RECORD LENGTH SUB #2,R4 MOV F.NRBD+2(R0),R3 ; GET RECORD ADDRESS MOV (R3)+,R1 ; GET THE RECORD TYPE bic #^C7,r1 ; Clear all but used bits select #table ;hah010 BR skip ; LOOP FOR NEXT RECORD done: CALL DASM3 ; DISASSEMBLE REMAINING TEXT CALL DMPTXT ; OUTPUT THE REST RETURN ; AND WE'RE DONE .END