The front panel buttons should behave according to normal Honeywell series 200/2000 operation, however the power buttons are not functional. Buttons are not currently labeled, however buttons that might have a less-than-obvious function should have a "tooltip" that will appear when the mouse pointer hovers over them. Note, as is the case for original hardware, most buttons will not function unless the STOP indicator is on. The only exceptions are STOP and INTERRUPT.
In addition, the "console typewriter" provides some control functions, again when the STOP indicator is on. See Model 220 Console.
The Contents and Address indicators will light during a program run, however updates are limited to updates about every 20mS due to JAVA GUI and video limitations. When a stop occurs, either by clicking STOP or by executing Halt, the Contents and Address are updated with the appropriate values.
The Control address is actually the same address used by the variant character for LCR/SCR. So, for example, SR is 77. All unspecified addresses have registers behind them, but only the documented ones are used by the processor. These other registers may be used as desired. Also note that CLC/SLC registers may be accessed, and should have values from most recent PDT instructions used on them. In this implementation, CLC and SLC contain physical addresses, so for programs running under the monitor they will have the relocated address, not the address used by the program instructions. This means that examining memory from the front panel using these registers will have the desired results.
The CONTENTS buttons represent an 8-bit register that normally shows the contents of a memory location, including punctuation. A lighted button indicates a "1" bit (dark buttons indicate "0" bits). ";" is the Item Mark bit, "," is the Word Mark bit (both "1" mean Record Mark). Changing this register does not alter any memory location, unless/until the ENTER button is pressed. The bits of this register may be set to a "1" by pressing the corresponding button, but setting bits to "0" requires using the CLEAR button on the far left.
The CONTENTS ENTER button (far upper right, downward pointing arrow) will cause the value of the CONTENTS register to be written to the memory location indicated by the ADDRESS register. Note: protection, relocation, etc. does not apply. The CONTENTS DISPLAY button (upward pointing arrow) will copy the memory location indicated by the ADDRESS register into the CONTENTS register.
The ADDRESS buttons represent a 19-bit register that normally shows the address of a memory location. A lighted button indicates a "1" bit (dark buttons indicate "0" bits). Changing this register does not alter any control memory register, unless/until the CONTROL ENTER button is pressed. The bits of this register may be set to a "1" by pressing the corresponding button, but setting bits to "0" requires using the CLEAR button on the far left.
The CONTROL ENTER button (far middle right, downward pointing arrow) will cause the value of the ADDRESS register to be written to the control memory register indicated by the CONTROL register. The CONTROL DISPLAY buttons (plain, +1, -1) will copy the control memory register indicated by the CONTROL register and also perform a CONTENTS DISPLAY action. The +1 and -1 also do a post increment/decrement of the control memory register.
The CONTROL buttons represent a 6-bit register that holds the address of a control memory register. This is the same as the variant character used for SCR/LCR instructions to access the register. Lighted buttons are "1", dark buttons are "0". The buttons will toggle the state of the respective bit, so no CLEAR button is required.
Control registers are defined here.
This implementation provides register memory for all 64 control memory locations. Work registers are not used by this implementation and so may be used for any purpose on the front panel, for example to examine a range of memory locations (DISPLAY +1, DISPLAY -1) without disturbing registers used by the program (allowing the program to continue to run).
ACC registers are actually shadows of the real data. The Front Panel formats real data into these registers when CONTROL DISPLAY accesses them, and endeavors to update real data when CONTROL ENTER is pressed. Note that updating ACC registers using CONTROL ENTER is not likely to have good results.
At least in this implementation (if not on original hardware), the AAR, BAR, and SR registers contain "logical" program addresses. In other words, if the program being examined is running with relocation, these addresses cannot be used to directly access their respective memory locations. They must be relocated by adding the contents of the BRR. It is not known if/where the BRR exists in control memory, so there is no way to access it from the front panel. The same is true for IBR, Variant Register, AIR, etc.
The Display and Debug Buttons of the standard control panel have been replaced by an interactive "control mode" on the 220-3 console typewriter. When the system is stopped, the following commands are accepted:
Addresses and entered/printed as 7 octal digits, first digit 0 or 1. Control registers and peripheral addresses are 2 octal digits. Octal-triplets are 3 digit octal representations of 8 bit bytes. The commands will print spaces at appropriate points, and will automatically execute when the last valid digit is entered. Pressing Carriage Return before that point will cancel the command (or the current octal-triplet).
Most of these buttons are fairly obvious. RUN starts the processor executing instructions at the current SR. STOP halts the processor (after current instruction completes). INTERRUPT sets a Console/Front-Panel interrupt. TYPE button (220-3 only) is explained above.
Pressing STOP and INITIALIZE together is not possible on the GUI, so holding down the Shift key while clicking STOP is the equivalent. This combination will stop infinitely running instruction fetch or execution, as well as I/O.
INITIALIZE will reset nearly everything related to the hardware. This includes peripheral devices and RWCs. Note that clicking the STOP button while holding Shift down will also perform INITIALIZE.
SYSTEM CLEAR does not currently do anything. The original intent seemed to be to reset the processor to the "extraction state", but this implementation does not leave the virtual process in a state that requires any reset.
INSTRUCT provides a single-step function. Pressing this button causes one instruction to be executed.
BOOTSTRAP (220-1 only) provides a more complicated function. It will execute a PDT instruction using ADDRESS as the A-Field and CONTENTS as the C2 control character. This implementation will use 11 as the C1 control character (RWC), and the device selected by C2 will provide "reasonable" defaults for any other control characters required. For example, Magnetic Tape (C2 = 40) will choose tape drive 000, READ FORWARD, 4x3 9-TRACK record mark termination. At the end of a BOOTSTRAP, all of BAR, AAR, and SR will contain the value from ADDRESS. The intent is that the load address of the bootstrap code is the same as the start/run address for the bootstrap. The operator may, of course, change the SR (or any other registers) prior to pressing RUN. Only input device addresses should be used. Details of bootstrap are here.
Address Mode buttons "2", "3", and "4" set the (initial) address mode for the next RUN or INSTRUCT.