mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 07:19:57 +00:00
Fix ITS not to use DF10C 22-bit addressing on a KA10.
Use 21-bit addressing instead. This an MIT modification of a DF10 to store three bits of address inverted in the word count. Also adapted the code for the RP10 case to save two instructions.
This commit is contained in:
parent
aa3c3a58f5
commit
1ca678c9f5
@ -4031,6 +4031,11 @@ QECC: MOVSI A,%HRDCL(Q) ;RESET ERROR STATUS IN DRIVE
|
|||||||
SKIPN A,QICWA+1 ;GET ADDRESS OF LAST WORD READ
|
SKIPN A,QICWA+1 ;GET ADDRESS OF LAST WORD READ
|
||||||
JRST 4,.-1 ;CHANNEL OUGHT TO HAVE STORED CONTROL WORD BY NOW
|
JRST 4,.-1 ;CHANNEL OUGHT TO HAVE STORED CONTROL WORD BY NOW
|
||||||
SOS J,A
|
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
|
TDZ J,[177+.BM $DFCWA] ;J := ADDRESS OF FIRST WORD IN LOSING SECTOR
|
||||||
LDB A,[$DFCAD QIOWD]
|
LDB A,[$DFCAD QIOWD]
|
||||||
SUBM J,A
|
SUBM J,A
|
||||||
@ -4239,15 +4244,19 @@ IFN RP10P,[
|
|||||||
DATAO DPC,E ;START DISK
|
DATAO DPC,E ;START DISK
|
||||||
];RP10P
|
];RP10P
|
||||||
IFN RH10P,[
|
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
|
MOVEM T,RCIOWD
|
||||||
SETZM RCIOWD+1
|
SETZM RCIOWD+1
|
||||||
MOVEI T,RCIOWD
|
MOVEI T,RCIOWD
|
||||||
MOVEM T,RCICWA
|
MOVEM T,RCICWA
|
||||||
SETZM RCICWA+1
|
SETZM RCICWA+1
|
||||||
|
IFN KL10P,[
|
||||||
SWPUA ;DUMP CACHE
|
SWPUA ;DUMP CACHE
|
||||||
CONSZ 200000 ;IT'S INEFFICIENT, BUT WHAT THE HELL
|
CONSZ 200000 ;IT'S INEFFICIENT, BUT WHAT THE HELL
|
||||||
JRST .-1
|
JRST .-1
|
||||||
|
]
|
||||||
CONO DSK,%HOCLR+%HORAE+%HOATN+DSKCHN
|
CONO DSK,%HOCLR+%HORAE+%HOATN+DSKCHN
|
||||||
MOVSI A,%HRADR(Q)
|
MOVSI A,%HRADR(Q)
|
||||||
HRR A,E ;HEAD AND SECTOR (CYL DOESN'T CHANGE)
|
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)
|
QINT6A: IORI T,7000+QICWA ;DON'T STOP FOR PARITY ERRORS (PLUS INITIAL CHNL ADR)
|
||||||
MOVEM T,QCHPRG
|
MOVEM T,QCHPRG
|
||||||
DPB Q,[DUNFLD+QCHPRG]
|
DPB Q,[DUNFLD+QCHPRG]
|
||||||
HLLZS QIOWD
|
LSH R,10.
|
||||||
DPB R,[121000,,QIOWD]
|
HLR E,R ;MA15-17 IN E
|
||||||
LDB E,[100300,,R] ;MA15-17
|
SUBI R,1
|
||||||
|
HRRM R,QIOWD
|
||||||
TRC E,7
|
TRC E,7
|
||||||
DPB E,[410300,,QIOWD] ;SET UP HIGH ADDR BITS.
|
DPB E,[410300,,QIOWD] ;SET UP HIGH ADDR BITS.
|
||||||
MOVE TT,QIOWD
|
|
||||||
SOS TT
|
|
||||||
HRRM TT,QIOWD
|
|
||||||
SETZM QIOWD+1
|
SETZM QIOWD+1
|
||||||
MOVEM Q,QSDU
|
MOVEM Q,QSDU
|
||||||
MOVE E,QSGL(C)
|
MOVE E,QSGL(C)
|
||||||
@ -4943,11 +4950,23 @@ QINT6A: IORI T,QICWA_6 .SEE $HCICWA
|
|||||||
TLO T,%HRCTL(Q)
|
TLO T,%HRCTL(Q)
|
||||||
MOVEM T,QCHPRG
|
MOVEM T,QCHPRG
|
||||||
MOVEM Q,QSDU
|
MOVEM Q,QSDU
|
||||||
|
IFN KL10P,[
|
||||||
LSH R,10. ;ASSEMBLE DF10-C CONTROL WORD
|
LSH R,10. ;ASSEMBLE DF10-C CONTROL WORD
|
||||||
SUBI R,1
|
SUBI R,1
|
||||||
MOVNI E,2000
|
MOVNI E,2000
|
||||||
DPB E,[$DFWC R]
|
DPB E,[$DFWC R]
|
||||||
MOVEM R,QIOWD
|
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
|
SETZM QIOWD+1
|
||||||
MOVE E,QSGL(C)
|
MOVE E,QSGL(C)
|
||||||
PUSHJ P,QPOSR
|
PUSHJ P,QPOSR
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user