Reply to post: Hand-assembled Code

Chaps make working 6502 CPU by hand. Because why not?

Trevor Gale

Hand-assembled Code

Some 35 years ago I had two (yes, 2!) PDP-8/e computers with a tape drive, disk drive (cabinet one, all of 10 MEGAwords!), printer (line), and a couple serial lines - one a VDU terminal and the other an ASR33 teletype - as a home system!

I already knew assembler, for the 6502 and the 6800-series processors, but I had no OS or anything for the PDP's. So I set about writing one, so that I could end up using these machines for processing radio propagation data from regular observations. No development tools, just the PDP-8/e manuals and codes.

Fisrt I had to write a bit of code that would take serial characters as octal input (it is a 12-bit machine) and write this word into successive memory locations - this was done using the front-panel switches, word by word.

Then it was time to write some code that would allow me to write whole segments of octal from the keyboard of the serial device I chose, usually the VDU terminal. The next bit of octal 'code' was a routing that would take that segment and write it to the magtape as a record, skipping till after a 'long gap' on the tape so I could eventually load back these segments one at a time how I wanted.

Once that was done the 'semi-serious' work began - first of this was actually to *write an assembler*, which for this machines' instruction set and layout was not too complicated. This assembler, a 'program', was written to a new magtape and also to two copies (play safe here!) of punched-paper-tape.

After that, the assembler was the main tool to write I/O routines for the magtape (proper, better), the disk (elementary), and the printer. Once that was completed the 'really serious' work began, I wrote an executive, then a filing system of my own, then an operating system on top of those.

Finally I had a running system with storage volumes (floppy disk never got added but all principles were in place and it didn't make any difference anyway), and with interfaces to assignable peripherals (e.g. equivalents of mount and unmount and different peripheral classes and parameters) - and I did go on to write some of the programs I ran to do the original work I wanted to do.

Eventually the "common" P.C. came along and was easy to interface with the radio hardware I used, plus it used a LOT less A.C. power than the roomfull of computer gear that was the PDP's, so eventually I got rid of most all of that equipment as there's a limit to how much one can keep, at least in the 'sane' world.

Still, even as I look back all those years, I'm sure that I learned quite a lot and gained a valuable insight into what certain colleagues of mine have to do in their work and where the 'trip-up-points' can be lying around; in any event it was definitely a memorable experience at the raw end!!!

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon