Title: Altair Monitor PROMs Date: December 08, 2019 Tags: altair programming ======================================== The availability of teletypes and terminals allowed for a vast improvement of human/computer interaction over front panel switches. Monitor programs ranged in complexity from simple boot loaders to development environments. The switches on the front panel of the Altair 8800 are a slow and cumbersome method of program entry compared to using a keyboard on a terminal or even a teletype. I think the switches are fun, but only up to a couple hundred bytes. As discussed previously, one improvement was to enter a short boot loader program using the switches then load larger, more complex programs from cassette, paper tape, or disk. Use of the front panel was eventually going away completely. PROM cards had nonvolatile storage (Programmable Read-Only Memory) where a boot loader or other programs could be stored permanently allowing you to get whatever environment you used up and running without any manual entry at all. Eventually, even the Altair shipped without any front panel switches. The 8800 Turnkey[0] used a monitor program stored in a PROM which was run automatically at power on. While the PROM memory could have a boot loader that waited to load BASIC or another system from media, you could also have a simple environment that allowed you to work with the Altair from a terminal or teletype in the same way as the front panel did. The Turnkey Monitor, which was booted automatically on the 8800 Turnkey, had commands to enter data into memory, examine memory, and jump to locations to execute code. It allowed for much faster program entry using a keyboard. This is the typical functionality of monitor programs found in computers of the 70's and 80's. Even on systems with keyboards and video output included as standard. A monitor, like the Turnkey Monitor, allowed the programmer to write assembled binary bytes into the Altair and then dump the memory out onto paper tape. When hand writing code on paper, the only way to save it to media was to load into the Altair's memory first. It also provided for rudimentary debugging and editing by allowing the programmer to examine and change memory then jump to any point in the code. More sophisticated monitors also included boot loaders to read programs from various types of media and save memory back out to them. Since PROM memory overlays RAM memory, some PROM cards had a feature to disable the PROM when a write was attempted to a read-only PROM address giving you your full RAM memory space back. PROM programs were usually assembled to run from very high in the 8080's address range so this wouldn't be a problem unless you had spent the money on lots of RAM for your Altair. Many people who came to home computing a little later will recognize the monitor concept if they used a system that powered on directly into BASIC. The Commodore 64, being a very popular example, had BASIC in a ROM chip (as well as an OS KERNAL) which overlaid memory and was booted automatically at power on. From BASIC, one could load other programs from external media. ounger folks might at least have heard of a BIOS, which is similar in concept. A small program in ROM that is run at power on to load another, more complicated runtime environment or OS. Still the same concepts since the early days of electronic computers. As on-chip storage got cheaper, larger and more featureful ROMs came about. Full execution environments that used to need to be loaded from external media could instead be run automatically and at boot time. VTL (Very Tiny Language) was available for Altair computers and BASIC, as mentioned. As far as I know, it wasn't until later computers when BASIC in ROM became prevalent. I previously wrote a boot loader to more quickly enter programs written in a text editor on my laptop than by using the front panel. The next step is to get those programs back out so if I do enter a program with the front panel or modify an already loaded program, I can save it back out to "media" which is my laptop again. The Altair Clone does have a virtual PROM card with several PROM slots. However, since it's not actually a set of PROM chips, I can't burn a program to a chip to load it onto my Altair. I can encode my program in Intel Hex[1] format to upload it to the Altair. I'll do that once I have something I want loaded permenently. For now, though, I have bigger plans for more convenient programming and will return to monitors later, as I'll still need a way to save data from the Altair. [0] http://virtualaltair.com/virtualaltair.com/vac_altair_8800b_turnkey_model.asp [1] https://en.wikipedia.org/wiki/Intel_HEX