.NLIST TTM .TITLE PRGERR - PROGRAM ERROR PROCESSOR .SBTTL PRGERR - TITLE PAGE .PSECT ERRORS,RO,I .IDENT /V01.00/ ; ; ************************************************************************ ; * ; THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS ONLY. DIGITAL EQUIPMENT * ; COMPUTER USER'S SOCIETY, DIGITAL EQUIPMENT CORPORATION, MONSANTO, AND * ; THE AUTHOR DISCLAIM ALL WARRANTIES ON THE PROGRAM, INCLUDING WITHOUT * ; LIMITATION, ALL IMPLIED WARRANTIES OF MERCHANTABLITY AND FITNESS. * ; * ; FULL PERMISSION AND CONSENT IS HEREBY GIVEN TO DECUS AND TO THE DECUS * ; SPECIAL INTEREST GROUPS TO REPRODUCE, DISTRIBUTE, AND PUBLISH AND * ; PERMIT OTHERS TO REPRODUCE IN WHOLE OR IN PART, IN ANY FORM AND * ; WITHOUT RESTRICTION, THIS PROGRAM AND ANY INFORMATION RELATING THERETO * ; * ; ************************************************************************ ; ; VERSION: V01.00 ; ; AUTHOR: RW STAMERJOHN MAPS 24-JUN-77 ; ; THIS MODULE OUTPUTS PROGRAM ERRORS MESSAGES. ; ; ASSEMBLY INSTRUCTIONS: ; ; OBJECT,LISTING=PRGERR .PAGE .SBTTL PRGERR - GLOBAL DEFINITIONS ; ; SYSTEM MACROS: ; .MCALL CALLR ; ; ; GLOBAL DECLARATIONS: ; .GLOBL ERPRGX ;PROGRAM ERROR AND EXIT. .GLOBL ERPRGR ;PROGRAM ERROR AND RETURN. ; ; GLOBAL REFERENCES: ; .GLOBL $SAVAL ;SAVE ALL REGISTERS. .GLOBL OERROR ;OUTPUT ERROR MESSAGE. .PAGE .SBTTL PRGERR - LOCAL DEFINITIONS ; ; LOCAL MACROS: ; ; NONE. ; ; LOCAL SYMBOLS: ; ; NONE. ; ; LOCAL DATA STRUCTURES. ; PRGERR: .ASCIZ /PROGRAM/ ;ERROR TYPE MESSAGE. .EVEN .PAGE .SBTTL ERPRGX * PROGRAM ERROR AND EXIT .SBTTL ERPRGR * PROGRAM ERROR AND RETURN ; ; THESE ROUTINES PROCESS A PROGRAM ERROR BY OUTPUTING A MESSAGE AND ; EXITING APPROPRIATELY. ; ; CALLING SEQUENCE: ; ; CALL BY: MOV A,-(SP) ; JSR PC,ERPRGX (OR ERPRGR) ; ; WHERE: A = ERROR MESSAGE ADDRESS. ; ; EXITS WITH: MESSAGE OUTPUT AND RETURN TO CALLER IF ENTRY AT ERPRGR. ; ; MESSAGE OUTPUT AND EXIT IF ENTRY AT ERPRGX. ; ; ERROR CONDITIONS: ; ; BECAUSE THIS IS AN ERROR PROCESSOR, ERRORS FROM THIS ROUTINE ARE IGNORED. ; ; SPECIAL NOTES: ; ; THE FORMAT OF THE MESSAGE OUTPUT IS (OPTIONAL PARTS IN BRACKETS) ; (VARIABLE PARTS IN PARENS). ; ; (TASKNAME) -- [EXITING DUE TO] PROGRAM ERROR ; (ERROR MESSAGE) ; ; ; REGISTERS: ; ; USES R0-R5 SAVES R0-R5 ; ; CALLS: ; ; $SAVAL,OERROR ; ERPRGX:: ;REF. LABEL. INC (SP) ;SET TO EXIT. ; ERPRGR:: ;REF. LABEL. MOV #10$,-(SP) ;SET RETURN ADDRESS. JSR PC,$SAVAL ;SAVE ALL REGISTERS. CLR R0 ;SET NO ERROR NUMBER. MOV #PRGERR,R1 ;GET THE ERROR TYPE MESSAGE. MOV 22(SP),R2 ;GET THE MESSAGE ADDRESS. MOV 20(SP),R3 ;GET THE ERROR PC. BIC #177776,R3 ;ONLY WANT THE EXITING BIT. CLR R5 ;SET THERE IS NO OPTIONAL LINE. CALLR OERROR ;GO PROCESSOR THE ERROR. ; ; COME HERE AFTER MESSAGE IS OUTPUT. ; 10$: MOV (SP),2(SP) ;SET RETURN ADDRESS. TST (SP)+ ;CLEAN STACK. RETURN ;RETURN TO CALLER. .END ;