3 ms·
I’ve had to do this, but it’s not as bad as it sounds. One just has to get the first card or two to load into some memory location. Usually this is filling a de
by todd8 7y ago
I’ve had to do this, but it’s not as bad as it sounds. One just has to get the first card or two to load into some memory location. Usually this is filling a device register with an address and setting the PC to a location that has the ROM code to send a command to the card reader.
After this the bootstrapping happens. The first card or two are machine instruction loaded by the ROM at a certain location that the ROM jumps to. These machine instruction read the next few cards into the addresses just after the current PC so they are executed next and these instructions read more cards. Eventually, the rest of the loop forming the real loader is read in. By writing the loader in machine language and putting it at the front of the program be loaded one minimizes the number of values that need to be manually inserted into memory with panel switches.
Edit: In retrospect, I’m pretty sure the first system where I did this didn’t even have ROM support. It might have required actually keying in the values to a paper tape reader device control registers. (PDP-8 timeframe) However the idea was the same, a few values keyed into a memory location, set the PC, and then push run; the rest of the loader code was on the paper tape or punch cards ahead of the actual program.
The system I’m thinking of was a kind of experimental system at MIT with odd peripherals. It had the first CRT I ever used. It had maybe 16 lines of perhaps 40 characters each. The phosphors used glowed orange and had a long persistence because of the low refresh rate. The room lights had to be very dim otherwise the characters would dim to invisibility.
I used teletypes and other hard copy kinds of terminals and punch cards other than this weird homemade CRT system until I got to grad school in 1974.