[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
>
>