The source code and supporting materials for this version of the emulator are available from the project repository. The wiki pages have been updated with the corrections and new features for this release. You can download the source from the repository and run it from your own web server. Alternatively, feel free to run it from our hosting site. Please see the Getting Started wiki page for instructions.
Emulator Enhancements
The internal parameters the emulator uses to compute average lamp intensities on the Control Console have been adjusted in an attempt to produce a more realistic dynamic display while the processor is running. The most noticeable change is that the glow persistence of the neon bulbs has been reduced significantly.
The handling of form-feed characters by the Console printers (SPO and teletype units) has been changed. Previously, a form-feed was simulated by the printer emitting a number of line-feeds based upon the value of an internal line counter and a page size of 66 lines. Now, the printer inserts an ASCII form-feed character into the text. The form-feed appears as a normal new-line in the printer's window on your screen, but if you copy the text of the "paper" portion of the window (either directly or by double-clicking the text to move it to a new, temporary window), the form-feed character will accompany the text when you copy/paste the text into another application or save it to a file.
The magnetic tape load dialog has a new convenience feature. There is an additional checkbox, labeled Set Transport Power ON, which is ticked by default. If the box is still ticked when the OK button is clicked, Transport Power for the drive will automatically switch from Standby to ON. This saves you the trouble of having the click the ON button yourself (which I would frequently forget to do) and will place the drive in a ready state.
Magnetic Tape Load Dialog |
BALGOL Enhancements
BALGOL now supports paper-tape input and teletype printer output, for both the compiler and the run-time library. When a compiler generated with paper-tape support is used, the emulator does not need to be configured with any Cardatron devices.When using paper tape, BALGOL source programs must be prepared with fixed-length, 14-word records. Input data must be prepared with fixed-length, 16-word records. The text of these records should be encoded as single-frame characters (alphanumeric words with a sign digit of 2). Numerically-encoded words are accepted, but the program source will print numerically instead of alphanumerically. See Appendix B in the BALGOL manual for details.
Implementing paper-tape support required developing custom INPUTMEDIA and OUTPUTMEDIA routines for the compiler, as well as custom REED and RITE routines for the run-time library. A card deck for the Generator program was constructed with the necessary directive statements (see Appendix A in the BALGOL manual), the object code of the custom routines, and the object code for the remainder of the library. A few corrections to the Generator program were also necessary, along with preparation of a new Generator tape.
The files for paper-tape support are in the software/BALGOL/BALGOL-INPUTMEDIA-OUTPUTMEDIA/PaperTape-Media/ folder in the project repository. Included in that folder are a magnetic tape image for the paper-tape version of the compiler (configured for 5000 words of memory), a short paper-tape callout program to bootstrap the compiler from that tape, and the Generator deck used to produce the compiler tape. The corrected tape image for the Generator program is also available from the repository.
In addition, a few new BALGOL example programs are available in the software/BALGOL/BALGOL-Examples/ folder in the repository.