3 ms·
I browsed through the repository as discovered by colejohnson66 downthread https://github.com/ajxs/yamaha_dx7_rom_disassembly https://github.com/ajxs/yamaha_dx7
by billforsternz 4y ago
I browsed through the repository as discovered by colejohnson66 downthread https://github.com/ajxs/yamaha_dx7_rom_disassembly https://github.com/ajxs/yamaha_dx7_rom_disassembly. This is an example of superb, meticulous, lovingly documented work. The kind of thing you don't see every day, congratulations. The attention to detail is really just chef's kiss, starting with a really good repository name (a small thing, but still), continuing through clear and apparently comprehensive documentation of what you did and why, then on to beautifully formatted and commented assembly language (much better than the original source code I'd wager) with coherent and consistent paragraph commenting a particular delight, and finally (and very importantly) dedication to making sure others can reproduce your results and generate a matching binary too. There are likely to be other things of beauty in there I have forgotten to highlight, it's just that good. Oh the FAQ of course, what a great FAQ. Really I am being very wordy for someone that's lost for words.
BTW, I love retro computing too, this is my best attempt so far in the field https://github.com/billforsternz/retro-sargon https://github.com/billforsternz/retro-sargon. I aspire to similar standards to your good self, but I'm not there yet.
- ajxs 4y agoThank you so much for your very kind words! I really appreciate them! It was indeed a labour of love. Being able to (re)create a matching binary was my benchmark for success, to prove the accuracy of the reverse-engineering. Unfortunately it's impossible to know how well-documented the original assembly was. I've poked around in some of Yamaha's other synth firmware from the same era, and there's some reuse of code between them. That suggests there was some shared documentation, and tooling available between teams. Speaking of documentation, and naming: The placement of functions within the binary probably hints at the organisation of the project, and how things were named, however it's hard to tease out the abstractions they were working with after the fact. This was my first project in 8-bit system programming. The Hitachi 6303 manual has some suggestions to use for project documentation that were even more comprehensive. I'd love to know more about how engineers worked in this era! Also, your project looks amazing! I'll definitely give this a good look!