Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A few small errors in c64disasm_en.txt #13

Open
skoolkid opened this issue Sep 24, 2019 · 2 comments
Open

A few small errors in c64disasm_en.txt #13

skoolkid opened this issue Sep 24, 2019 · 2 comments

Comments

@skoolkid
Copy link

Recently noticed a few small errors in c64disasm_en.txt. First, at A8E3:

.,A8E3 A2 11    LDX #$02

This instruction should be LDX #$11. Next, at E4CF:

.:E4CF AA AA AA AA AA

There should be only 4 bytes on this line, not 5 (the next instruction is at E4D3). And at EA14:

.,EA14 A9 02    LDA #$02set the count to $02, usually $14 ??

The comment needs nudging over to the 33rd column.

I also noticed that the instructions at E4DA and E621 are LDA $D021 and JSR $E6ED, whereas in a disassembly I've been working on, I have LDA $0286 and JSR $E591. However, I understand that these could just be mistakes in the memory dumps I have, or a difference in ROM versions.

@luxocrates
Copy link

To the point about those LDA and JSR addresses: of my not-huge collection of real C64's, the one whose Kernal ROM is most like the listing does indeed have the $0286/$e591 addresses like @skoolkid's. (FWIW, outside of these, it's different from the repo's listing by just one other byte: at $e4ac, mine says $81 instead of $5c, though my other machines do have a $5c there).

However, I do have a couple machines which really do use those $d021/$e6ed operands shown in this repo's listing (but have significant other differences). I haven't looked into the consequences of the $e591 target (the listing shows it as a patch for a bug in earlier ROMs, so looks legit), but the $d021 is a quirk that caught me by surprise on real hardware, which causes the screen to be cleared with the background color instead of the cursor color. (So... doing a POKE 1024,0 on this ROM, you don't see the @ at the top-left of the screen unless something was drawn there already. I wouldn't call it a bug; it's just different).

If I take an md5sum of the byte stream shown in the listing, then Google it, I don't see any hits. But my one that's only five bytes different seems common enough (39065497630802346bce17963f13c092), so my guess is the listing shows either a rare ROM, or one that's been pieced together from bits of other ROMs. Either way, the differences seem harmless.

(And you're right: at $a8e3, the raw hex byte is correct, not the disassembly. It's an LDX #$11 on all of my machines, and if it was an LDX #$02, you'd get a ?FILE OPEN ERROR on GOSUB'ing a nonexistent line, so this is definitely a transcription error.)

@skoolkid
Copy link
Author

Thanks for the info, @luxocrates. I too was using the ROM with md5sum 39065497630802346bce17963f13c092. Glad to know the differences at E4DA and E621 weren't just an artifact of SkoolKit (the disassembler I was using)! 😌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants