mirror of
https://github.com/pkimpel/retro-220.git
synced 2026-04-16 08:26:58 +00:00
1. Changes to DIRICHLET program that allow it to compile and run correctly. 2. Cosmetic changes to BALGOL-Main, BAC-Assembler, GEN-Assembler. 3. Commit software/tools/BALGOL-DumpAnalyzer.html script that does a parial analysis of a memory dump from a BALGOL compiler run. 4. Commit compiler tape image and generator deck configured to run on a system with 10000 words of memory.
Index of folder retro-220/software/BALGOL/BALGOL-Examples:
Source, object, and compilation listings for example and test programs
used with the BAC-220 Burroughs Algebraic Compiler.
Each program consists of multiple files contained in a directory. The
following standard file name extensions and suffixes indicate the format
and purpose of each file:
.card 80-column card image, usually for assembly language
source code or data for the program. The retro-220
emulator will internally truncate longer lines to 80
characters and pad shorter lines out to a length of 80.
.lst printer output listing of assembly or program run.
Lines may be preceded by a form-feed (ASCII hex 0C) to
indicate a skip to top-of-page. Generally, files with a
suffix of "-List.lst" are output from a compile and/or
run of the program. "-Code-List.lst" is the same, but
the compilation listing includes generated object code.
.Load.card 80-column card image file containing loadable object
code. Unless specified otherwise, these decks will be in
self-loading 220 band-6 format for the Cardatron reader,
and will require manual insertion of a card read
instruction into the C register of the processor (e.g.,
1000 60 0000 for input unit 1) to load the program.
.tape Magnetic tape image file in the format used by the
retro-220 emulator
.pt paper-tape file in the format used by the retro-220
emulator.
Unless otherwise specified, all files are in standard Windows text
format, with carriage-return/line-feed delimiters.
777-Cards.card
A small deck with three Cardatron "777" (ignore) cards that can be
used to pad the end of a card deck.
Library-Test-1/
BALGOL program to compute values from various library routines as a
test of the compiler and library. The listings include output from
runs of the program.
The "-ROUND.lst" file has output from the program run under an
experimental version of the retro-220 that attempted to do rounding
for floating-point add/subtract to see what kind of difference that
made. The 220 did not round floating-point add/subtract results.
Reference-Manual/
The example BALGOL programs from Section 11 of the BAC-220 Burroughs
Algebraic Compiler manual, revised edition, March 1963, Burroughs
document 220-21017, available at:
http://bitsavers.org/pdf/burroughs/electrodata/220/
220-21017_B220_BALGOL_Mar63.pdf.
Example-1/
Program to approximate harmonic-boundary values using
orthonormal functions; written by J. G. Herriot of Stanford
University. The "-Data.card" file contains sample data for the
program arbitrarily made up by Paul Kimpel. The listing files
include the results from running the program.
The "-Object.tape" file is the tape image of the object code for
the program written to tape unit 1 by the compiler. This can be
used to execute the program without recompiling or to punch a
loadable object deck onto cards.
The "-Typos.card" file represents the initial transcription of
the source code. It contains several transcription errors, plus
a few errors in the code as published in the manual. This
version was retained to test the compiler's ability to recover
from such errors.
The "-ROUND.lst" file has output from the program run under an
experimental version of the retro-220 that attempted to do
rounding for floating-point add/subtract.
B5500-EMODE/ contains source and listings of Algol programs as
converted to run on the Burroughs B5500 (retro-b5500 emulator)
and modern Unisys ClearPath MCP (E-mode) systems. These were
used to compare the results generated from the BALGOL compiler.
Example-2/
Program for survey traverse calculations.
Example-3/
Program for reduction of a square matrix to tridiagonal form,
using the method of Householder.
Example-4/
Program to solve a set of linear equations of the form Ay = B
using Crout's method with interchanges; written by G. Forsythe
of Stanford University. Note that to compile and run this
program, you will need to use a compiler and emulator configured
for at least 8000 words of memory.
DIRICHLET
Program for computing the solution to a Dirichlet problem for a
bean-shaped region. Reference to the article from which the program
was developed is cited in the source file. I originally wrote this
program in 1970 in Burroughs B5500 XALGOL as part of a senior thesis
project. It was later translated to B6500 Algol and modern Unisys
MCP ("E-mode") Algol. This is a modest number-cruncher, so it seemed
like a good test for BALGOL.
The BALGOL version was created from the B5500 version. Several
changes had to be made, primarily in changing arrays from lower-
bounds of zero to one, accommodating BALGOL's lack of support for
dynamically-sized arrays, differences in IF-THEN-ELSE and SWITCH
constructs, and the somewhat different syntax for formatted I/O.
The program requires a 220 with at least 7000 words of memory and a
BALGOL compiler configured for the system's memory size. It compiles
on the retro-220 emulator in a little less than six minutes (when
generating a program listing) and runs for 172 seconds before
starting to output results. The B5500 (as the retro- b5500 emulator)
generates results in about six seconds. Performance on the modern E-
mode systems varies widely by model, but on the oldest, slowest
system I have available (300 RPM, about 12 Gartner MIPS), the
equivalent time is 0.25 second.
DIRICHLET.card
Source card deck for the 220 BALGOL version of the program,
including data cards at the end.
DIRICHLET-OUTPUT.lst
Listing of compilation and results produced by the card deck
above.
DIRICHLET-OUTPUT.lst
Another listing of compilation and results produced by the card
deck above. This listing includes the code generated by the
compiler.
DIRICHLET-Object.tape
Magnetic tape image of the code generated by the compiler.
DIRICHLET-B5500-OUTPUT.lst
Listing of the B5500 version of the program, including results.
DIRICHLET-Emode-OUTPUT.lst
Listing of the Unisys MCP version of the program, including
results from a run on a 300 RPM LX100 VM system running MCP
10.1.
U.Dayton-Program/
Source for two short BALGOL programs submitted to Burroughs by the
University of Dayton in 1963 to report a compiler issue. Includes a
transcription of the letter describing the problem and transmitting
the two programs.
Found at CBI by Tom Sawyer and transcribed by Paul Kimpel.
Note: the version of the compiler reconstructed by the retro-220
project still exhibits this error.
Paul Kimpel
February 2018
Original creation.
2018-06-10 Paul Kimpel
Finalize DIRICHLET program and tests.