5 ms·
Back then people wrote assembly language themselves. At 1-2Mhz, sometimes Khz, it was how one got performant code. Addressing flexibility makes assembly langu
by ddingus 4y ago
Back then people wrote assembly language themselves.
At 1-2Mhz, sometimes Khz, it was how one got performant code.
Addressing flexibility makes assembly language programming practical for people to do.
Check out the 6809 for a beautiful ISA and probably one of the most powerful 8 bit CPUs.
- gary_0 4y ago"You kids and your RISC! Back in my day we had seven addressing modes and we liked it!" Everyone nowadays takes it for granted that you can use software to write software. There are still lots of graybeard programmers around who had to make do with punch-cards when they were learning.
- ddingus 4y agoLMAO! I never did punch cards, but I have used paper tape with one of these: https://w140.com/tekwiki/wiki/4051 https://w140.com/tekwiki/wiki/4051 And here is a video of the storage CRT: (they are beautiful to watch in person, and the one I used had a 2048x2048 vector space to draw in. https://youtu.be/YQMQ62glZ44 https://youtu.be/YQMQ62glZ44 On mine, I had a cassette like tape drive that had some CNC programming tools on it. Another tape had various utilities and some crude simulation programs. User data was on paper tape, usually source code, or finalized G-code, or plots one might want to reproduce. Frankly, I love paper tape. And I have had to read it, patch instructions in with one of those little machines with all the hand push button punches and index gear to keep it lined up. Same for damaged tapes. And my first machine language programs were hand assembled from blurry, photocopied data book pages mooched from the local university. Sidenote: Moto was cool. I asked about documentation later for the 6809, and was able to have my parents take me to a local office where I got to chat with an engineer and left with a pile of docs, and reference databooks! I did not get an assembler of my own until I mowed a lot of lawns and bought MAC/65 for my Atari. Prior to that, I was typing stuff into the mini-assembler on the Apple. I was a kid, 14 for that stuff. Later at 19 I ended up working in small shops using Tektronix hand me down gear while attending college. Super glad I fell into that experience frankly. Those Tek computers were odd, but well conceived and more powerful than one might think 8 bit stuff could be. The people in that shop made some impressive stuff essentially laid out and programmed on a 6800 CPU found in the Tek storage tube terminal / computers. They were interesting designs. One could get one and just set it up for serial comms and use it as a weird but capable text display and or, graphics display like a paperless plotter. Xterm has Tektronix mode to support that even today. Add some ROM and RAM, and peripherals, and then it was a powerful, technical computing micro computer. Disk drives, cartridge tape, paper tape read and punch, plotter, joystick, and off you go! Never did get to use a disk. But that fast cartridge tape drive and paper tape worked better than expected. What I find interesting is younger people are checking this stuff out and or building their own gear. 8 bits is enough to really do stuff and understand the entire thing. While not practical given what we have today, it all is still educational in a way that appears to remain potent. For my own fun reasons, and some product development, I have the luxury of... I keep an Apple //e Platinum on my work bench. And I use it to do electronic projects the same way I did as a kid. Good for simple prototypes or to understand a sensor, do comms. When my current project slows, I plan on making a card with a Propeller chip on it to make a cool dev station that works like an Apple with command line, just type a line and go BASIC, as well as self hosted compiler and assembler... good times. And practical. People I work with and I have done a couple designs. It all works just fine and it is simple. No updates, no OS, just lean and mean.
- tgv 4y ago> Back then people wrote assembly language themselves. Not only this. It made for more compact code, and memory was very expensive. So expensive that 64kB was practically unheard of. In 1980, 4kB would cost $100 or so. If I read it correctly, the original board with the 6800 was shipped with 128B.
- ddingus 4y agoSame with the KIM 1 boards. 128 bytes is a lot! Seems absolutely insane small now, but back then every bit mattered. And being so close to the hardware meant being able to do things super lean and mean. On the KIM 1, the RIOT chip came with 128bytes of RAM, and Rockwell, MOS, and others also later packaged the CPU with small amounts of RAM, timers, and other handy things. Early origins of system on chip designs. And there was a jumper or solder pad one could use to sort out address decoding should more RAM be added. 128 bytes, probably split between zero page and the stack, can do a lot! For perspective, the Atari 2600 had 128 bytes of RAM in its RIOT chip and that was the total system RAM! Atari 2600 Space Invaders fit into 4K ROM and the 128 bytes of RAM. https://youtu.be/QB7GGkCx5Bg https://youtu.be/QB7GGkCx5Bg No frame buffer, no tile engine! Graphics were generated line by line, game logic happening during the screen blanking period!
- 8bitsrule 4y ago>memory was very expensive No lie! I recall paying $200 for a Godbout 12KB (static RAM) board kit (96 1K chips to hand-socket) for my H-8 (8080; Heathkit included no RAM). Later added another 12KB for an incredible 24KB total. Only a few years later at a swap meet I landed two 16KB manufactured boards for only $50!
- ddingus 4y agoBrutal times! A similar thing happened with SGI workstations. Drop $20 on a high end box, score one for a fraction on ebay some while later. Not long enough later.
- KMag 4y agoBut, they pretty commonly used macro assemblers, so they could have used macros to emulate more complex addressing modes. I think code density and performance had a bigger impact than developer ergonomics on the decision to implement the more complex addressing modes in hardware instead of assembler macros.
- ddingus 4y agoI agree with you. Both of those were a big deal given how little RAM was often available. Many systems measured in bytes! On those, people writing programs was common. Bigger systems, kilobytes and larger, saw the use of macro assemblers were far more common. The first assembler I bought was a Macro assembler.