PiDP-8/I Software

Timeline
Log In

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2025-10-07
03:07
Smaller Multiply/Divide enables us to move SWPEM into the page with MUY and DIV, eliminating use of the possibly precious memory elsewhere. Leaf check-in: a938e79032 user: poetnerd tags: uwf
02:54
I merged the stand-alone and in-line emulation testing. It may be a little slower to tease out root causes, but duplicated code is gone. check-in: a31eaaa143 user: poetnerd tags: uwf
02:04
Integrated the division algorithm from DECUS 8-436. They missed an optimization that I made. Resulting code is much smaller. I compared my multiply emulation against DECUS 8-436. I believe mine is smaller and more accurate. All current tests pass. check-in: 2e63f39cf0 user: poetnerd tags: uwf
2025-10-06
21:14
Fixed the problem with overflow detection aided by DECUS 8-436 and Claude. This now passes all known tests. check-in: fe92fd8b3e user: poetnerd tags: uwf
16:25
A little tightening of code so it will integrate into U/W FOCAL. New failure case, dividend =0 should return AC=0 MQ=0 but currently complains of underflow. check-in: 853df31a5c user: poetnerd tags: uwf
03:31
Reverting a bunch of "cleanups" that made a mess of things. Added a test case 24 that was failing. Root cause: No detection that the remainder became zero, and no more subtraction was needed. However the code seems sub-optimal. check-in: 53d0bf515c user: poetnerd tags: uwf
2025-10-02
22:39
Start of cleanup of code. Baseline before we merge EMTEST into TESTME. check-in: ce89df8add user: poetnerd tags: uwf
04:14
This version appears to work!!! It passed simple smoke tests in U/W FOCAL: T 3; T PI; T 10 / 3. Also all the hard-coded tests pass. TODO: More testing, and maybe some optimization. check-in: 3cfebe4fab user: poetnerd tags: uwf
2025-09-30
02:10
Found and fixed problem with the run-time tester corrupting itself. (Fast exit was leaving args from previous calls unset.) Multiply seems fully working. New test case shows divide is not working yet. Updated fossil-settings/crlf-glob to be quiet about various PDP-8 source trees having cr/lf line endings. check-in: 3328f43127 user: poetnerd tags: uwf
2025-09-26
20:58
Yet another snapshot. If I disable the in-line testing multiply emulation seems to work in U/W FOCAL. But with testing enabled, a test case that passes stand-alone chokes. I think I've got some kind of uninitialized data or reuse bug I'm not seeing. Cleaned up a comment in 8NFPP.PA. Fixed how in-line testing was returning EAE rather than Emulated results. Added another test case. check-in: 0fd82c1c85 user: poetnerd tags: uwf
2025-09-21
17:02
Moving the uwf-noeae-test script to the testing directory. check-in: bce1ab5268 user: poetnerd tags: uwf
16:58
Renamed and reordered placement of temporaries to make sorting out bugs easier. Tests pass, but UWFNOE still fails in a non-obvious way. So this is a snapshot checkin. check-in: 0aeb272361 user: poetnerd tags: uwf
2025-09-14
23:26
Found a test case that fails. 8NFIO will need surgery to fix. Checking in the current broken version as a fall back. check-in: acd3fc43a2 user: poetnerd tags: uwf
2025-09-13
03:58
Snapshot: Small update to doc. 8NFIO.PA now auto-detects whether it's stand-alone or part of UWF. A couple bug fixes. New test harness: a table of executions, and a stop with easy display of failure in the AC. It passes all tests in the harness but still doesn't work in UWF. Latest multiply fix: We could enter multiply with a non-zero link that the EAE hardware ignored, but that we used. Maybe a similar bug is in the DVI routine. check-in: b75033af80 user: poetnerd tags: uwf
2025-09-12
03:47
Snapshot. Publish current draft of non-EAE support for U/W FOCAL: Merged in trunk changes that came in while I was fiddling with this. Add documentation of what's being done in src/uwfocal/NONEAE.md. Point to that documentation in src/uwfocal/README.md Add 8NFIO.PA and 8NFPP.PA, our non-EAE modules. Update scripts/misc/uwfocal-rk05.os8 to build UWFNOE in addition to UWF16K. Now generate listing and bitmap files for when we will need them. Create new scripts/misc/uwf-noneae-test.os8 to be a quick build of 8NFIO for testing. Current status: The emulation is integrated into U/W FOCAL, and it seems to run without totally killing the interpreter. The EAE emulations pass basic tests. Alas, there are corner cases in the code that are still wrong. Even the simple FOCAL statement, "T 3" does not print a 3.0000000e00 as expected. Instead it leaves the FLAC in a state where no more FPP operations are possible. At least "T PI" produces "3.141721908E+00*" as expected, and it didn't do that yesterday. check-in: 7ada921d22 user: poetnerd tags: uwf
02:43
Bugfix: pip_cp_from uses ptp, that appends to existing files. POSIX semantics and expectation is that the file gets replaced. Now pip_cp_from replaces rather than appends, as we expect. (This probably explains some unexplained behavior through history.) Leaf check-in: c31ff2e107 user: poetnerd tags: trunk
2025-09-04
23:44
Create new branch named "uwf" check-in: 9d32497326 user: poetnerd tags: uwf
21:29
Merge in massive cleanup of all Python code. check-in: 307c149d8e user: poetnerd tags: trunk
21:13
Pull in cleanups learned when trying to submit pdp8_cpu.c upstream to OpenSIMH. check-in: 97bf475e42 user: poetnerd tags: trunk
18:39
Update Changelog.md to begin work towards a new release. check-in: 0523911522 user: poetnerd tags: trunk
2025-09-01
02:37
Ran the whole build and test. Noticed there was a debug message left enabled in simh.py. Turned it off. Leaf check-in: a83a8e064c user: poetnerd tags: pyclean
02:18
Complete migration to Black style: reformat code/docs, update demo script, build - Reformatted Python sources and Markdown examples with Black/blacken-docs - Updated CONTRIBUTING.md for new style - Renamed class-os8script-demo.py → .py.in and fixed shebang - Adjusted auto.def and Makefile.in for new script handling check-in: b3a825e5f8 user: poetnerd tags: pyclean
02:09
docs: reformat Python examples with blacken-docs and update style guide - Applied `blacken-docs` to reflow and standardize embedded Python examples in Markdown files - Updated CONTRIBUTING.md Python style guide to clarify that examples are now formatted with Black (4-space indents, line length 88) - Removed redundant style guide link to Black docs check-in: b32cc76ab3 user: poetnerd tags: pyclean
00:36
Style cleanup: reformat class-os8script-demo.py using Black (no functional changes) check-in: 9ad5fa2c58 user: poetnerd tags: pyclean
00:30
Style cleanup: reformat teco-pi-demo.in using Black (no functional changes) check-in: 40e9c556ee user: poetnerd tags: pyclean
2025-08-31
22:19
Style cleanup: reformat os8pkg.in using Black (no functional changes) check-in: dc04793090 user: poetnerd tags: pyclean
22:09
Style cleanup: reformat os8-run.in using Black (no functional changes) check-in: a5c6bd2e99 user: poetnerd tags: pyclean
22:05
Style cleanup: reformat os8-cp.inos8script.py using Black (no functional changes) check-in: 06f27910d2 user: poetnerd tags: pyclean
21:50
Fix static type check warning when black cut up a couple lines but put the type: ignore on the wrong part of the newly broken line. check-in: 7ceb6d5fe5 user: poetnerd tags: pyclean
21:41
Fix two bugs that crept into os8-cmp through the style fixing: Somehow we lost #!/usr/bin/env @PYCMD@, and _default_sys_image = "@OS8_TOOLTIME@" And style update of os8-progtest.in with Black. Apologies for being lazy and putting 2 changes in one checkin. check-in: bdc7b10c6c user: poetnerd tags: pyclean
21:31
Style cleanup: reformat os8-cmp.in using Black (no functional changes) Tested with command line from usage message: tools/os8-cmp -rk0s bin/ock.rk05 -rk1 bin/v3d.rk05 Additionally, this tool somehow missed some of the style update to use direct import style for typing. That change is here now. check-in: 5bd0ed21a3 user: poetnerd tags: pyclean
20:52
Style cleanup: reformat simh.py.in using Black (no functional changes) Note: tested with make clean; ./configure; tools/mmake; make test. check-in: ac337e16c6 user: poetnerd tags: pyclean
20:23
Style cleanup: reformat os8util.py.in using Black (no functional changes) check-in: 12049a3905 user: poetnerd tags: pyclean
20:19
Style cleanup: reformat os8script.py.in using Black (no functional changes) check-in: 3bf3f7482c user: poetnerd tags: pyclean
19:56
Starting new style change: adopt "black" as the style enforcer. All modules in lib/pidp8i are coverted. This means auto.def's generation of os8opts.py changed too. check-in: 4dfcd76cf0 user: poetnerd tags: pyclean
01:50
Pull in make run-ock from Trunk. check-in: 3bd8daaac0 user: poetnerd tags: pyclean
01:41
Add "make run-ock" to Makefile. Adds run-ock.script.in check-in: 4e2c68b659 user: poetnerd tags: trunk
01:12
Docs: add Python style guide and Table of Contents to CONTRIBUTING.md check-in: c48ab843a8 user: poetnerd tags: pyclean
01:06
style: convert use of the typing module to direct import style Switched from qualified forms like `typing.Dict` to direct imports (e.g. `from typing import Dict`). This is the preferred style in the Python community and improves readability. Style change: use of typing module converted to the "direct import" style. This is apparently the preferred style in the Python community for use of this module. check-in: ee093ed80b user: poetnerd tags: pyclean
2025-08-30
22:52
Refactored use of path_expand and print_expand. path_expand renamed to expand_path. Two copies, one in os8util.py.in and one in os8script.py.in now moved to dirs.in print_expand renamed to expand_message. Moved to new module lib/pidp8i/util.py. check-in: 50792321c1 user: poetnerd tags: pyclean
2025-08-29
17:12
Pruned a data structure definition we aren't using. check-in: 060df43919 user: poetnerd tags: pyclean
17:08
Updated copyright dates. check-in: 640c72a990 user: poetnerd tags: pyclean
02:34
Final cleanup sweep. All static type-check warnings resolved or accounted for. check-in: 8751e93398 user: poetnerd tags: pyclean
2025-08-28
04:13
Cleaned up a couple # type: ignores here too. check-in: 3dfeba5fb7 user: poetnerd tags: pyclean
04:06
Another round of cleanups to eliminate # type: ignore directives. auto.def now generates a tuple rather than an array for opts in os8opts.py check-in: b69dad3975 user: poetnerd tags: pyclean
03:21
Rewrite of os8-cp and os8-cmp to use lib/os8util.py module that holds common code. Eliminated MANY # type: ignore directives. check-in: 30d8afb518 user: poetnerd tags: pyclean
2025-08-27
04:33
Eliminate some # type ignore messages. Cleanup of the action_plan dictionary: Better documentation and now as a TypedDict check-in: 372777a68d user: poetnerd tags: pyclean
2025-08-14
01:53
fix indentation of _command_set check-in: 01230e84c2 user: poetnerd tags: pyclean
01:42
Wrap uses of match.group(x) to deal with possible 'None' value. Pull commands array out of run_script_handle and into a once-only global. check-in: f9601f19df user: poetnerd tags: pyclean
2025-08-13
02:45
Complete first draft: Python code style and typecheck cleanup. Capitalize class names. Eliminate unused imports and variables. Correct a couple failures to say "continue" in error conditions. Add type hints to arguments and return values. All regular expression strings are now 'r' strings. Convert replies from list to tuple. (Makes type hinting simpler and cleaner.) Add bool False component to simh replies to make it the same as os8 replies. Created properties in simh object: child, context, simh_replies, os8_replies simh_replies_rex, os8_replies_rex Quit trying to print and use the _child.before and _child.after values directly: Wrappers around _child.before and _child.after converting non-string values to strings. dbg_before(prefix:str), dbg_after(prefix:str) for debug printing of before and after. child_before(), child_after() converts non-string values to strings. In os8pkg split script merge and install actions into separate procedures. Return empty string instead of None where possible. Taught pip-related procedures how to cope with empty option list. Convert pexpect object from "bytes" to "str" by setting encoding="utf-8" Update example code and .md docs to describe the updated reality check-in: 66b3c8545a user: poetnerd tags: pyclean