What a fantastic way of explaining this, Dave. Absolutely loved how you paced and connected everythign together in a very digestible format.
Timely video from my perspective! Back into 6502 after decades and loving it. Great video editing skills, btw, very polished episode.
Now, that is impressive. Well done!
First game I played on computer, loved the pet...
At #08:50 - Instead of LDX #$00 you could just write LDX #0. Same with the zero byte for the text string. A simple 0 would do.
Awesome video, I really enjoyed it! I have had the mental thought process of disassembling before, and I am glad to see I was not terribly far off. I really am enjoying your channel, so you have my sub now!
22:52 Why should you need to recalculate the BNE address? It's only absolute in the assembly code, in machine code it's a relative jump which remains valid in relocated code (unless there is new code inserted between the branch and the target.) But anyway, thanks for this very interesting video!
I also would not be surprised if microdigital and the other companies still making 6502s [and yes you can buy a new 6502 today (well maybe not literally today today , but you know what I mean)] I have an instruction set appendix in them as well. I think Intel has their instruction reference on their website for free.
Great video. Sub'd of course. Whenever I see 6502-related stuff on YT I have to immediately jmp straight to it like a nerd. Started my journey into assembly a few years ago but still have much to learn. Look forward to catching up with the rest of your videos. By the way, I wonder why they used so many NOP's at the beginning of their code?
Very cool Dave. Nice work! And thanks for showing the process.
Wow! New subscriber here, this is really usesful, thank you
Love that you use vi :-)
Does anyone know if KERNAL source code for the original Commodore PET is available? Original , not disassembly.
Fantastic explanation of the whole process. One thing I was wondering about were the 9 NOP instructions at the beginning of the program. Do you know why they're there? I was wondering whether that might be space for some self-modifying code?
I did something like this many years ago after graduating but before I started work to disassemble the Sinclair QL ROM. I used QLMON to do the dissasembly along with a lot of books to know what the system calls were. It was an interesting exercise but gave up eventually as I started a new job. I am curious what all those NOPs were at the beginning though, Scratch space, self modifying code or what?
At #23:41 - I am a bit surprised that you were able to do a search and replace of $0428 without having to escape the $-sign.
At #31:00 - I think it is a mistake at this point to add a new instruction to initialize the Y register. The safe method is to keep the code identical to the original, and compare the newly assembled binary code with original and make sure they are identical.
I’ve been trying for years to find assembly to load and save areas of memory from disk , do you know any examples of this in assembler?
IIRC you can load label files into VICE so that the disassembler shows the actual labels
@andrewdunbar828