SHARE |
|
by Bill Degnan - 02/16/2015 00:13 | |
Let's say you have a program with the following instruction:
B4627 B = "BRING" - Means clear the current contents of the accumulator and move contents of 4627 into the accumulator. Allow me to digress...note that this is a 32-bit computer, word = 32 bits. For a program instruction word the first 12 bits typically (with exceptions) are ignored/not used. The exception is when the instruction is used to pass control to another memory location. More on this later. I have been working to determine what actually gets stored in RAM, at each step of the bootstrap and program loading steps as if it were loaded into memory by the tape read routine. The current version of the LGP-30 SIMH does not fully mimic the Flexowriter to interact as originally designed, we have to improvise. I plan to start by manually loading the bootstrap and program input routine into memory, plus the data input subroutine and data output subroutines. I intend to do this "as if" the programs were input via tape and executed via Flexowriter. If that is not possible, I will to bootstrap some other way. Returning to the computer instruction word "B4627". The computer cannot read B4627 in its mnemonic form into memory until it's converted. 1. First "B4627" is converted into binary-coded decimal format and entered into the accumulator. In this case, 0001 0100 0110 0010 0111 B 4 6 2 7 The accumulator is actually 64 separate 32-bit accumulators (one for each drum track), same value on each copy. 2. The input routine converts the value from the accumulator into a format that can be saved to the drum memory. Leaving out why this is so, here is what you get: 0001 00 101110 011011 00 B -- binary 46 binary 27 -- where -- represent 2-bit buffer 00's. 3. Next the word is converted into the LGP-HEX format 0001 0010 1110 0100 1100 B 2 Q 6 J Note that the BRING instruction goes through the process unchanged. Also, 14 in LGP HEX = Q (not E), 12 in LGP Hex J (not C). B2Q63 is the end result. The bootstrap is entered in manually, and when executed it jumps to the program input routine. The program input routine code instructs the computer how to run the data input subroutine and data output subroutines. Once in memory these subroutines can be supplemented with more subroutines that can be used by other programs. Reply |