.TITLE TRPHDL ; ; TRAP HANDLER CODE FOR OBJECT CODE DISASSEMBLER ; ; MACRO CALLS USED HERE .MCALL PUT$ DIR$ CLOSE$ ; ; GLOBALS DEFINED ELSEWHERE .GLOBL OUTFDB FILFDB ENDPRC STKSAV DETACH ; DEFINE TRAP CODES GLOBALLY TE.GCM==1 ;GCML ERROR TE.CSI==2 ;CSI ERROR TE.OPI==3 ;ERROR OPENING INPUT FILE TE.OPO==4 ;ERROR OPENING OUTPUT FILE TE.INP==5 ;ERROR READING INPUT FILE TE.OUT==6 ;ERROR WRITING OUTPUT FILE TE.RTP==7 ;RECORD TYPE ERROR TE.PSC==10 ;TOO MANY PSECTS FOR PROGRAM TE.PSE==11 ;PSECT NOT IN REQUIRED RANGE TE.URL==12 ;UNEXPECTED RLD TYPE TE.RLF==13 ;RLD TYPE ERROR IN FINISHING TE.RAM==14 ;RLD - ASCII BUFFER MISMATCH TE.LSF==15 ;LIBRARY SEARCH FAILURE ; PARLST: .BLKW 3 STR1: .ASCIZ /TRAP # %O AT PC= %P, PS= %P/ FILMSG: .ASCII /ABNORMAL TERMINATION/ FILEND: .EVEN .GLOBL TRPHDL TRPHDL: MOV (SP)+,PARLST ;ERROR CODE IN PARAM LIST ASR PARLST ;DIVIDE BY 2 TO GET ORIGINAL CODE MOV (SP)+,PARLST+2 MOV (SP)+,PARLST+4 JSR PC,DETACH PUT$ #OUTFDB,#FILMSG,#FILEND-FILMSG MOV #MOB,R0 ;START OF OUTPUT STRING MOV #STR1,R1 ;START OF FORMAT STRING MOV #PARLST,R2 ;START OF PARAMETERS CALL $EDMSG ;EDIT AND STORE PUT$ #MOFDB,#MOB,R1 MOV STKSAV,SP ;RESTORE ORIGINAL STACK JMP ENDPRC ;GO FINISH AND RE-PROMPT .END