[sdiy] Understanding 80s Synth Architectures
Anthony
ajxs at panoptic.online
Sun Feb 6 11:54:56 CET 2022
> Wow, that is pretty impressive. And a substantial undertaking to figure out how it all works and then comment it! How long did that take you!?
It took me around 2 to 3 months to annotate the source assembly. It was my first serious reverse-engineering project, and first time learning about an 8-bit platform, so it was very much a learning experience for me. It could potentially have been done quicker by someone with more experience in these areas. I definitely know ways I could have improved my methodology, in retrospect. What's amazing is that an engineer by the name of Robin Whittle had (at-least partially) reverse-engineered the source assembly back in the late 80s: https://www.firstpr.com.au/rwi/dx7/ This would have been a much more impressive feat without the modern tools I used. I spoke briefly with him about it, and he said he was doing it by hand.
> Do you think the original code was written in assembly, or compiled from a higher level language like C?
I was wondering the same thing, so I asked on Stack Exchange: https://retrocomputing.stackexchange.com/questions/21852/how-common-was-programming-in-c-targeting-8-bit-processors-in-1983
In my defense, I had no idea what kind of machine code a C compiler for an 8-bit system might be designed to produce. And, as noted in the question, the HD6303 handbook I was working from had a section on writing C targeting the system.
As others here have noted, it's guaranteed to have been written in assembly. I'd love to know what assembler Yamaha used to build it.
> Listings were on 132 column fan-fold paper and I stacked them on the side of my desk. The pile was several feet high...
That's impressive! I love hearing war stories from this age of software engineering! As a professional software engineer in 2022, I'm very grateful for the luxuries we have!
I also wrote a blog post about my research into the DX7: https://ajxs.me/blog/Yamaha_DX7_Technical_Analysis.html
I'm very much new to DSP, and EE, so it won't be thrilling reading for people from an electrical engineering background. When I started looking into this topic I found there was so much interesting folklore about this synth known by experts, however I couldn't find good general interest, introductory material to the topic anywhere. So I figured it was a good opportunity to write the article I would have loved to find.
Kind regards,
Anthony
------- Original Message -------
On Sunday, February 6th, 2022 at 5:16 AM, <rburnett at richieburnett.co.uk> wrote:
> Wow, that is pretty impressive. And a substantial undertaking to figure
>
> out how it all works and then comment it! How long did that take you!?
>
> Do you think the original code was written in assembly, or compiled from
>
> a higher level language like C?
>
> -Richie,
>
> On 2022-02-05 04:10, Anthony via Synth-diy wrote:
>
> > In case you're interested in understanding how the firmware of these
> >
> > 80s synthesisers was implemented, I've done an annotated disassembly
> >
> > of the Yamaha DX7's firmware ROM. This repository contains a lot of
> >
> > information regarding how the synth itself functioned, and was
> >
> > designed. Hopefully it provides a little bit of insight into how
> >
> > synths in this era were designed! That's the reason I began this
> >
> > project. I was interested in understanding the exact same topic.
> >
> > https://github.com/ajxs/yamaha_dx7_rom_disassembly
> >
> > ------- Original Message -------
> >
> > On Friday, February 4th, 2022 at 9:22 PM, ackolonges fds via Synth-diy
> >
> > synth-diy at synth-diy.org wrote:
> >
> > > Hi Everyone,
> > >
> > > As the local SDIYer I sometimes get asked to try and fix synths
> > >
> > > from the 80s like various Rolands, Korgs, Oberheims etc. and I
> > >
> > > generally just try to pinpoint the rough area of the issue and
> > >
> > > replace logic chips until the issue is resolved...
> > >
> > > Most of these synths have a CPU connected to everything via a
> > >
> > > parallel address bus and a parallel data bus, with all sorts of glue
> > >
> > > logic chips doing various things. They also usually just have 1 DAC,
> > >
> > > time-domain multiplexed to all of the different parameters via more
> > >
> > > logic chips.
> > >
> > > Obviously this is very different to the modern ways that
> > >
> > > microcontrollers and DACs are used in synths, and since I wasn't
> > >
> > > around in the 80s, these older architectures are very foreign to me.
> > >
> > > To aid in my troubleshooting efforts, I would love to better
> > >
> > > understand the details of how these architectures work, so I was
> > >
> > > wondering if anyone on here would be able to point me to any
> > >
> > > resources that could explain these types of systems to me, be they
> > >
> > > websites, articles, or books?
> > >
> > > Thanks a lot for any advice you might have.
> >
> > Synth-diy mailing list
> >
> > Synth-diy at synth-diy.org
> >
> > http://synth-diy.org/mailman/listinfo/synth-diy
> >
> > Selling or trading? Use marketplace at synth-diy.org
>
> Synth-diy mailing list
>
> Synth-diy at synth-diy.org
>
> http://synth-diy.org/mailman/listinfo/synth-diy
>
> Selling or trading? Use marketplace at synth-diy.org
More information about the Synth-diy
mailing list