[sdiy] Analysis of the TB-303 CPU timing

Neil Johnson neil.johnson71 at gmail.com
Mon Mar 20 21:53:52 CET 2017

Rainer Buchty wrote:
> KRiSh wrote:
>> as far as i remember, disassemblers are not guaranteed to output exactly
>> the original code.
> You're mixing up disassemblers and decompilers.
> The first one turns machine code into human-readable form. This is a 1:1
> conversion and outputs exactly the machine code representation.

For many micros (especially smaller ones) I'd agree, but that's not
always the case.  For example the A86 shareware assembler touted a
unique "footprint" in the generated machine code (for example, there
are two encodings of the "MOV AX, BX" instruction) that, according to
the author, could be used to determined if the object code was
generated by A86 or not.

> Decompilers try to recreate a higher-level language representation and
> approximate the original high-level language source code. Depending on the
> target architecture, they're nowadays doing surprisingly well with even
> reconstructing structs or objects, call frames, etc., but of course it will
> not result in true copy of the original source code.
> That old stuff, however, did not even see C, yet a higher-level language
> than C or object-oriented stuff. It was handwoven assembly code for reasons
> of timing and code density.

I've long suspected that some synth OS code that I've looked at might
have been written in something like PL/M.  I agree back then C was
probably not mature enough, but PL/M was.


More information about the Synth-diy mailing list