1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-26 02:05:51 +00:00
Files
PDP-10.its/src/mlsys/itsdin.6
2018-02-19 19:45:21 +01:00

118 lines
2.3 KiB
Groff
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
QINTE: CONI DPC,TT ;GET CONDITIONS
DATAI DPC,R
CONO DPC,175700+DSKCHN ;RESET CONDITIONS
MOVEM TT,QERST
CONSZ DPC,20 ;WAIT FOR UNBUSY
JRST 4,.-1
MOVE E,QCHPRG
TRNE TT,20000 ;OVERRUN
JRST QOVR
TRNE TT,2000 ;NOT READY
JRST QNRDY
TDNE TT,[12010700] ;BITS 14,16,23,27-29 ARE LOSERS
JRST 4,.
TLNE TT,5 ;WD OR SECTOR PARITY ERROR
JRST QDE
TRNE TT,1000 ;WRITE LOCKED
JRST QIRWRE
TRNE TT,40000 ;SEARCH FAILED
JRST QHE
TRNN TT,100000 ;POWER FAILURE
JRST QINTE1
CONSZ DPC,100000 ;TRY IT AGAIN
JRST 4,.-1
JRST QHE
QINTE1: TLNE R,10 ;FILE UNSAFE
JRST 4,. ;NEED OPERATOR INTERVENTION
TLNE R,4
JRST 4,. ;NO SUCH DRIVE
TLNE R,100 ;POSITION FAILURE
JRST QHE
AOS NQSE ;SPURIOUS ERROR
JRST QINTX ;IGNORE
QIRWRE: JRST 4,. ;IRRECOVERABLE WRITE ERROR
QNRDY: LDB Q,[410300,,R] ;WHICH DPC
SKIPN QSEEK(Q)
SKIPGE QRCAL(Q) ;NOT SEEKING OR RECALIBRATING IS ERROR
JRST QINTN2
JRST 4,.
QINTAT: CONI DPC,QERST
SETZM QSEEK(Q)
DATAO DPC,QATTNS(Q) ;CLEAR ATTNS
DATAI DPC,E
TLNN E,40
JRST QREC
SETZM QRCAL(Q)
LDB E,[311000,,E]
MOVEM E,QPOS(Q) ;REMEMBER WHERE IT IS AT
JRST QINT ;TRY AGAIN
QINT: AOS QGTBZY
MOVEM TT,QCST
TDNE TT,[17377700] ;ANY ERRORS?
JRST QINTE
QINTN2: DATAI DPC,R
SKIPGE QSDU ;DONT CLOB CMD BUF TO CLR ATTS DURING DATA XFER
TRNN R,776 ;ANY ATTNS
JRST QINTA ;NO
FINDQ: LDB I,[11000,,R] ;YES,FIND WHICH DRIVE
JFFO I,.+1 ;CLOBBERS Q
SUBI Q,28.
JRST QINTAT
QINTA: SKIPGE Q,QSDU
JRST QINT1 ;NOT EXPECTING DATA COMPLETION
CONSO DPC,400000
CONSO DPC,10
JRST DSKEX
CONSZ DPC,20
JRST 4,.-1 ;BUSY?
JRST QINTA1 QINT6A: IORI T,7000+ICWA ;DON'T STOP FOR PARITY ERRORS (PLUS INITIAL CHNL ADR)
MOVEM T,QCHPRG
DPB Q,[DUNFLD+QCHPRG]
HLLZS QICWA
DPB R,[121000,,QICWA]
MOVE E,R
LSH E,-10.
TRC E,7
DPB E,[410300,,QICWA] ;SET UP HIGH ADR BITS
SOS TT,QICWA
MOVE E,QSGL(C)
PUSHJ P,QPOSR
IORB E,QCHPRG
SETOM QSLDD(C)
QOVR: CONSZ DPC,20
JRST QOVR
CONO DPC,175700+DSKCHN
MOVEI TT,QICWA
HRRZM TT,ICWA
LDB TT,[DCYL E]
CAME TT,QPOS(Q)
JRST DSKEX ;DONT DO ANYTHING IF NOT WHERE YOU SHOULD BE
SETZM ICWA+1
DATAO DPC,QCHPRG ;ENTRY ON OVERRUN
MOVE A,TIME
MOVEM A,LQTM
MOVEM Q,QSDU
QINTX: JRST DSKEX
QPOSR: CAIL E,NBLKS
JRST 4,.
MOVEI D,0
IDIVI E,NBLKSC
DPB E,[DCYL+D]
MOVEM E,QSPPS(Q)
MOVE E,TT
IMULI E,NSSECS
IDIVI E,NHSECS
DPB E,[DSURF+D]
DPB TT,[DSECT+D]
DPB Q,[DUNFLD+D]
MOVE E,D
POPJ P,