diff --git a/src/system/disk.1225 b/src/system/disk.1225 index 5b0f0250..02612346 100755 --- a/src/system/disk.1225 +++ b/src/system/disk.1225 @@ -4031,6 +4031,11 @@ QECC: MOVSI A,%HRDCL(Q) ;RESET ERROR STATUS IN DRIVE SKIPN A,QICWA+1 ;GET ADDRESS OF LAST WORD READ JRST 4,.-1 ;CHANNEL OUGHT TO HAVE STORED CONTROL WORD BY NOW SOS J,A +IFN KA10P,[ + ;BE VERY ANNOYING ABOUT THIS + .ERR RH10 ECC NOT UPDATED FOR KA10 + BUG HALT,[RH10 ECC NOT UPDATED FOR KA10] +] TDZ J,[177+.BM $DFCWA] ;J := ADDRESS OF FIRST WORD IN LOSING SECTOR LDB A,[$DFCAD QIOWD] SUBM J,A @@ -4239,15 +4244,19 @@ IFN RP10P,[ DATAO DPC,E ;START DISK ];RP10P IFN RH10P,[ - MOVE T,[-2000_4,,QRCBUF-1] ;DF10-C CHANNEL PROGRAM +IFN KA10P,MOVE T,[-2000,,QRCBUF-1] +IFN KL10P,MOVE T,[-2000_4,,QRCBUF-1] ;DF10-C CHANNEL PROGRAM +IFE KA10P+KL10P, .ERR WHAT KIND OF DF10 DO YOU HAVE? MOVEM T,RCIOWD SETZM RCIOWD+1 MOVEI T,RCIOWD MOVEM T,RCICWA SETZM RCICWA+1 +IFN KL10P,[ SWPUA ;DUMP CACHE CONSZ 200000 ;IT'S INEFFICIENT, BUT WHAT THE HELL JRST .-1 +] CONO DSK,%HOCLR+%HORAE+%HOATN+DSKCHN MOVSI A,%HRADR(Q) HRR A,E ;HEAD AND SECTOR (CYL DOESN'T CHANGE) @@ -4822,14 +4831,12 @@ IFN RP10P,[ QINT6A: IORI T,7000+QICWA ;DON'T STOP FOR PARITY ERRORS (PLUS INITIAL CHNL ADR) MOVEM T,QCHPRG DPB Q,[DUNFLD+QCHPRG] - HLLZS QIOWD - DPB R,[121000,,QIOWD] - LDB E,[100300,,R] ;MA15-17 + LSH R,10. + HLR E,R ;MA15-17 IN E + SUBI R,1 + HRRM R,QIOWD TRC E,7 DPB E,[410300,,QIOWD] ;SET UP HIGH ADDR BITS. - MOVE TT,QIOWD - SOS TT - HRRM TT,QIOWD SETZM QIOWD+1 MOVEM Q,QSDU MOVE E,QSGL(C) @@ -4943,11 +4950,23 @@ QINT6A: IORI T,QICWA_6 .SEE $HCICWA TLO T,%HRCTL(Q) MOVEM T,QCHPRG MOVEM Q,QSDU +IFN KL10P,[ LSH R,10. ;ASSEMBLE DF10-C CONTROL WORD SUBI R,1 MOVNI E,2000 DPB E,[$DFWC R] MOVEM R,QIOWD +] +IFN KA10P,[ + LSH R,10. + HLR E,R ;MA15-17 IN E + SUBI R,1 + HRLI R,-2000 + TRC E,7 + DPB E,[410300,,R] ;SET UP HIGH ADDR BITS. + MOVEM R,QIOWD +] +IFE KA10P+KL10P, .ERR RH10 NEEDS UPDATING FOR STRANGE CPU SETZM QIOWD+1 MOVE E,QSGL(C) PUSHJ P,QPOSR