1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-01-13 07:10:08 +00:00

33 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.
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).
2021-09-06 17:28:48 -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.
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
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
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.
2020-05-06 17:24:47 -07: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).
2018-10-28 09:20:26 -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
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.
2018-07-17 06:57:01 -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
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.
2018-03-03 10:18:55 -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.
2018-02-05 09:46:26 -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.
2018-01-12 08:40:49 -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.
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
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.
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.
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
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
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
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
6702824907 Commit development WIP for B220Processor. 2017-02-05 19:56:24 -08:00
Paul Kimpel
b7a68153ed 1. Commit initial register/FF definitions for B220Processor.
2. Commit minor enhancements to B220ControlConsole and organ switch image.
2017-01-29 09:10:21 -08:00
Paul Kimpel
dfcfe00e12 Commit development WIP for B220 Control Console. 2017-01-22 22:52:30 -08:00
Paul Kimpel
9bfb2224b1 Commit initial attempt at design of organ switch images for B220ControlConsole. 2017-01-22 10:00:19 -08:00
Paul Kimpel
a5936cdd03 Commit corrections and enhancements to BAC-Assembler:
1. Remove emulated card reader UI and related timing delays.
    2. Implement CNST string operands spanning card images.
    3. Correct parsing of address pool constants and building of constant pools.
    4. Correct parsing of empty operands.
    5. Rearrange portions of the code, eliminate old stats-gathering prototype code.
Minor corrections to BALGOL-Main transcription.
Corrections and additional transcription for BALGOL-Overlay.
2017-01-08 17:47:29 -08:00
Paul Kimpel
f30992a1de Commit BALGOL-Overlay.baca transcription WIP as of 2017-01-07.
Commit BALGOL-FLOAT.baca intrinsic function transcription.
Commit corrections to BALGOL-Main.baca discovered during debugging of BAC-Assembler.
Commit tools/BAC-Xscript-Reformatter.wsf script to extract card decks from transcription files.
Commit BAC-Assembler corrections and enhancements.
Commit minor additions to B220ControlConsole.
2017-01-07 06:22:12 -08:00
Paul Kimpel
e830d6f124 Commit preliminary 0.00a emulator files for Processor and Control Console cloned from retro-205. 2016-12-29 10:27:45 -08:00
Paul Kimpel
6c699d068f Commit initial BALGOL transcription WIP.
Commit initial web site page and resources.
2016-11-07 08:06:03 -08:00