1
0
mirror of https://github.com/pkimpel/retro-b5500.git synced 2026-02-13 03:34:29 +00:00
Commit Graph

66 Commits

Author SHA1 Message Date
Paul Kimpel
9db6ca5147 Commit version 1.03c:
1. Implement new single-precision add/subtract routine that more closely follows the real B5500 logic.
2. Implement tests/B5500SPMathTest.html testbed to exercise the new add/subtract implementation.
3. Implement new way to focus the ConsolePanel window after the SPO becomes ready during initialization.
4. Add "?db=" parameter to tools/B5500DeleteStorageDB.html to specify the disk storage data base name.
5. Implement "Execute Single" button in B5500SyllableDebugger to preserve the T register when testing a single syllable.
6. Implement "octize" and "pic*" function in B5500Util to support tests/B5500SPMathTest.html.
7. Commit minor changes to webSite index page and GitHub README.md.

Commit version 1.03b:
1. Remove initial window open/close (to destroy any existing windows) from Console, I/O device classes, and configuration utilities.
2. Commit Mark XV MESAGE/CANDE file for reconstructed SYSTEM tape, donated by Rich Cornwell.

Commit version 1.03a:
1. Correct character translation for even-parity tape operations.
2. Implement normal tape space operation for tape maintenance space operation (temporary solution to fix problem with Mark XV tape parity recovery -- Mark XIII did not issue maintenance space I/Os).
3. Modify B5500MagTapeDrive to report EOF+parity when attempting to ready beyond the end of the internal tape image (previously reported only parity error).
4. Restate B5500Processor delay deviation and processor slack time average calculations and increase the alpha for the running exponential averages to smooth out the reporting on the B5500ConsolePanel.
5. Improve delay timing calculation for B5500CardPunch, B5500CardReader. and B5500LinePrinter.
2016-04-18 18:08:41 -07:00
Paul Kimpel
356fb5584e Commit release 1.03:
1. Alter method of writing disk sectors to IndexedDB, to avoid dragging along the entire 16KB IO Unit buffer area and unintentionally inflating host disk usage by 30-60X (ouch). This was causing Quota Exceeded errors in recent versions of Firefox.
2. Add onabort traps in B5500DiskUnit to catch QuotaExceeded errors.
3. Modify delay-deviation adjustment mechanism in B5500SetCallback to avoid oscillating between positive and negative cumulative deviations.
4. Correct tape reel angular motion in B5500MagTapeDrive, especially during reverse tape movement.
5. Fix bug with reporting memory parity error during tape I/O, should that ever occur.
6. Reset CPA Algol Glyphs option in default system configuration template.
7. Allow tools/B5500LibMaintDecoder to examine an entire .bcd tape image file instead of just the first 64KB.
8. Add USE SAVEPBT to default options in tools/COLDSTART-XIII deck.
9. Eliminate extraneous "schema update successful" alert when altering a disk subsystem configuration.
10. Commit minor corrections to source/B65ESPOL/SOURCE.alg_m from Richard Fehlinger.
2015-08-22 16:46:22 -07:00
Paul Kimpel
904404fd70 Commit new files missed in initial release 1.02 commit. 2015-06-14 19:08:04 -07:00
Paul Kimpel
f1fe18dab3 Commit release 1.02:
1. Move project from Google Code to GitHub (https://github.com/pkimpel/retro-b5500/). Update links and help pages; convert wiki pages to GitHub's MarkDown format.
2. Implement emulator-hosted memory dump to a tape image that can be saved and input into the B5500 DUMP/ANALYZE utility for analysis. Activated by clicking the NOT READY button on the Console.
3. Fix bad assignments to Processor X register in arithmetic ops (affected only SyllableDebugger script).
4. Remove IndexedDB.openDatabase() version parameter so the B5500ColdLoader and tools/ scripts will work in non-Firefox browsers.
5. Add a "?db" query string parameter to the tools/scripts so these scripts can open disk subsystems other than B5500DiskUnit.
6. Correct pre-allocated file locations and ESU card in tools/COLDSTART-XIII.card.
7. Implement new double-click mechanism to copy and clear the contents of card punch, datacom terminal, and line-printer output areas to a temporary window for subsequent copying or saving.
8. Correct handling of Ctrl-B (break), Ctrl-D (disconnect request), Ctrl-E (WRU), Ctrl-L (clear input buffer), and Ctrl-Q (alternate end-of-message) in B5500DatacomUnit.
9. Implement reporting of Model IB (slow, bulk) disk in B5500DiskUnit readInterrogate.
10. Implement detection of browser IndexedDB quota-exceeded errors in B5500DiskUnit (primarily to handle the fixed 2GB limit for off-line storage in Firefox).
11. Correct problem when line printer exhausted paper and FORM FEED triple-click did not clear the condition.
12. Eliminate BOT marker sensed in result for tape drive Write Interrogate operation -- Mark XIII and XV MCPs treat this as an error and will not purge blank tapes because of it.
13. Fix double-click of SPO INPUT REQUEST button either sending a duplicate interrupt to the system or the second click moving focus from the SPO input box.
14. Further tuning of delay-deviation adjustment mechanism in B5500SetCallback.js.
15. Reinstate ability of SPO to wrap long outputs to additional lines (apparently lost with new SPO input mechanism in 1.00).
16. Commit preliminary COOLSTART-XIII.card and MCPTAPEDISK-XIII.card decks.
2015-06-14 19:06:27 -07:00
paul.kimpel@digm.com
8b0d19deba Release emulator version 1.00:
1. Implement new system and disk subsystem configuration mechanism.
2. Implement initial Mark-XIII Cold Start card deck for use with new configuration interfaces.
3. Deprecate use of B5500ColdLoader.html script (replaced by new configuration mechanism and Cold Start deck), but correct and enhance IndexedDB database detection, creation, and deletion in it.
4. Implement "Application Cache" support to allow emulator to run off-line in a browser.
5. Implement web-font support and update all UIs to use DejaVu Sans and DejaVu Sans Mono from downloaded .woff or .ttf font files.
6. Rework some code in Processor OPDC, DESC, and indexDescriptor routines, attempting to resolve Flag Bit errors (issue #23). This appears to result in some improvement, but we still see them occasionally under load.
7. Line Printer:
    - Implement new line printer driver with more realistic UI and operator controls.
    - Implement Algol Glyphs option to render special Algol characters in Unicode.
    - Implement support for optional "greenbar" shading on the "paper".
8. SPO:
    - Redesign SPO driver to accept input from a text <input> element instead of capturing keystrokes directly from the window or "paper" <iframe>. This was done to allow input from tablet and mobile devices that will not pop up a keyboard unless an input-like element has the focus.
    - Implement Unicode Algol Glyphs support on output.
    - Intelligently resize "paper" area when SPO window is resized.
    - Accept "_" as a substitute for "~" as end-of-message on input.
9. Card Punch:
    - Implement Unicode Algol Glyphs support on output.
    - Implement stacker-full annunciators in UI.
10. Card Reader:
    - Implement Unicode Algol Glyphs support on input.
    - Accept "_" as a substitute for "~" on input.
11. Disk:
    - Adapt B5500DiskUnit driver to new configuration mechanism.
    - Implement support for Model-IB (slow) disk and non-DFX disk storage configurations; support up to 20 EUs.
    - Implement check for DKA readiness in cc.load() if not doing card-load-select.
12. Datacom:
    - Rework datacom driver keystroke handling for compatibility with Google Chrome.
    - Correct typo (line 437) in B5500DatacomUnit reported by Peter Grootswagers (issue #28).
13. Magnetic Tape:    
    - Implement more granular tape reel animation in B5500MagTapeDrive.
    - Open the tape loader window on top of its device window.
14. Correct color of NOT READY lamps in peripheral device UIs; convert <progress> bars to <meter> elements.
15. More intelligently resize peripheral UI controls when their window is resized.
16. Implement lamp test during power-on in B5500Console.
17. Illuminate NOT READY light on Console at power-on if certain minimum configuration requirements are not met.
18. Set all HTML <meta> Content-Type character sets to UTF-8 (were ISO-8859-1); correct problem with FireFox requiring the character set to be specified within the first 1024 characters of an HTML file.
19. Clean up and refactor CSS style sheets
20. Split Javascript code out from B5500Console.html to new B5500Console.js.
21. Refactor common UI routines into webUI\B5500Util.js.
22. Move images and fonts to new webUI/resources directory; rearrange files in webUI/tool, tools, tests, source directories of repo.
23. Make significant wiki updates to document the new features in this release.
2014-09-29 15:28:56 +00:00
paul.kimpel@digm.com
4c51038c86 1. Commit additional proofing changes by Jim Fehlinger and Paul Kimpel to B6500 ESPOL as of 2014-06-08.
2. Commit miscellaneous proofing corrections by Paul Kimpel to other transcribed sources.
2014-06-16 14:35:25 +00:00
paul.kimpel@digm.com
085bfd48da Release emulator version 0.19:
1. Implement write to tape and persistence of tape image data.
2014-01-10 22:17:12 +00:00
paul.kimpel@digm.com
2dadec8b8b Release emulator version 0.17:
1. Enable (finally!) functioning of P2, the second processor, in CentralControl and Processor.
2. Fix bugs in Character Mode syllables FAD, FSU: initial compare of operands was alphanumeric instead of numeric.
3. Fix bugs in Character Mode syllables TRN, TRZ, TBN: non-boundary destination words were not being fetched into the B register.
4. Enable configuration of additional tape drives (up to the maximum of 16).
5. Implement new flip-flop latching mechanism in CentralControl for use by B5500Console.
6. Optimize clearing of interrupts in Central Control.
7. Implement preliminary mechanism to allow P2 to be added to the configuration temporarily without altering B5500SystemConfiguration.js.
8. Implement new average slack and delay algorithms in Processor.schedule().
9. Optimize some Character Mode syllables by substituting local variables for "this" properties.
10. Fix bugs in Processor single-precision divide syllables leaving the stack in an incorrect state after a divide by zero in Control State.
11. Further minor tweaks to performance throttling.
12. Optimize references to this.cc in Processor.run().
13. Minor improvements to B5500MagTapeDrive: eliminate oscillation at load point, improve timing of rewind operations.
14. Implement build-release.cmd script to generate emulator release archive files.
15. Commit initial Mark-XVI TSSINT transcription from Fausto Saporito.
2013-12-16 04:52:03 +00:00
paul.kimpel@digm.com
2260803c51 Release emulator version 0.15:
1. Initial implementation of a datacom terminal.
2. Initial implementation (read-only) of magnetic tape drives.
3. Further work towards getting P2 to function (but not working yet).
4. Allow device driver classes to be optionally included in the global UI script.
5. Fix callback arguments handling in SetCallback.
6. Decrease width of SPO window slightly.
7. Improve trapping and printing of SPO keystrokes, based on datacom implementation.
8. Minor performance tuning improvements.
9. Dump raw header words in octal in tools/B5500DiskDirList.html script.
10. New wiki pages and several updates to existing ones.
2013-11-15 05:33:58 +00:00
paul.kimpel@digm.com
72fca54c23 1. Release emulator version 0.14.
2. Fix normalization and rounding problems in Processor.
3. Fix Card-Load-Select -- emulator now boots from cards.
4. Commit LDCNTRL label and end cards to source CONTROL.DECK.job
5. Delete unused activeIOUnit property in all I/O drivers.
6. Change CardReader to reset file selector control when hopper becomes empty, instead of when START button is clicked.
7. Minor adjustments to CentralControl annunciator layout and behavior on Console.
8. Increase SPO paper scroll-back to 1500 lines (was 500).
9. Correct Card-Load-Select behavior in SyllableDebugger.
10. Implement setCallback() to replace setImmediate() in SyllableDebugger.
2013-10-06 18:26:47 +00:00
paul.kimpel@digm.com
7c9cab76ba 1. Release emulator version 0.12.
2. Debug Processor for multi-processor operation (not working yet).
3. Further refinements to Processor.schedule() and throttling management.
4. Correct Processor fetch of Initiate Control Word for IP1 and IP2.
5. Enable second Disk File Control Unit (DKB) -- works.
6. Fix minor P1 bug in cc.clearInterrupt().
7. Reset file selector control in B5500CardReader to allow same deck to be reloaded under Google Chrome.
8. Fix (finally) creation of SYSTEM/LOG and DIRCTRY/DISK in B5500ColdLoader.
9. Implement tools/B5500DiskDirFixer.html and tools/B5500DiskSystemLogFixer.html utilities to correct bad directory entries due to improper log creation in B5500ColdLoader.
10. Correct tools/LOG-MAKER.job to create SYSTEM/LOG on systems that do not have one.
11. Do not output zero-length lines (mem inhibit) with zero spacing in B5500DummyPrinter.
12. Implement separate setTimeout() tokens for input and output in B5500SPOUnit.
13. Additional de-anonymization of functions.
2013-07-29 05:15:41 +00:00
paul.kimpel@digm.com
27bd443f7c 1. Commit emulator release 0.10.
2. Inhibit peripheral device windows from being closed while emulator is active.
3. Shut down peripheral devices and close their windows as part of cc.powerOff().
4. Add shut-down code to peripheral drivers.
5. Ensure SPO is ready in cc.load().
6. Enable emulator version display on B5500Console.
7. Clear DummyPrinter window when it is double-clicked (finally got this working).
8. Fix problem with "/" not accepted by SPO input in Google Chrome.
9. Commit ESPOL binary card loader image.
10. Fix problem with intensity levels in B5500Console NORMAL/CONTROL lights.
11. Attempt to enable emulator and utilities for Safari-style IndexedDB.
2013-07-15 03:31:34 +00:00
paul.kimpel@digm.com
ef566d4447 1. Release emulator version 0.09.
2. Implement differential read vs. write memory cycle timing (2us vs 4us).
3. Implement setImmediate() instead of SetTimeout() for I/O forking in IOUnit.
4. Time I/Os from initiation in IOUnit instead of peripheral device driver.
5. Accumulate Control and Normal state clocks separately for use in UI displays.
6. Rework Processor.schedule() delay management for use with setImmediate()
7. Accumulate average processor delay delta for use in UI displays.
8. Enable third I/O unit and all eight memory modules in B5500SystemConfiguration.
9. Clone B5500LibMaintDir.html from B5500LibMaintMapper.html to list files on a tape image.
10. Implement multiple-file selection in B5500CardReader; fix markup for Firefox 22.
11. Implement more granular Control/Normal State light intensity and PA Delay delta in B5500Console.
12. Attempt (again) to fix creation of SYSTEM/LOG file in B5500ColdLoader.
13. Create tools/LOG-MAKER.job deck to create SYSTEM/LOG on a running emulator instance.
2013-07-08 04:27:51 +00:00
paul.kimpel@digm.com
0563664c73 Commit ESPOL CHARMODE program used for initial testing of character mode syllables. 2013-06-15 11:16:40 +00:00
paul.kimpel@digm.com
15fc6c5a0b 1. Finalize and release emulator version 0.05.
2. Fix (we hope) the nasty problem that was causing Invalid Address out of COM5 after large compiles -- bug in MSCW/MSFF tracing in Processor.exitSubroutine().
3. Implement ability to do a hardware load without initiating P1 in CentralControl (used by SyllableDebugger).
4. De-anonymize object prototype method functions in Processor as an aid when using JS debuggers.
5. Rework storeForInterrupt() and initiate() in Processor.
6. Replace bitmask "AND"s with power-of-two "MOD"s in many places in Processor.
7. Replace many bit(), fieldIsolate(), fieldInsert() calls with mod/div expressions in Processor.
8. Fix a problem existing normalization when an Integer Overflow occurs in Integer Store syllables.
9. Fix missing and superfluous break statements in Processor.run() switch statements.
10. Fix incorrect C-register restoration in Character Mode RCA syllable.
11. Correct test for continuity bit in Processor PRL syllable coding.
12. Correct missing "this." in Processor BRT syllable coding.
13. Change way that delayTime and Processor.procSlack is computed in Processor.run().
14. Correct BCL translation bug and directory EOF detection in B5500ColdLoader.
15. Attempt to initialize SYSTEM/LOG in B5500ColdLoader (not working yet).
16. Implement new retro-B5500-Logo.png.
17. Implement Hardware Load button in SyllableDebugger.
18. Release tools/B5500DiskDirList.html utility.
19. Release tools/B5500DiskFileList.html utility with PBD file special formattring.
20. Restrict directory complement to EU0 in B5500ColdLoader.html.
21. Miscellaneous improvements to comments and cosmetics.
2013-05-27 04:08:34 +00:00
paul.kimpel@digm.com
3db6111394 1. Commit version 0.03 of emulator and tools: this version successfully performs a hardware load from the disk and initiates the MCP.
2. Redesign B5500Console.html to support the Power On, Power Off, Halt, and Load buttons, along with a primitive mechanism to drive the Normal/Control lights.
3. Implement relative URLs for the <script> elements. This is a work in progress.
4. Commit Nigel's fix for the annoying problem with Firefox where typing "/" on the SPO brings up a QuickFind dialog.
5. Commit Mark XIII DCMCP transcription as of 2013-03-20.
6. Move B5500ColdLoader and KERNEL.DISK under webUI directory tree.
2013-03-23 16:33:22 +00:00
paul.kimpel@digm.com
1c3c8ae307 1. Commit emulator files at the point where the Mark XIII MCP appears to be able to initialization.
2. Fix character-mode B-register handling in Processor and slightly optimize some stream syllables.
2. Fix I/O-finished interrupt signaling (or rather, the lack thereof) in IOUnit.
3. Change system option settings in ColdLoader based on recent MCP tests.
4. Commit minor improvements to SyllableDebugger.
5. Commit version of KERNEL object code for use with SyllableDebugger.
6. Commit Mark XVI DCMCP transcription as of 2013-03-17.
2013-03-18 16:10:48 +00:00
paul.kimpel@digm.com
030e1f8d1c Okay, really commit the INCL2OMIT and BICTOEBCDIC utilities as stated in the previous commit, r312. 2013-03-11 04:42:39 +00:00
paul.kimpel@digm.com
a11913299f Correct 8-bit character offsets for PACKEBCDICTOBIC and UNPACKBICTOEBCDIC routines in ALGOLXEM and ESPOLXEM; delete extraneous LibMaintExtract source created during recent SVN repo merge. 2013-03-10 18:17:51 +00:00
paul.kimpel@digm.com
ed2ed08398 Merge existing Google Code repository with development history for B5500 emulator, web UI, miscellaneous tools and prototypes, and Mark XVI DCMCP transcription as of 2013-03-05. Committed notes and log files from the merge and reload process. UUID of the repo has changed, so new check-outs are necessary for all Working Copies. 2013-03-08 03:49:03 +00:00
paul
587989c11b 1. Commit DCMCP transcription as of 2013-03-02.
2. Debugging mods to complete single-stepping through KERNEL bootstrap.
3. Implement FBS and LLL in Processor.
4. Delete old this.access() logic in Processor.
2013-03-03 02:56:25 +00:00
paul
e769899afe Implement BIC/BCLANSI translation in B5500ColdLoader and do disk writes in alpha mode; fix typos in DCMCP transcription. 2013-02-25 12:48:07 +00:00
paul.kimpel@digm.com
85a7419cf1 Fix serious partial-word typo in ESPOL at 05252000 and ESPOLXEM at 23075000; fix other miscellaneous non-critical typos in ESPOL and ESPOLXEM.
Change compilation $ options in KERNEL.
2013-01-28 14:22:41 +00:00
paul
5c99019b0a Implement initial B5500DiskUnit and fix miscelleaneous other minor issues in I/O subsystem. 2013-01-21 01:02:02 +00:00
paul
dce44f5bdb Continue development of B5500ColdLoader.html: load Kernel bootstrap, implement loadAsMCP as loadAsInt, fix several bugs. 2013-01-13 03:23:02 +00:00
paul
01fb4ef831 Commit DCMCP transcription as of 2013-01-07; further development of B5500ColdLoader.html. 2013-01-07 16:15:16 +00:00
paul
7ee0acfdcc Further development of B5500ColdLoader.html; misc corrections to related scripts. 2013-01-07 01:09:16 +00:00
paul
3046e9c3ab Further development of B5500ColdLoader.html. 2013-01-06 02:43:34 +00:00
paul
c57e11fe97 Commit DCMCP transcription as of 2013-01-01; continue development of B5500ColdLoader (cold start working). 2013-01-01 21:54:06 +00:00
paul
243ca17428 Commit DCMCP transcription as of 2012-12-31; continue development of B5500ColdLoader. 2012-12-31 18:00:08 +00:00
paul
1b02f101c8 Commit initial Cold Start loader for IndexedDB disk unit implementation. 2012-12-30 02:04:59 +00:00
paul.kimpel@digm.com
9d6453522f Fix L-register formatting on ALGOLXEM listing (reported by Terry Heidelberg). 2012-12-21 16:51:10 +00:00
paul
c578ebe19c Commit DCMCP transcription as of 2012-12-13; add BCLANSI translation in B5500IOUnit and improve group-mark processing. 2012-12-13 19:40:52 +00:00
paul
a55a6779ab Commit initial I/O Unit development. 2012-12-09 04:18:40 +00:00
paul
ad09fbb13e Commit DCMCP transcription as of 2012-11-09; commit B5500LibMaintMapper.html and directory listings of Sid's Mark VIII tape images. 2012-11-09 15:47:11 +00:00
paul.kimpel@digm.com
737afdb685 Commit initial version of B5500 Library/Maintenance tape file extractor script for ".bcd" format tape data. 2012-11-07 17:27:58 +00:00
paul
856de940e5 Commit updated B5500LibMaintExtract.html and remaining non-code files
converted from Mark VIII tape .bcd files.
2012-10-29 00:17:14 +00:00
paul
a0ecf6534f Commit multi-window version of B5500LibMaintExtract.html and initial
set of files converted from Mark VIII tape .bcd files.
2012-10-27 22:07:28 +00:00
paul
26853a1bf4 Commit initial version of B5500LibMaintExtract.html: decodes tape
directory and disk file headers, and traverses the blocks of 
individual files, but does not yet extract and convert the file 
data.
2012-10-27 17:07:59 +00:00
paul
015a8f2ac0 Commit DCMCP transcription as of 2012-10-25; minor updates to
B5500LibMaintExtract.html.
2012-10-25 15:06:22 +00:00
paul
8049bb0710 Commit initial browser FileSystem/FileWriter test. 2012-10-25 01:43:48 +00:00
paul
7ab6dd126e Commit DCMCP transcription as of 2012-10-23; commit initial version
of B5500LibMaintExtract.html.
2012-10-24 06:28:55 +00:00
paul
feb65345be Commit DCMCP transcription as of 2012-10-22; commit initial version
of B5500LibMaintDecoder.
2012-10-22 14:44:18 +00:00
paul.kimpel@digm.com
2a15295b82 Correct LITC generation in Algol compiler GOTOSOLVER parameter setup. 2012-10-19 16:21:03 +00:00
paul.kimpel@digm.com
bc4f3a49bd ALGOLXEM & ESPOLXEM: get file names using LTITLE instead of TITLE, correct centering of source file name in heading. 2012-10-17 13:34:23 +00:00
paul.kimpel@digm.com
0d33c06db0 Commit PDF-Listing-Column-Ruler.ppt as of 2012-10-03. 2012-10-03 17:42:16 +00:00
paul.kimpel@digm.com
f0cc2c8f51 Commit PDF-Listing-Column-Ruler.ppt as of 2012-04-29. 2012-10-03 17:40:34 +00:00
paul.kimpel@digm.com
51fa4c5d08 Commit changes to ALGOL, ESPOL, and ALGOLXEM sources to allow ALGOL
and ESPOL to be compiled syntax error-free using ALGOLXEM.
2012-09-27 01:13:49 +00:00
paul.kimpel@digm.com
fe39b1cdb4 Commit ESPOL, ESPOLXEM debugging patches and SYMBOL/COOL proofreading corrections as of 2012-08-29. ESPOLXEM now successfully compiles COOL as either the COLD- or COOL-start loader program. 2012-08-29 16:55:20 +00:00
paul.kimpel@digm.com
9e18de0be2 Commit ESPOLXEM source after first successful compile of SYMBOL/KERNAL bootstrap program; commit accumulated corrections to ESPOL and ALGOLXEM sources from ESPOLXEM debugging; commit original transcription of SYMBOL/KERNAL. 2012-08-24 04:29:49 +00:00