; FILE NAME : D S K E R R . M A C ; DATE : JUNE 8, 1977 ; VERSION : 01.01 ; AUTHOR : JAMES STANFILL ; SWEDISH HOSPITAL MEDICAL CENTER ; ; .TITLE DSKERR .IDENT /01.01/ .MCALL DIR$,QIOW$ ; ;+ ; THIS SUBROUTINE WILL PRINT DISK ERROR MESSAGES. THERE ; ARE THREE ENTRY POINTS DEPENDING UPON THE SPECIFIC TYPE ; OF ERROR : DSKOPN - DISK OPEN ERRORS, DSKRED - DISK READ ; ERRORS, AND DSKWRT - DISK WRITE ERRORS. ; ; CALLING SEQUENCE : ; ; MOV #ERRARG,R5 ; CALL DSK[TYP] ; ;ERRARG:.BYTE 2,0 ; LUN ; EVFLG ; ; [TYP] OPN,RED,WRT ; LUN INTEGER*2 LOGICAL UNIT NUMBER FOR TI ; EVFLG INTEGER*2 EVENT FLAG FOR QIO ;- ; CR=15 LF=12 DSKOPN::MOV #"OP,ERRTYP ;DISK OPEN ERROR BR CON DSKRED::MOV #"RD,ERRTYP ;DISK READ ERROR BR CON DSKWRT::MOV #"WT,ERRTYP ;DISK WRITE ERROR CON: MOV @2(R5), MOV @4(R5), MOV R2,-(SP) ;SAVE REGISTERS USED MOV R3,-(SP) MOVB F.ERR(R0),R3 ;GET ERROR NUMBER BMI 1$ ;IT SHOULD BE MINUS CLR R3 ;RETURN ZERO IF NOT 1$: NEG R3 CLR R2 DIV #12,R2 ;CONVERT IT TO DECIMAL SWAB R3 ADD R2,R3 ADD #30060,R3 ;AND NOW TO ASCII MOV R3,ERRNUM MOV (SP)+,R3 ;RESTORE REGISTERS MOV (SP)+,R2 DIR$ #ERROUT ;OUTPUT ERROR MESSAGE RETURN ; ERROUT: QIOW$ IO.WLB,0,0,,,, ; .NLIST BIN ERRMSG: .BYTE CR,LF .ASCII %*** DISK % .EVEN ERRTYP: .ASCII % ERROR : -% .EVEN ERRNUM: .BLKW 1 .ASCII % ***% .BYTE CR,LF MSGSZE=.-ERRMSG .EVEN ; .END