.TITLE UERINI .IDENT /V01/ ; ;THE PURPOSE OF THIS PROGRAM IS TO SET UP THE FORTRAN CALLING PROGRAM SO ;THAT THIS PROGRAM WILL TAKE CONTROL FROM THE OTS ERROR PROCESSOR BY ;PLACING THE LABEL "INTCEP" IN THE SST TABLE.(REF. OTS REF. MAN. SECT. 7.4) ;IF AN I/O ERROR OCCURS IN THE CALLING PROGRAM, "INTCEP" IS CALLED AND IT ;USES THE OTS OFFSETS (REF. OTS REF. MAN. SECT. 2.1.1) ALONG WITH THE LUB ;OFFSETS (REF. OTS REF. MAN. SECT. 2.2.2) AND THE FDB OFFSETS (REF. I/O ; OPERATIONS REF. MAN. APPENDIX A) TO OBTAIN INFORMATION FOR AN ERROR ;MESSAGE. THE PROGRAM "UERQIO" USES THE INFORMATION TO PRINT OUT THE MESSAGE. ; ; ROBERT KRONINGER SEPTEMBER 17,1981 ; ; THIS ROUTINE IS ASSEMBLED AS FOLLOWS: ; MAC UERINI,UERINI/-SP=DR:[11,40]FCS,F4P,dev:[grp,mem]UERINI ; ; REGISTER USAGE: R0 - USED TO GET INFORMATION FOR THE MESSAGE ; R5 - STORE MESSAGE INFORMATION ; ; MACRO CALLS .MCALL FDOF$L ; FDOF$L ;DEFINE THE FDB OFFSETS. OTSWA ;DEFINE THE WORK AREA OFFSETS. FBLOCK ;DEFINE THE LUB OFFSETS. ; ; SUBROUTINES CALLED: ; $SAVAL (SAVE ALL REGISTERS - SYSTEM LIBRARY ROUTINES SECT. 2.1) ; .PSECT UERINI .LIST MEB ; UERINI:: MOV $SST+14,SST6 ;SAVE THE OTS TRAP ADDRESS. MOV #INTCEP,$SST+14 ;PLACE LABEL "INTCEP" IN SST TABLE. RETURN ; .EVEN ; ; ;THE PURPOSE OF THIS PROGRAM IS TO INTERCEPT CONTROL OF THE ;OTS ERROR PROCESSOR WHEN AN I/O ERROR OCCURS IN THE USER'S ;PROGRAM. ONCE THIS PROGRAM HAS CONTROL, IT WILL PRINT OUT ;THE ERROR CODE AND RETURN CONTROL TO OTS. ; ; INTCEP: MOV SST6,-(SP) ;PUSH THE TRAP ADDRESS ONTO THE STACK. CALL $SAVAL ;SAVE THE REGISTERS. MOV $OTSVA+FILPTR,R0 ;IF OFFSET "FILPTR" IS NON-ZERO, THEN IT BEQ RTNCTR ;POINTS TO THE LUB & AN I/O IS IN PROGRESS. TST $OTSVA+ERREX ;CHECK IF "ERR=" IS BEING USED. IF IT IS, BNE RTNCTR ;RETURN TO THE CALLING PROGRAM. ADD #D.FDB+F.LUN,R0 ;RETRIEVE THE LUN FROM THE FDB AND PLACE IT MOV R0,ERRADR+2 ;IN THE SECOND WORD OF "ERRADR". ADD #F.ERR-F.LUN,R0 ;RETRIEVE THE I/O ERROR CODE FROM THE FDB AND MOV R0,ERRADR+4 ;PLACE IT IN THE THIRD WORD OF "ERRADR". MOV #ERRADR,R5 ;PLACE "ERRADR" IN R5. CALL UERQIO ;"UERQIO" USES INFO IN R5. RTNCTR: RETURN ;WHEN "RETURN" OCCURS, THE TRAP ADDRESS ; IS POPPED OFF THE STACK AND ; CONTROL IS RETURNED TO OTS. SST6: .WORD 0 ERRADR: .WORD 2 .BLKW 2 .EVEN .END