[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