diff --git a/WebUIRunningTheEmulator.wiki b/WebUIRunningTheEmulator.wiki new file mode 100644 index 0000000..10678c3 --- /dev/null +++ b/WebUIRunningTheEmulator.wiki @@ -0,0 +1,156 @@ +#summary Instructions for running the retro-B5500 emulator in a web browser. +#labels Phase-Deploy + += WebUI Running the Emulator = + + +This page describes how to operate the retro-B5500 emulator in a web browser. In order to run the emulator, it must first have been set up as described in WebUIGettingStarted. + +== "Powering Up" the Emulator == + +The emulator is initiated from the `B5500Console.html` page in the `webUI/` directory. If you are running the emulator from our hosting site, simply go to + + http://www.phkimpel.us/B5500/webUI/B5500Console.html + +This page displays a simulated B5500 operator console. The *HALT*, *LOAD SELECT*, *LOAD*, *POWER ON*, and *POWER OFF* indicators are push buttons you can use to control the system. The rest of the indicators are lights controlled by the emulator. + + https://googledrive.com/host/0BxqKm7v4xBswRjNYQnpqM0ItbkU/B5500-Console.png + +To initialize the emulator, click the *POWER ON* button. The *A CONTROL* light will turn on, and several windows will open for the peripheral devices configured for the system -- SPO, card reader, card punch, line printer, etc. + +You may move and resize these windows in any way you wish, including the console window. You may also minimize any of the windows, but *do not close them*. Closing one of the peripheral device windows will render that device inoperable until the emulator is reinitialized with the *POWER ON* button. + +The SPO (Supervisory Printer) window is the one you will typically use the most. It will give itself the focus whenever a message begins output, so it is usually pointless to minimize or hide it while the system is running. The console window is also useful, as its lights give you information about how the system is running. + +When the SPO window opens, it will print a short message indicating the emulator version. Please wait for this message to finish typing before attempting to load the MCP. + +== Halt/Loading the MCP == + +The process of loading an operating system into a computer and starting it is commonly referred to as "booting" the system, or sometimes as an IPL (initial program load). On the B5500 (and all later Burroughs/Unisys systems that followed it), the process is termed a "halt/load," after the two eponymous buttons on the console. *HALT* stops the system. *LOAD* clears the registers and reads a bootstrap program into memory. The bootstrap for the MCP is known as the KERNEL, and with the web-based emulator is placed on disk by the Cold Loader utility script. + +The B5500 supported two types of load. The primary one is from disk and the alternate is from cards, as controlled by the *LOAD SELECT* push button. In its normal position, *LOAD SELECT* causes the system to load 63 sectors starting at segment 1 of Electronics Unit (EU) 0. When *LOAD SELECT* is activated (indicated on a real B5500 by being in a depressed position, but on this console by a yellow border) the system loads one binary card from the primary card reader, CRA. + +To load the MCP, make sure the *LOAD SELECT* button is not activated (no yellow border), then press and release the *LOAD* button. Some white annunciator lights on the lower portion of the console should blink, and after a few seconds, a message similar to the following should start to appear on the SPO: + + {{{ + -H/L WITH MCP/DISK MARK XIII MODS RRRRRRRR- + }}} + +The string of "`R`"s indicates which of the eight memory modules is on line and ready. After several more seconds, you should see time and date messages appear: + + {{{ + TIME IS 0814 + DATE IS SATURDAY, 7/ 9/83 + }}} + +Depending on the state of two options (`USE DATE` and `USE TIME`) stored in the MCP configuration data on disk, one or more of the following messages may also appear: + + {{{ + #DT PLEASE + #TR PLEASE + }}} + +== Setting the Date and Time == + +The B5500 did not have a persistent clock, so it was necessary to set the time, and perhaps the date, each time the system was halt/loaded. Two MCP options could be set to require the operator to set the time and/or date before the system would begin running user programs. The messages above indicate which of those options was set. Regardless, it is always a good idea to set the time immediately after loading the MCP. + +The time is set with the `TR` command. To enter a command, click the *INPUT REQUEST* button on the SPO window. When the button lights (which may take a second or so) enter the following, substituting your current time in 24-hour format: + + {{{ + TR 1457 + }}} + +When you have finished, click the *END OF MESSAGE* button on the SPO window. The emulated SPO supports a few features that the Teletype Model 33 teleprinter used with the B5500 did not: + + * You can press the Enter key instead of the *END OF MESSAGE* button to end a message. + + * When entering a command, you can press the Backspace key to correct errors. The Model 33 could not backspace. + + * When entering a command, you can press the ESC key to cancel your input instead of *ERROR* button. In either case, the carriage will start a new line and the *INPUT REQUEST* light will come on again to allow you to reenter your command. + + * When the SPO window has the focus, you can press the ESC key instead of the *INPUT REQUEST* button to request input to the system. + +The B5500 was not Year-2000 compliant -- almost no one was looking that far ahead in the 1960s. You can, of course, set a date using the last two digits of the current year (e.g., `13` for 2013), but the system will interpret that as 1913, and the Mark XIII files on disk have dates in the 1970s, so they would appear to have been created 60 years in the future. + +We recommend that you subtract 30 or 40 years from the current date (yielding one in the 1970s or '80s) and use that, but the day of week will be incorrect. It turns out that if you subtract 50 years from the current date, the day of week will be correct, but the system files will still appear to have been created in the future. To set the date, use the `DT` command with a date in month/day/year format: + + {{{ + DT 7/13/83 + }}} + +You can also use hyphens (`-`) instead of slashes (`/`) to separate the fields of the dates. The MCP stores the date on disk and will remember the last date the system used across halt/loads. + +== Exploring the B5500 Environment == + +Once the date and time are properly set, you can begin to use the system. A number of documents on bitsavers.org have useful information: + + * The [http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/1031986_B5500_Handbook_Aug70.pdf B5500 Handbook (April 1970)] describes: + * SPO commands starting on page 4-23 + * SPO output messages starting on page 4-1. + + * The [http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/1024916_B5500_B5700_OperMan_Sep68.pdf B5500 Operation Manual (September 1968)] has somewhat older information: + * SPO commands starting on page C-40 + * SPO output messages starting on page C-1 + * Control card syntax starting on page 4-1 + * Compiler option card ("$-cards") on page 4-26. + + * The [http://bitsavers.org/pdf/burroughs/B5000_5500_5700/1023579_Narrative_Description_Of_B5500_MCP_Oct66.pdf Narrative Description of the B5500 MCP] gives a good overview of the MCP and how it operates. + + * The [http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/ bitsavers index page for the B5000/B5500/B5700] lists a number of other documents, including those for the compilers and hardware reference manuals. + +You can prepare card "decks" as ordinary text files on your workstation and read them using one of the card reader peripherals, CRA or CRB. The valid ASCII characters you can use with the emulator are: + + {{{ + 0 1 2 3 4 5 6 7 + 8 9 # @ ? : > { + + A B C D E F G + H I . [ & ( < ~ + | J K L M N O P + Q R $ * - 0 ; { + / S T U V W X + Y Z , % ! = } " + }}} + +The B5500 used five special Algol characters that do not have ASCII equivalents, so we have chosen ASCII equivalents for them: + + `~` for left-arrow + `|` for "×" (the multiplication sign) + `{` for less-than-or-equal + `}` for greater-than-or-equal + `!` for not-equal + +Lower-case letters will be translated to upper case by the card reader (and the SPO). All other ASCII or Unicode characters will be considered to be "invalid punches" in a card. A "`?`" in the first character of a line of text will be considered to be an "invalid punch" (for the purpose of identifying the line as a control card) but will be allowed in any other position. Lines of text longer than 80 characters will be truncated to a length of 80; lines of text shorter than 80 characters will be padded with spaces to a length of 80. + +Your "card deck" text files should have the necessary control cards on the front (with a "`?`" or invalid character in the first column) and a `?END` control card at the end. Here is a sample "card deck" to compile a very simple Algol program: + + {{{ + ? COMPILE FIRST/TRY WITH ALGOL GO + ? DATA CARD + BEGIN + FILE LINE 18 (1, 17); + INTEGER I; + REAL X; + I ~ 3; + X ~ I/30; + WRITE (LINE, <"X = ",F8.5>, X); + END. + ? END + }}} + +To use the card reader: + + * Click the *Browse* or *Choose File* button in the card reader window and select the file you want to read. This will append the text file to the reader's "input hopper." + + * Repeat as desired to add more "decks" to the input hopper. + + * Click the *START* button to make the reader ready. The *NOT READY* light will go out. + + * The MCP should sense the change in status within a second or two and start reading cards. The progress bar below the file selector indicates the relative number of cards in the "input hopper." The last two cards read are shown in the beige box at the bottom of the card reader window. + + * After the last card is read from the "input hopper" the reader will once again go "not ready." + + * You can add more "decks" to the "input hopper" of the reader at any time. If the reader is currently reading cards, simply click the *STOP* button to make it not ready, add more files to the hopper, and then click *START* to make it ready again. + + * If a deck has control card errors, the MCP will stop reading cards and issue a message on the SPO. You have two choices: + * Enter `CL CRA` on the SPO to abort the current "deck." The MCP will read cards without processing them until the next `?END` card and then process the next "deck." + * Click *STOP* to make the reader not ready, then click the progress bar below the file selector. The reader will ask if you want to "empty the input hopper." If you click *OK*, all decks in the "input hopper" will be discarded. \ No newline at end of file