[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
EOR 02D6,Y For Disk II Family Again
I have taken a look at the PROM code below. It does not make sense to
me when I look at EOR 02D6,Y at address: C6AF. I changed from EOR 02D6,Y to
TYA NOP NOP before I execute at address C6A6. I do see that all 56 bytes
are stored in $300-$356 using encoded translated characters (96-->FC). I
changed from TYA NOP NOP back to EOR 02D6,Y before I execute at address
C6A6. I do see that all 56 bytes are stored in $300-$356 using decoded
translated characters, but 6-2 is NOT decoded YET.
I am trying to figure out how 96-->FC are translated back to the
original byte. For example, $DB is in $354, $B6 is in $355, and $00 is in
$356. The loop starts at $56 before it decreases to $00. LDY C08C,X reads
$B6 in $355. $B6 is stored in Y Register before EOR executes. It may mean
EOR 02D6,$B6. $02D6+$B6=$38C. It is how EOR locates $38C to get $12 value,
but it does not translate correctly. I know that translatation table is in
$36C-$3D5. Please advise.
C6A6: A0 56 LDY #56
C6A8: 84 3C STY WorkByte (3C)
C6AA: BC 8C C0 LDY StrobeDataLatch,X (C08C)
C6AD: 10 FB BPL C6AA {-05}
C6AF: 59 D6 02 EOR 02D6,Y
C6B2: A4 3C LDY WorkByte (3C)
C6B4: 88 DEY
C6B5: 99 00 03 STA VectorPage,Y (0300)
C6B8: D0 EE BNE C6A8 {-12}
C6BA: 84 3C STY WorkByte (3C)
C6BC: BC 8C C0 LDY StrobeDataLatch,X (C08C)
C6BF: 10 FB BPL C6BC {-05}
C6C1: 59 D6 02 EOR 02D6,Y
C6C4: A4 3C LDY WorkByte (3C)
C6C6: 91 26 STA (Low_SectorRdBufAddr),Y (26)
C6C8: C8 INY
C6C9: D0 EF BNE C6BA {-11}
C6CB: BC 8C C0 LDY StrobeDataLatch,X (C08C)
C6CE: 10 FB BPL C6CB {-05}
C6D0: 59 D6 02 EOR 02D6,Y
C6D3: D0 87 BNE C65C {-79}
--
Yours Truly,
Bryan Parkoff
BParkoff@satx.rr.com