1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-02-23 07:32:44 +00:00
Commit Graph

72 Commits

Author SHA1 Message Date
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
Paul Kimpel
084926efd8 Commit BALGOL Compiler and Generator WIP. Generator assembles, matches transcribed listing, and appears to work. Compiler runs but has major problems -- additional proofing of transcription required. 2017-12-25 13:34:08 -08:00
Paul Kimpel
a08e63978f Rename remainder of BALGOL-Intrinsics directory to BALGOL-Library. 2017-12-17 12:31:47 -08:00
Paul Kimpel
88fb0e57ea Rename software/BALGOL/BALGOL-Intrinsics/ACOS.baca to software/BALGOL/BALGOL-Library/ACOS.baca
Rename BALGOL-Intrinsics directory to BALGOL-Library.
2017-12-17 12:26:55 -08:00
Paul Kimpel
332a0bed91 Checkpoint BALGOL GEN-Assembler development to date; commit miscellaneous typo corrections to BALGOL transcriptions. 2017-12-12 09:33:25 -08:00
Paul Kimpel
6c51a5803b Commit 220 emulator version 0.4:
1. Minor improvements to magnetic tape implementation and rearrangement of code.
2. Correct Processor CAD/CAA/CSU/CSA operation for operand signs other than 0 or 1.
3. Correct Processor LDB to load only the low-order four digits of the operand into B.
4. Correct Processor SLS shift count; improve mechanization of other shift-left operations.
5. Fix beforeunload event registration for Cardatron and Console devices.
6. Implement "Whippet" mode for Console TTY devices to print at 200 CPS instead of 10 CPS.
7. Expand B220PaperTapePunch translate table to cover all 256 8-bit codes; scroll end of punched data into view.
8. Minor code cleanup in B220PaperTapeReader.
v0.04
2017-11-19 17:56:09 -08:00
Paul Kimpel
654af4f683 Commit 220 emulator version 0.3c:
1. Rework magnetic tape drive implementation to use Promises; refactor and consolidate drive operation routines.
2. Implement remaining magnetic tape operations: MOW, MOR, MRD, MRR, MTS, MFS, MTC, MFC.
3. Implement better error status reporting in mag tape control MISC register.
4. Implement memory and Processor-state dump by clicking the Burroughs "meatball" logo.
5. Implement preliminary run-time statistics on Console.
6. Use Function.bind() to bind context in Processor and mag tape scripts.
2017-11-17 06:29:31 -08:00
Paul Kimpel
4c63d98515 Commit version 0.03b: continue development of magnetic tape drive. 2017-11-02 12:45:33 -07:00
Paul Kimpel
d518d6e044 Commit 220 emulator version 0.3a:
1. Commit initial (incomplete) implementation of magnetic tape drives (TSU) and control: MLS, MRW, MDA, MIW, MIR, MPF, MPB, MPE, MIB, MIE.
2. Change B220SetCallback.js "setImmediate" mechanism to use DOM Promises instead of window.postMessage().
3. Minor styling and window positioning changes.
2017-10-19 09:18:48 -07:00
Paul Kimpel
c465da8eef 1. Commit PRIME.TABLE prime number table generator files to source control.
2. Commit assembly listing for WINTER.PI program.
3. Commit minor cosmetic changes for BALGOL-Main and BALGOL-Overlay.
2017-10-19 08:53:23 -07:00
Paul Kimpel
a95b75bc88 Commit retro-220 version 0.03:
1. Implementation Paper Tape Reader devices and op codes.
2. Commit standard and inverse-format paper tape loaders for WINTER.PI program.
3. Fix positioning of Cardatron and TTY/Paper Tape Punch device windows.
v0.03
2017-05-29 14:03:42 -07:00
Paul Kimpel
8b6199afd8 Commit retro-220 version 0.02:
1. Finish implementation of Cardatron input and output units.
2. Minor corrections to BAC-Assembler script and BALGOL-Generator transcription.
3. Apply band-select "punches" in column 1 of WINTER.PI.card assembler deck.
4. Implement striping on Console register displays to highlight the opcode (62) fields.
5. Implement List-Cards utility to read cards from CR1 and list them on LP2.
v0.02
2017-05-24 09:09:08 -07:00
Paul Kimpel
33c195ae84 Commit release 0.01a:
1. Initial Cardatron implementation with CardatronInput (card reader).
2. Implement default Pi demo program at address 0300.
3. Implement WINTER.PI card-load deck to boot from card reader 1 and run at address 0500.
4. Fix syntax typos in tools/BAC-Assembler.html.
2017-05-20 18:34:01 -07:00
Paul Kimpel
e66666048b Apply correct version 0.01 in Processor (missed on last commit). v0.01 2017-05-13 18:49:44 -07:00
Paul Kimpel
06a4eb3f08 Release emulator version 0.00e:
1. Rework the partial-word operators for better efficiency.
2. Correct emulated processor clock update during I/O operations.
3. Centralize common I/O initialization and termination code.
4. Correct statistics calculations in schedule().
5. Correct timing for integer and floating divide operators.
6. Correct remainder shifting in floating divide.
7. Implement diagnostic monitor window, opened by double-click on retro-220 logo on home page.
8. Correct timing for ConsolePrinter carriage control functions.
9. Implement simple demo programs pre-loaded into memory.
2017-05-13 18:44:56 -07:00
Paul Kimpel
9fa3d967d2 Commit preliminary version 0.00e:
1. Initial implementation of partial-word operators CFA, CFR, IFL, DFL, DLB, BFA, BFR, STA, STR, STB.
2. Implemement ADL, IBB, DBB, RTF, BOF, BRP, BSA, BCH, BCL, BCE, BCU, BCS, SOR, SOH, IOM, LDR, LDB, LBC, LSA, STP, CLA, CLR, CLB, CLL, all shifts.
3. Implement variable-length BCD adder.
4. Additional arithmetics methods for Register class.
5. Correct re-focus of ConsoleKeyboard window.
6. Allow ConsolePrinter CR/LF buttons to operate while in remote state.
2017-05-10 08:45:06 -07:00
Paul Kimpel
df29455c91 Commit version 0.00d:
1. Implement console teletype printer and paper tape punch devices.
2. Correct timing mechanism and operation complete processing for asynchronous (I/O) processor mode.
3. Delete extraneous alarm toggles from B220Processor.
4. Correct Reset And Transfer switch so it will work when the Processor is running.
5. Implement Hello World default program for SPO at address 0020.
6. Change keyboard keystroke assignments for B220ConsoleKeyboard.
7. Implement Reset-to-Defaults feature for B220SystemConfig.
8. Implement DOM Element.classList for B220Util class attribute manipulation.
9. Minor typo correction to BALGOL-Generator.bacg.
2017-04-29 13:41:02 -07:00
Paul Kimpel
bd285f4308 Commit proofing corrections to BALGOL-Generator.bacg transcription. 2017-04-11 05:58:44 -07:00
Paul Kimpel
3f3bf2cd85 1. Commit proofing updates to BALGOL-Intrinsics transcriptions.
2. Commit README for BALGOL-Examples.
2017-03-30 08:18:49 -07:00
Paul Kimpel
f891d5198d Commit emulator version 0.00c:
1. Initial implementation of integer and floating arithmetics, RND (16), and EXT (17) (not fully tested yet).
2. Implement Console Keyboard, integration with main Console, and KAD (08) instruction.
3. Implement BCS (38).
4. Correct S-to-C and S-to-P stop detection.
5. Improvements to lamp glow computation and management.
6. Implement right-hand clear bars on Console registers.
2017-03-12 12:30:07 -07:00
Paul Kimpel
cf932d5c85 1. Commit proofing updates to BALGOL-Main and BALGOL-Overlay transcriptions.
2. Correct and reorder op code table in BAC-Assembler.
3. Commit tools/BAC-DeckGen.cmd script to generate card deck files from transcription files.
4. Add /Q (quiet mode) switch to BAC-Xscript-Reformatter.wsf, correct problem with output of last card.
5. Commit examples 2, 3, and 4 from BALGOL manual; commit corrections to example 1.
2017-03-12 08:15:16 -07:00
Paul Kimpel
af47e574af 1. Commit proofing corrections to BALGOL-Main transcription.
2. Commit initial sample BALGOL programs from BAC-220 manual.
3. Modify BAC-Assembler to allow independent selection of listings from pass 1 and pass 2.
2017-03-05 09:21:56 -08:00
Paul Kimpel
a47ea448e2 Emulator version 0.00b:
Initial development of memory access, Fetch/Execute, add/subtract, BUN, and Console integration.
2017-03-04 17:43:48 -08:00
Paul Kimpel
ee513aec18 1. Commit completed initial transcription of BALGOL compiler generator listing -- not yet proofed.
2. Commit correction to BAC-Assembler: $$ strings represent an embedded carriage return, which prints as "$" on Cardatron.
2017-02-12 08:30:51 -08:00
Paul Kimpel
6702824907 Commit development WIP for B220Processor. 2017-02-05 19:56:24 -08:00
Paul Kimpel
ead7a59ba7 1. Commit BALGOL Generator transcription WIP.
2. Add ' as alternate for @ and < as alternate for ) and ¤ in BAC-Assembler.
2017-02-05 06:47:31 -08:00