6 ms·
What a luxury an assembler was compared to writing programs directly in hex where LDA # was $A9 nn, JMP was $4C aa aa, and RTS was $60 for example. Your brain w
by OldSchool 14y ago
What a luxury an assembler was compared to writing programs directly in hex where LDA # was $A9 nn, JMP was $4C aa aa, and RTS was $60 for example. Your brain would just about as quickly speak hex, though calculating relative branches (limited to a 256 byte range) was a "two pass" mental operation. I still have the green Rodnay Zaks book.
- gavinlynch 14y agoYah, you learn very quickly how incredibly convenient something as simple as a labeled address can be. Thank god for modern assemblers!
- zwieback 14y agoAt first I didn't have an assembler on the Apple ][ so I wrote a horrible Applesoft tool that would calculate jumps and do a little bit of what a real assembler does. Later I used something called BigMac, I think. I didn't understand macros at all, though, until years later.
- kragen 14y agoThe funny thing is that an assembler that calculates relative branches for you is a pretty simple program. Why did people spend so much time without writing one?
- OldSchool 14y agoI can't speak for everyone but having 1K of total RAM and no cross assembler from which to write that first native assembler were enough to stop me from attempting it :)
- kragen 14y agoYeah, the RAM limitation in particular requires a lot of creativity; this version would use the entire 1K for its label table: http://lists.canonical.org/pipermail/kragen-discuss/2012-May/001234.html http://lists.canonical.org/pipermail/kragen-discuss/2012-May... Did you have any external media available, or just the RAM?
- OldSchool 14y agoUnfortunately just RAM, lots of time and the mind of a 12 y/o!
- kragen 14y agoProbably about the best you could do then would be to interactively assemble code (probably without mnemonics!) and output the assembled version. You could probably do a reasonable interactive assembler without mnemonics in 256 bytes; not sure about base64 input and output (four letters/numbers per 3 bytes of code!), or error correction. Did the machine not even have a memory of what was on the screen? Because that's usually at least 2K, and that would go a long way.