Hacker News new | ask | show | jobs
by gregoryseattle 2337 days ago
Ah the memories....

I cut my teeth on a TRS-80 Model 1 with 4K of RAM. I was like 13 or so and got one in the late 70s. I learned BASIC on it, but quickly ran out of CPU and memory with the interpreted BASIC and switched to Z-80 assembler. I didn't have an assembler however, so would write out all of the Z-80 instructions by hand on paper, then, when I thought I had debugged it enough on paper, I would convert it to the hex OpCodes. At that point I would either use a small BASIC program to POKE the hex into memory and run it, or after I got a hex editor, I would use that to type in the hex values. Of course, all of this was saved to cassette tapes! If there was a bug I would go back to the paper and figure out where I went wrong. I still remember some Z-80 OpCodes to this day from the countless hours of converting assembler to hex.

One really cool way I would use to debug programs, or at least know if they were running, was to keep an AM radio next to the computer. The TRS-80/Z-80 would give off enough RF so you could "hear" the program running on the radio. In fact, you could devise loops and delays in your assembler such that you could "play" music on the radio. :-)

4 comments

I did pretty much the same, although I managed to get the 16k RAM version. I've still got my old TRS-80 in the loft, eventually with the expansion box and couple of disk drives. Each single-sided 5.25" floppy held a massive 90k, then someone worked out that if you punched a timing hole in the cover in the right place you could put the floppy in upside-down and use the other side too.

Like you, I cut my teeth on the TRS-80 and wrote my first commercial program around 1982, a graphics drawing tool (written in Z80). It sold maybe a dozen copies, but was a start. I've got fond memories of EDTASM and T-BUG, the assembler and debugger.

I'm also have a similar background (although the first computer I used was my school's PDP-8i via a teletype). I still have my Model I and all the assorted accessories. I remember moving from EDTASM to Microsoft's Macro Assembler for the Z-80 assembler I write.
I didn't have an assembler however, so would write out all of the Z-80 instructions by hand on paper...

I'm glad I'm not the only one who hand-assembled like this! :) Only for me, it was several years later, on a C64 with 6502 assembly, and I had the extra step of converting the hex values to decimal for DATA statements. Assemblers cost money. And my friends were more into playing games, so none of them had an assembler I could "borrow".

I was blessed/cursed to use Radio Shack's standard cassette player/recorder with my TRS-80 Model I. You had to use the proper volume settings when loading and saving data. The settings were different for BASIC and machine code, and the volume controller was very imprecise. I enjoyed typing in programs from BASIC Computer Games but I was really happy to upgrade to a C-64 with a dedicated tape drive...

Also my dad had recently gotten into HAM radio and we had to negotiate our hobby times because of the Trash-80's RF interferance.

That's almost exactly my route to coding too - though I used the ZX Spectrum in the UK. I started with BASIC, then "assembled" programs by hand, looking up the opcodes in the back of the manual.

Even now I remember a lot of Z80 opcodes, largely as a result of hacking and patching games to get infinite lives.

I'm slowly working on building my own computer at the moment, with a real Z80 processor and an arduino to drive it. Fun stuff, but I've stalled for the past few months.