1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-01-11 23:52:46 +00:00

97 Commits

Author SHA1 Message Date
Paul Kimpel
cc8fd9123b Implement cursor for Teletype output.
Also:
. Implement separate B220Version module.
. Correct 220 internal code to ANSI translate table in
B220ControlConsole.js.
. Correct minor typos in comments.
v1.05
2022-06-30 12:19:06 -07:00
Paul Kimpel
bca1b7881a Release emulator version 1.04.
. Adjust (hopefully for the last time) the RGB code for the 220
Sundland Beige panel color: it's now #C5B1A0. This has been a really
difficult color to pin down.
. Implement Clear Memory button on Console; implement "hover captions"
for the Clear Memory and Load Card buttons.
. Implement current block-number display on magnetic tape panel.
. Implement "word index" counter on the B220MagTapeDrive panel to
indicate the tape position in terms of 11-digit 220 words.
. Implement Rewind and Unload buttons on the paper-tape reader.
. Implement "word index" counter on the B220PaperTapeReader panel.
. When a Cardatron or paper-tape reader encounters a sign=6 control
word, do not reschedule the Processor if it has been halted.
. Correct handling of reload-lockout in B220CardatronInput; change
method of reporting Cardatron end-of-I/O signal to the Processor.
. Correct this.pendingFinish timing race in B220CardatronOutput.
. Correct validation when loading tape images in B220MagTapeDrive so
that the drive will continue to be usable after an invalid image is
detected.
. Correct logic for spacing and searching magnetic tape blocks
backwards.
. Correct output of non-printing characters in B220PaperTapePunch.
. Correct handling of invalid tape image characters in
B220PaperTapeReader.
. Implement additional tracing for paper-tape and magnetic tape I/Os
(currently disabled).
v1.04
2021-09-06 17:28:48 -07:00
Paul Kimpel
e38dddfb79 Commit 220 BLACKJACK card game.
Transcribed from "SAMPLE PROGRAM 2" in Appendix D of the
"Burroughs 220 Assembler-Compiler" manual, Bulletin 5024, April 1960.
Assemble with the BAC-Assembler. This manual was found at CBI:

    Burroughs Corporation Records, Product Literature (CBI 90),
    Charles Babbage Institute, University of Minnesota, Minneapolis.
    https://archives.lib.umn.edu/repositories/3/resources/186.
    Series 74, box 5, folder 17.
2021-09-04 18:09:44 -07:00
Paul Kimpel
4773bec4eb Update and reorganize 220 diagnostics tests from bitsavers.org.
1. Commit original paper tape images B220_Paper_Tapes.zip and
TR1101_TR1301.zip archives from
http://bitsavers.org/bits/Burroughs/B220/.
2. Update and reorganize software/Diagnostics folder; Add README.txt.
3. Commit Michael Mahon's consolidation of the TR1202..TR1206 tests as
Mahon-Regression-Test.pt.
4. Correct formatting of "*" (current assembler location) operand in
BAC-Disassembler.html.
5. Minor corrections to 220-Paper-Tape-Decoder.html.
6. Commit new 220-Format-Band-Disassembler.html script to generate BAC-
Assembler FBGR pseudo ops from memory images of Cardatron format bands.
2021-09-04 18:04:11 -07:00
Paul Kimpel
fcfab2700e Configure paper-tape version of BALGOL compiler for reader 0.
Support Michael Mahon's 220 emulator.
2021-09-03 15:42:06 -07:00
Paul Kimpel
86fe5a51ee Commit emulator version 1.03b.
1. Correct PRD (03) to properly recognize control words on the tape
when B-modification of the input is also being done.
2. Temporarily add custom tracing of PRD, PRB, and PRI instructions.
3. Implement word counter on paper-tape panel to show current position
in the tape image.
1.02
2020-12-13 10:31:39 -08:00
Paul Kimpel
278d97e92a Release emulator 1.03a and TR1101/TR1301 diagnostic tests.
1. Correct 220-Paper-Tape-Decoder.html to support the full 64-character
paper tape encoding.
2. Correct BAC-Disassembler.html to support the full 64-character set
and properly output sign-2 constant words.
3. Correct the Processor and Paper Tape drivers to support the full
64-character set and allow literal error codes (17) to be read without
setting the paper-tape alarm.
4. Commit the TR1101 and TR1301 diagnostic test paper tape images
received from Al Kossow at
http://bitsavers.org/bits/Burroughs/B220/TR1101_TR1301.zip.
2020-09-23 07:58:02 -07:00
Paul Kimpel
222cde1875 Release emulator version 1.03.
Fix bug in SLS for rotate counts > 10, as revealed by the TR1203
Operations Test diagnostic.
v1.03
2020-08-24 13:58:25 -07:00
Paul Kimpel
2665c6066e Release retro-220 emulator version 1.02a.
1. Apply corrections to emulator/B220Processor.js uncovered by the
paper-tape diagnostic routines acquired by Al Kossow:
    a. Integer divide: sign of R must be preserved on overflow,
       otherwise must be set to sign of the dividend (A register).
    b. Floating division: sign of R must be preserved, correct align-
       ment of operands in registers before starting division cycles,
       perform 11 division cycles instead of 10, reconstruct A and R
       registers if exponent overflow is detected during post-divide
       mantissa normalization.
2. Disable console keyboard after ADD button is pressed.
3. Correct alphanumeric character code translation used by the internal
memory dump routine to match that for console and paper-tape I/O.
4. Fix bug with backward magnetic tape positioning (MPB) for tape
blocks less than 20 words long.
2020-08-21 07:06:12 -07:00
Paul Kimpel
d6377935e3 Commit refinements to 220 assemblers and disassembler.
1. Correct BAC-Disassembler address location assignment for CNST
pseudos for operands having tags > 1.
2. Regenerate disassembly listings with corrected disassembler for
paper-tape Diagnostics TR1202-Memory-Test.lst and
TR1203-Operations-Test.lst.
3. Reinstate BAC-Assembler second operand (field 44) for CAD, CAA, CSU,
CSA, ADD, ADA, SUB, SUA; make a few cosmetic changes.
4. Cosmetic changes to GEN-Assembler.
2020-08-21 06:44:22 -07:00
Paul Kimpel
0c57cfb6dd Commit 220 Diagnostic paper tape routines from Al Kossow
1. Commit 220-Paper-Tape-Decoder.html script to convert Al Kossow's
binary paper tape images to retro-220 paper tape image files.
2. Commit decoded paper tapes and disassembly listings.
3. Additional refinements to BAC-Disassembler.html.
2020-08-20 15:37:57 -07:00
Paul Kimpel
0a9ec1bff5 Commit initial version of 220 BAC-Disassembler.html. 2020-08-19 14:51:37 -07:00
Paul Kimpel
055aad8fa6 Corrections for BALGOL compiler and library.
1. Correct ASCII substitution characters in quoted strings for compiler
main, overlay, and library modules.
2. Correct ASCII substitution characters used by BAC-Assembler in
quoted strings.
3. Implement paper-tape output for BAC- and Gen-Assembler.
2020-08-09 09:50:59 -07:00
Paul Kimpel
903b7509ef Add Help link on BAC- and GEN-Assembler page to their wiki pages. 2020-07-01 16:15:58 -07:00
Paul Kimpel
1893b8a2c0 Release retro-220 emulator version 1.02:
1. Redesign and correct implementation of the "normalization limiter
digit" in floating add/subtract.
2. Correct final value of A register when floating-overflow occurs in
floating multiply.
3. Correct final value of A register when D register is not normalized
for floating divide.
4. Correct register setup and post-divide normalization for floating
divide.
5. Implement double-click handler on Cardatron reader and printer
background panel areas to temporarily toggle their speeds by 1000
cards/lines per minute. This is intended only for testing, not for
regular use.
6. Implement double-click handler on Console Burroughs logo to toggle
lamp intensity averaging on and off temporarily.
7. Implement validation of magnetic tape image files during loading;
reject image files that do not pass.
8. Minor changes to comments and cosmetics for multiple other scripts.
v1.02
2020-05-06 17:24:47 -07:00
Paul Kimpel
bf226cd990 Corrections to BALGOL MRS-081 sample program:
1. Correct transcription error in BALGOL source, MRS-081.card.
2. Correct transcription errors in SYMPTOM-DATA.card.
3. Add sequence numbers to B5500 and E-mode source files.
4. Generate new set of listings for all versions.
2020-01-01 14:24:12 -08:00
Paul Kimpel
80d48d356d Minor updates to BALGOL-Examples.
1. Comment out MONITOR declaration in Simpsons-Rule/SIMPS.card.
2. Revise README.txt, add entry for MRS-081 example.
2019-12-27 10:36:54 -08:00
Paul Kimpel
06ac2c0956 Commit revised MRS-081 sample BALGOL program and results.
1. Revise UNPACK subroutine to use the available compiler's parameter-
passing sequence.
2. Archive original UNPACK subroutine files in ORIGINAL-1961/.
3. Include compile listings and sample run results.
4. Port BALGOL program to B5500 and modern Unisys E-Mode dialects in
order to generate comparative results.
2019-12-27 10:33:14 -08:00
Paul Kimpel
e7aa680bea Commit initial MRS-081 sample BALGOL program.
This is the original version of the program and data as transcribed from
the report described in the README.txt file. It has the original version
of the UNPACK machine-language subroutine, which cannot be used with the
version of the BALGOL compiler recovered for the retro-220 project.
2019-12-27 09:10:37 -08:00
Paul Kimpel
b701ebfb4c Commit minor updates and corrections to BAC- and GEN-Assembler. 2019-06-04 15:34:36 -07:00
Paul Kimpel
d07dd13179 Update hosting site index page.
Link to initial blog post on the 220, minor text updates.
2019-01-29 08:20:00 -08:00
Paul Kimpel
69f2b1828c Commit emulator version 1.01.
1. Tune internal processor timing to adjust neon glow persistence and
attempt to make the Control Console display more realistic.
2. Change form-feed behavior in ConsolePrinter to embed an ASCII form-
feed character in the text instead of emitting a number of newlines
based upon the current line counter.
3. Corrections to rounding code in experimental version of floatingAdd()
function (not currently enabled in the emulator).
v1.01
2018-10-28 09:20:26 -07:00
Paul Kimpel
6e34115d1c Corrections to BALGOL Generator for paper-tape support.
1. Re-commit correction to NUMB address definition in Generator.
2. Correct F2 EXTENDTABLE block length for DELETE OUTPUT FORMAT 1 to
include the last table entry and avoid Cardatron alarms on system
configurations with no Cardatron support.
3. Add entries to EXTENDTABLE block in PTVER routine to cause the paper-
tape heading to be printed when the paper-tape version of the compiler
is generated.
4. Generate new tape images for the Generator, the standard compiler,
the standard 10K-word compiler, and the 5K-word paper-tape compiler.
2018-10-27 16:36:19 -07:00
Paul Kimpel
ad6fb8e89e Recommit original transcribed version of Generator files under ORIGINAL. 2018-10-25 10:49:54 -07:00
Paul Kimpel
eca6abdf6f Revert Generator sources back to original transcribed version.
This revert is in preparation for preserving the original transcription
under a different name and applying corrections against files using the
current names.
2018-10-25 10:36:20 -07:00
Paul Kimpel
28eae3bfdd Commit support for paper-tape/TTY I/O in BALGOL and run-time.
1. Implement paper-tape/TTY versions of compiler INPUTMEDIA and
OUTPUTMEDIA routines, and the run-time REED and RITE routines.
2. Create Generator callout deck to make a compiler tape containing
paper-tape/TTY support.
3. Create a compiler tape containing paper-tape/TTY support.
4. Create a paper-tape compiler callout bootstrap program.
5. Correct address for NUMB in Generator source to match the address in
the compiler's Overlay module.
6. Create corrected Generator tape (must be used to create compilers
with paper-tape/TTY support).
7. Add option to produce Generator INPUTMEDIA/OUTPUTMEDIA object card
decks to BAC-Assembler and GEN-Assembler.
8. Create Xlate-Card-PT.wsf utility to convert card-image files to
retro-220 paper-tape image files.
9. Create paper-tape versions of example BALGOL programs.
2018-10-23 13:15:31 -07:00
Paul Kimpel
a32815073a Commit additional BALGOL example and preliminary paper-tape support.
1. Add WINTER-PI example programs for output to line printer and SPO.
2. Add BALGOL-INPUTMEDIA-OUTPUTMEDIA directory for eventual support of
paper tape I/O in the compiler and run-time library.
2018-08-18 11:33:39 -07:00
Paul Kimpel
e71a4da0cd Commit emulator version 1.00a
1. Improve brightness of blue panel lamps.
2. Add checkbox to Mag Tape Load Panel dialog to automatically set
Transport Power on the drive to ON when the dialog is closed.
2018-08-06 18:02:42 -07:00
Paul Kimpel
83a0b62faf Update BALGOL Library and Examples
1. Correct missing relocation pseudo-op in MONIT Library routine.
2. Rebuild Generator and Compiler tapes.
3. Recompile and generate corrected listings for example programs.
4. Add Simpson's Rule example from Algol-58 Preliminary Report.
2018-08-06 17:59:30 -07:00
Paul Kimpel
67958aa65a Commit emulator version 1.00.
1. Rework Processor internal timing and throttling mechanism during I/O.
2. Revise Console statistics display, add instruction counter.
3. Correct (again) CFA/CFR instruction when sign is included in field.
4. Correct B-register modification of words during Cardatron and
magnetic tape input.
5. Clear Processor alarms on Reset/Transfer.
6. Add links to wiki on index and home pages.
7. Eliminate B220Util CSS class functions in favor of DOM classList
methods.
8. Attempt to reproduce "Sundland Beige" color for the panels.
9. Correct formatting of tab stops for B220ConsolePrinter.
10. Reduce Whippet printer speed from 5000 to 1000 cps.
11. Reduce Console update frequency from every 50 to 100 ms; increase
lamp glow update factor from 0.25 to 0.75.
12. Allow click of white button below console register lamps in addition
to clicking the lamps themselves to toggle the lamp state.
13. Rework the way that white vertical bars are drawn on registers.
14. Allow B220PaperTapeReader to properly send sign-2 alphanumeric words
with trailing spaces if the tape image file has been space-trimmed on
the right.
15. Clear the paper tape reader view window when loading new tapes.
16. Revise yet again the setCallback() delay deviation adjustment
algorithm.
v1.00
2018-07-17 06:57:01 -07:00
Paul Kimpel
653cbe98cb Commit initial production release of BALGOL compiler, library, and tools.
1. Finalize compiler helper card decks.
2. Finalize example BALGOL programs.
3. Fix problem with relocation of ERROR library routine buffer address
(issue #1).
4. Update Generator tape build notes.
2018-07-16 15:31:31 -07:00
Paul Kimpel
2d06034237 Commit latest BALGOL compiler debugging and examples.
1. Supply runnable examples for all five sample programs in the BALGOL
reference manual.
2. Regenerate the Generator and Compiler listings and tape images.
3. Fix assembler bugs with "S" format code on input.
4. Fix BAC-Assembler bug generating a machine-language deck for the
LABEL intrinsic.
5. Note that some of these changes require retro-220 version 0.08 in
order to work properly.
2018-07-08 18:48:05 -07:00
Paul Kimpel
1ef4bc9d14 Commit updates to BALGOL DIRICHLET example.
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.
2018-06-10 18:55:55 -07:00
Paul Kimpel
913606c5f7 Commit again to renormalize CR/LF line endings and character encodings after doing 'git add --renormalize'. 2018-04-08 14:50:17 -07:00
Paul Kimpel
e5d34c322e Commit 220 software recovery WIP; normalize CR/LF line endings and characters
encodings.
2018-04-07 18:47:24 -07:00
Paul Kimpel
a29f2cac5d Commit retro-220 emulator version 0.07:
1. Implement centralized pop-up window opening mechanism to enforce a delay between pop-up opens. This is to satisfy new restrictions on multiple pop-ups imposed by the Apple Safari 11.0 browser.
2. Correct Reload-Lockout behavior and format band 6 initialization in B220CardatronInput.
3. Correct translation of sign digits and skip-to-channel behavior in B220CardatronOutput.
4. Strip sign digit from search/scan argument word when storing into B220MagTapeControl T register.
5. Remove option for 1000-word system memory size and correct handling of memory size list selection in B220SystemConfig.
6. Change reel-to-reel magnetic tape name from DataReader to TSU in B220SystemConfig.
v0.07
2018-03-03 10:18:55 -08:00
Paul Kimpel
f19f4e9b65 Commit StanfordModelIV with Cardatron band selection code in column 1. 2018-02-24 07:21:28 -08:00
Paul Kimpel
7c274b2183 Commit transcription corrections #5 to DIRICHLET example. 2018-02-24 07:17:06 -08:00
Paul Kimpel
5d9168d1b3 Commit transcription corrections #4 to DIRICHLET example. 2018-02-24 07:16:19 -08:00
Paul Kimpel
3ce65f8c86 Commit transcription corrections #3 to DIRICHLET example. 2018-02-24 07:15:35 -08:00
Paul Kimpel
fc08dd6bed Commit transcription corrections #2 to DIRICHLET example. 2018-02-24 07:14:47 -08:00
Paul Kimpel
68b293813d Commit transcription corrections #1 to DIRICHLET example. 2018-02-24 07:13:57 -08:00
Paul Kimpel
714993f651 Commit initial transcriptions for example BALGOL programs:
1. Stanford Watershed Model IV.
2. Dirichlet Problem for a bean-shaped region.
2018-02-24 07:10:01 -08:00
Paul Kimpel
ed2ada8b85 Restructure software/ directory to have subdirectories for individual programs and compiler modules. 2018-02-07 11:27:38 -08:00
Paul Kimpel
b80b0f8c5f Commit retro-220 emulator version 0.06:
1. Correct scaling and normalization limiter errors in floating Add/Subtract uncovered by BALGOL testing; set Single-Step instead of Stop if normalization limiter is exceeded.
2. Correct improper comparison of sign digits by CFA/CFR uncovered by BALGOL testing.
3. Change method of lamp glow update in Processor and ControlConsole to provide smoother, more realistic display.
4. Implement diagnostic trace facility in Processor; toggle on and off by double-clicking "220" logo on ControlConsole.
5. Implement temporary, experimental floatingAdd() routine in Processor that does rounding for use in BALGOL validity checking (the 220 did not round, and it is disabled in this commit).
6. Correct printer carriage control handling in CardatronOutput.
7. Improve timing for ConsolePrinter TTY "Whippet mode".
8. Implement compression of consecutive duplicate blocks in tape image files for MagTapeDrive -- see comments in source.
9. Remove inappropriate SPO selection from unit designate on PaperTapeReader panel.
v0.06
2018-02-05 09:46:26 -08:00
Paul Kimpel
0fe12839a7 BALGOL Lives! Commit first working version of compiler,library, and example programs.
1. Revised versions of Generator and Compiler tapes, and their callout decks.
2. Object program callout deck to load and run compiled programs from their object tape.
3. Minor corrections to BAC-Assembler for object code output.
4. Implement object card output for GEN-Assembler, similar to BAC-Assembler.html
5. Corrections and compilation listings for example programs from BALGOL Reference Manual. All examples from the manual now compile.
6. Sample data deck and execution output for Example-1 program from Reference Manual. The results now show 6-7 digit agreement with results from modern Unisys MCP ("E-mode") Algol.
7. Minor changes to output formatting for E-mode and B5500 versions of the Example-1 program.
8. Manually-reformatted listing of E-mode Example-1 results to make them easier to compare with the BALGOL results.
2018-02-05 09:27:23 -08:00
Paul Kimpel
efa7fc3902 Commit Michael Mahon's SNAP-1E assembler for the 220 to the project repository. Included by permission of Michael Mahon. See http://www.michaeljmahon.com/ for more information. 2018-01-31 11:32:48 -08:00
Paul Kimpel
936aadf6ee Commit retro-220 emulator version 0.05:
1. Remove Application Cache mechanism (has been deprecated as a web standard).
2. Replace internal bindMethod() utility function with standard Javascript object.bind().
3. Automatically reset Digit Check Alarm when bits are corrected in registers.
4. Correct setting of Overflow Toggle in IFL.
5. Terminate magnetic tape data transfer if AST toggle gets reset.
6. Correct way Processor was released by magnetic tape TCU.
7. Correct construction of preface word in memory for mag tape MRR.
8. Correct determination of mag tape "remote" status to allow tape to be unloaded immediately after a rewind.
9. Fix bug in BCS detecting the switch setting.
10. Modify behavior of Reset/Transfer switch to allow recovery after a tape malfunction.
11. Correct formatting of HIGH lamp on Control Console.
12. Remove extraneous whitespace from B220FramePaper sub-window markup.
v0.05
2018-01-12 08:40:49 -08:00
Paul Kimpel
f288264276 Commit BALGOL compiler reconstruction WIP as of 2018-01-11:
1. Updated compiler and library sources after second proofing pass.
2. Updated Generator and Compiler object code and build decks.
3. Updated Generator and Compiler loadable object tapes.
4. Corrections to BAC-Assembler and enhancements for additional card/tape output options.
5. Minor corrections to GEN-Assembler.
6. Updates to miscellaneous utilities and example programs.
2018-01-12 08:16:52 -08:00
Paul Kimpel
3b3dedbcaa Commit current BALGOL compiler WIP:
1. Corrections and enhancements to BAC-Assembler and GEN-Assembler, including the ability to pre-load literal pools in order to obtain literal address assignments that match the transcription.
2. Additional proofing corrections to compiler and library.
3. Current versions of Generator and Compiler tapes -- do not reflect the most recent BALGOL-Main corrections.
2018-01-03 08:11:08 -08:00