[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EOR 02D6,Y For Disk II Family Again



    I have found that PROM code is clear to me since the Beneath Apple
ProDOS manual is completely wrong.  Appendix C -- Nibblizing contains
paragraphs and figures.  I assure that paragraphs are the most correct while
it explains clearly, but stage 2 and stage 3 in figure C.12 and C.13 are
completely wrong.  Two last bits each byte should be stripped off in both
Aux 2 and User 2 before EOR can be used for checksum.  Eighty-six bytes
should be reversed from $00-$56 to $56-$00.  After stage 2 will be done
correctly, the translation table for stage 3 will be always correct.
    I do not understand why writer did not review the figures carefully
before the book was published for public.  It is now clear to me since I
have spent couple hours figuring in my own.  I have solved the problem.

--
Yours Truly,

Bryan Parkoff
BParkoff@satx.rr.com
"Bryan Parkoff" <BParkoff@satx.rr.com> wrote in message
tfmdnbPAQ-PuLcejXTWQkQ@giganews.com">news:tfmdnbPAQ-PuLcejXTWQkQ@giganews.com...
>     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
>
>