PiDP-8/I SoftwareTimeline
Not logged in

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

50 descendants and 50 ancestors of 23f92ab553d56fe8ead96cdc2d230421068d97363f6b6fa73c44b15e410657ff

Merged in the tiny trunk differences relative to the SIMH update accidentally checked in on this branch. Now this branch contains only the Python 2-ism fixes relative to trunk. check-in: 18d667556a user: tangent tags: os8-run-python3
Updated SIMH to latest upstream. No functional change relative to prior source base as far as I can tell from the commit history since the last update. check-in: fc1b9bc0e9 user: tangent tags: trunk
Opening class simh log files in binary mode to avoid a problem introduced by an unbelievably screwy change in Python 3 vs 2: check-in: f921ba10f9 user: tangent tags: os8-run-python3
Replaced use of dict.iteritems() with items() check-in: 394ecc357c user: tangent tags: os8-run-python3
First steps to getting os8-run working with Python 3: this is all of the print() calls. (print() is a function in Python 3, not a keyword as in prior versions, so it requires parens around its arguments, always.) This is the start of a new branch because this won't be the only thing needed to get these programs working under Python 3. This is needed on my macOS box because Anaconda Distribution installs Python 3 as "python", which is arguably wrong, but hopefully we can get os8-run and its helper libraries into a state where they run on both versions so this won't matter any more. This checkin *also* accidentally includes a SIMH update, because I was in the middle of the SIMH update and got distracted by fixing the Python 2-isms and accidentally checked the SIMH changes in as well. The SIMH update should have been on trunk only. I'll fix that on this branch a bit down the line. check-in: 05bd569e5e user: tangent tags: os8-run-python3
Updated bosi script to point at the Fossil 2.8 binary for RPi check-in: 5e51328bc2 user: tangent tags: trunk
Cleanup of all-tu56.os8 to perhaps head off some other race condition. There was a v3f td128 that blew out because of a mounted dt device -- a heisenbug, not reproducible. I've carefully limited the attachment of the dt device, and explicitly detached it now. check-in: 993ffbdfd3 user: poetnerd tags: trunk
Another simh.os8_send_cmd() header comment rewrite. check-in: f02a71584b user: tangent tags: trunk
Fixed a couple of locations where the prompt string passed to simh.os8_send_cmd() wasn't being escaped correctly, potentially leading to a breakage in the caller's state machine. check-in: e8a6d0e354 user: tangent tags: trunk
Increased the default timeout to simh.os8_send_cmd() from 30 to 60 seconds in response to a report from a Raspberry Pi A+ user that the media build process can time out when building with the slow TD8E device. check-in: 614c94da4c user: tangent tags: trunk
Rewrote the simh.os8_send_cmd() function comment for clarity and completeness. check-in: 0043a185db user: tangent tags: trunk
Added explicit license grant to check-in: 5ba94a47d1 user: tangent tags: trunk
Add error detection for LINE TOO LONG IN FILE to Fixes bug f937eb1e32. check-in: 69f9981b49 user: poetnerd tags: trunk
Added a section on CR+LF handling to the CC8 manual. check-in: c8664e03e3 user: tangent tags: trunk
Several small improvements to the CC8 manual check-in: 3cf04448ad user: tangent tags: trunk
Added documentation for putc() and fputc() in doc/ check-in: 5a0c639bfe user: tangent tags: trunk
Clarity fix check-in: ffce738e78 user: tangent tags: trunk
Merged the cc8-octal-output branch down to trunk. check-in: 96ed492d9f user: tangent tags: trunk
Merged in trunk improvements Closed-Leaf check-in: 9492282084 user: tangent tags: cc8-octal-output
Updated ChangeLog for upcoming release to March, February having passed. check-in: 617783a44d user: tangent tags: trunk
Updated the copyright year to 2019 check-in: 9959db70c3 user: tangent tags: trunk
Checkin [a96f0c5f20] missed a location where the old, incorrect "MQO" operator definition in the OS/8 CC8's code generator wasn't changed to the corrected mnemonic, MQA. Bug reported by Ian Schofield. check-in: 9074f0ba54 user: tangent tags: trunk
Added a named anchor to a document check-in: 97ee3f6977 user: tangent tags: trunk
Fleshed out the discussion of malloc() in the CC8 manual, turning it into a new sub-section, "Fun Trivia: The History of malloc()". check-in: cb743198fd user: tangent tags: cc8-octal-output
Found malloc() in UNIX V7, so added that info to the CC8 manual's poin on "no malloc() in CC8". check-in: 4b64cfdc4c user: tangent tags: cc8-octal-output
Updated ChangeLog check-in: a6371d4cad user: tangent tags: cc8-octal-output
Many improvements to the CC8 user manual. Basically, I began re-reading it from the top, improving it along the way with my new understanding of CC8. check-in: 0316450b57 user: tangent tags: cc8-octal-output
Rewrote the history section at the top of the CC8 manual to give a better arc. check-in: 694c027652 user: tangent tags: cc8-octal-output
Updated the CC8 user manual to cover the new octal output default. check-in: 84f718936e user: tangent tags: cc8-octal-output
Squished the bug that prevents this branch from generating code that runs properly: I overlooked the #defines in libc.h which are treated by the compiler as text, not as C integers, so that integer indices emitted in the generated SABR code for calling into LIBC were in decimal but were then interpreted by SABR as octal. If this gave syntactically correct code, it would call the wrong function for every function past index 7. The fact that we never saw it generate syntactically incorrect code merely reflects the fact that we didn't happen to call any functions that used decimal indexes that have no corresponding octal interpretation, a possibility only 1/5 of the time. (e.g. 29) check-in: d5ab8f91d9 user: tangent tags: cc8-octal-output
Merged the CC8 ABSYM and doc changes from trunk into this branch to reduce pointless differences. check-in: f8a2346503 user: tangent tags: cc8-octal-output
Comment improvement check-in: 4693b7fe41 user: tangent tags: trunk
Reverted the changes to the ABSYM declarations in init.h,, and libc.c, and documented the reason why the declarations in these files do not all match, and why they cannot be packed up into the top of any zero page involving LOADER.SV. check-in: 4dfc549077 user: tangent tags: trunk
Ian smacked me with a clue-bat: there are *several* zero pages, and their usages do not conflict! Fixed several bits in the CC8 user manual that resulting from this confusion. (This also explains why the discrepancies between INIT and LIBC's globals don't matter: they're in different fields!) check-in: 3ae7245274 user: tangent tags: trunk
First pass at making CC8 emit octal in SABR output only, and to convert the decimal constants in the static SABR code within, libc.c, and init.h to octal. This also gets rid of all the DECIM directives, since SABR defaults to OCTAL mode. This is on a branch because the result doesn't yet run correctly, and I'm out of time trying to figure out why. check-in: ce071e8713 user: tangent tags: cc8-octal-output
Found yet a *third* copy of the CC8 ABSYM table! These fixups allow the cross-compiler to produce code that links to LIBC properly. That then highlit some differences in the INIT code between and init.h, the latter of which has both more code and more globals. Mainly fixing this involves packing the new globals up tight against those that init.h shares in common with and libc.c, but also a change to the docs to reduce the space available to the [f]printf() buffer yet again. check-in: 778e8ff4ec user: tangent tags: trunk
Fixed indents in CC8 init.h and I've been fighting with these hard tabs all night, and I'm sick of it. They're space indents now, per check-in: e289bdbe25 user: tangent tags: trunk
Merged cc8-libc-zp-reorg branch down to trunk. It appears to be stabilized now. check-in: b0097f70c6 user: tangent tags: trunk
Merged VC8E OPDEF stuff up from trunk to reduce unnecessary diffs Closed-Leaf check-in: 2d4b00518f user: tangent tags: cc8-libc-zp-reorg
Merged VC8E OPDEF feature for CC8 LIBC down from the cc8-libc-zp-reorg fix, where it's out-of-place. check-in: 23f886388e user: tangent tags: trunk
Fixed a CPAGE directive in libc.c that could potentially lead to the LIBC entry point call table being split across pages. check-in: 64f9c6e820 user: tangent tags: cc8-libc-zp-reorg
Checkin [228e1c8b3a] added a comment ending in an exclamation point to HEADER.SB, which is perfectly legal in SABR, but it breaks a hidden contract between the CC0 and CC2 stages of the native compiler, wherein a '!' character terminates the preamble part of the CASM.TX output! This caused un-assemblable SABR output, because everything after that in HEADER.SB got chopped off. (Actually, it was probably treated as the start of the first inline assembly block.) check-in: ae9dda1ecb user: tangent tags: cc8-libc-zp-reorg
Decided to move the LIBC globals previously moved into 10002 thru 10007 to the end of the field 1 zero page, so we can dedicate these 8 locations for user code. Otherwise, user code has no zero page locations they can safely use, which seems rather grabby of us. check-in: ca6257496b user: tangent tags: cc8-libc-zp-reorg
Cherrypicked [52aa88863c] onto trunk, primarily to ensure that those with recent trunk checkouts don't get unexpectedly sent to branch cc8-cleanups. This change is harmless to have in both places. check-in: 0c7432da84 user: tangent tags: trunk
Checkin [1ea9133a37] is incomplete: the CC8 native compiler's HEADER.SB file contains a duplicate of the ABSYM declarations in libc.c, shared between the two CC8 compilers; they need to match! It's not clear to me the consequences of these two not matching, since our tests didn't fail earlier, but there's also no good reason for these to differ. Added comments to reduce the chance of these two pieces of code drifting apart again. check-in: 228e1c8b3a user: tangent tags: cc8-libc-zp-reorg
Added OPDEFs for DILX, DILY, and DIXY instructions to VC8E, shortly to be used within CC8's dispxy() LIBC routine. check-in: 281ab90846 user: tangent tags: cc8-libc-zp-reorg
Comment fix check-in: 52aa88863c user: tangent tags: cc8-libc-zp-reorg
Grammar fix check-in: b2f266258f user: tangent tags: cc8-libc-zp-reorg
Moved [f]printf() buffer down into the otherwise sparsely used zero page, and rearranged the constants previously declared there to make better use of the space available. This then opens another half-page of space for the stack. Updated docs to cover all of this. EDIT: This is the start of a new branch because this checkin breaks some things, and some of the subsequent checkins destabilize CC8. I'm moving it to a branch until all that's fixed. check-in: 1ea9133a37 user: tangent tags: cc8-libc-zp-reorg
Moved the "Strings are of Words, Not of Bytes or Characters" section of the CC8 user manual up within the document to be after the "Character Set" section, where it fits better. (This wasn't really possible back when the latter section was part of the stdio section.) check-in: 7f8d8bcff5 user: tangent tags: trunk
Added more detail about file I/O limitations to the LIBC user documentation section of the CC8 manual. (What used to be the "stdio" section is now broken up into several sections at the same level.) check-in: 23f92ab553 user: tangent tags: trunk
Rewrote the "Inline Assembly in the Native CC8 Compiler" section in the CC8 user manual after learning more about its behavior and limitations. check-in: 573aba2f6a user: tangent tags: trunk
Documented the new ./configure --boot-tape-* options, and updated some of the other configuration option docs in check-in: f5a05c7790 user: tangent tags: trunk
Passing --disable-cc8-cross now effectively sets --disable-os8-cc8. That wasn't necessary before, since we were distributing a pre-built version of the native CC8, but now that we're building it from source, we need the cross-compiler to produce cc8.tu56. check-in: ff7ab04cc3 user: tangent tags: trunk
Updated to cover new CC8 work check-in: 1992d9b147 user: tangent tags: trunk
Moved the "TC08 vs TD8E" and "V3D vs V3F" text from the file to the wiki, and referenced it from the ChangeLog. check-in: 01e0bc0d69 user: tangent tags: trunk
Clarified the tail end of the concrete memory map example in the CC8 user manual. check-in: 3f8a6d035d user: tangent tags: trunk
Fixed a field/page confusion check-in: 4037a35485 user: tangent tags: trunk
Added a missing LOADER prompt in previous check-in: 7e3988ba1e user: tangent tags: trunk
Fixed up a confusing use of LOADER/G in the new Memory Model stuff in the CC8 user manual. check-in: 0b061209fc user: tangent tags: trunk
Decided to put the "1" back at the beginning of the addresses for the UDF ranges in the CC8 manual: it's a pretty good bet that the UDF will remain field 1 despite LOADER jiggery-pokery. check-in: d166926273 user: tangent tags: trunk
Changed all of the bare CRs in the output from the final stage of the OS/8 CC8 (CC2.SV) to CRLFs. This solves a problem where PIP couldn't read the input file correctly, preventing us from using os8-cp in ASCII mode to copy the CC.SB file out to examine it in a civilized text editor. check-in: 529c0ee697 user: tangent tags: trunk
Changed all uses of fprintf() in src/cc8/os8/p8.c that don't use printf() format specifiers to fputs() instead, saving 200 core memory locations due to the lower amount of stack manipulation required to call a straight function with a single parameter. check-in: 0b3919909f user: tangent tags: trunk
Major improvements to the Memory Model section of the CC8 user manual following more RTFMing and experimentation. check-in: 8a9fab096f user: tangent tags: trunk
Much more detail in the Memory Model section of the CC8 manual after spending some time RTFMing and trying to figure out how CC8 and the stack it's built atop (FORTRAN II, SABR, LOADER) lay things out in memory. check-in: e5dc02cc2d user: tangent tags: trunk
Documented the breakdown of Field 1 usage by CC8 check-in: f289a33de1 user: tangent tags: trunk
src/cc8/os8/ was using size-4 hard tabs to emulate size-8 hard tabs, causing ugly output when you TYPE CC.SB or HEADER.SB on the OS/8 side. Changed these to size-8 hard tabs. Also added a Vim modeline to the top of the file to ensure that Vim (at least) will preserve our intent here. check-in: e7dd3c2c38 user: tangent tags: trunk
Added a paragraph explaining the existence of TADI and such in CC8 output. check-in: 571e4b9d7f user: tangent tags: trunk
Fixed a bug introduced by [c20811f34c] affecting uses of printf "%d": the implementation wasn't passing "10" as the new radix parameter. It wasn't caught because CC8, being a K&R dialect, doesn't need or support function prototypes. check-in: a230f38ad3 user: tangent tags: trunk
Clarifications to poetnerd's recent additions to the CC8 manual check-in: 970e63c338 user: tangent tags: trunk
A few minor updates: Native compiler needs 20K; Added mention of the current state of the pre processor, I.E. it does have some support in both compilers, including #asm. check-in: b76c7b756c user: poetnerd tags: trunk
Improved the section on Optimization in the CC8 manual check-in: fbb5c3e12f user: tangent tags: trunk
Typo fix check-in: 35b5b4b6f0 user: tangent tags: trunk
Added "Predefined OPDEFs" section to the inline assembly section of the CC8 manual, documenting the op-codes CC8 predefines in SABR output. check-in: 4a52fc8c15 user: tangent tags: trunk
Fixed some nonstandard OPDEFs in the SABR code generated by CC8: its "MQA" is normally called "ACL", and its nonstandard "MQO" opcode is what's normally called "MQA". check-in: a96f0c5f20 user: tangent tags: trunk
sprintf() now returns -1 when it hits an unknown format specifier, as cppreference says it should. This is actually smaller than the prior code, which incorrectly returned the number of characters written so far and then failed to terminate the output string. cppreference doesn't say we should terminate the output string in this condition, but the error return is enough to clue the user in that they shouldn't use the output string. check-in: 7e5e3a226d user: tangent tags: trunk
Added note about "no heap/malloc" to the CC8 manual check-in: 47f3716a0e user: tangent tags: trunk
Comment typo fix check-in: 433b6f5813 user: tangent tags: trunk
Added %X support to CC8's sprintf(), now that %x means "lowercase hex." check-in: 99491648cd user: tangent tags: trunk
The CC8 LIBC's itoa() function now has a radix parameter, like the function of the same name common in Windows and DOS C compiler standard libraries. This also effectively exposes the previously internal itoab() function, itoa() basically acting as a wrapper for it for bases other than 10 and for positive values in base 10. That is, the only difference between the two is for negative values in base 10. check-in: c20811f34c user: tangent tags: trunk
Grammar and clarity pass on the CC8 user manual check-in: 650ad501b1 user: tangent tags: trunk
Merged the content of the "Known Bugs in the OS/8 CC8 Compiler" section of the CC8 manual down into the new LIBC reference. check-in: 6edb45e03f user: tangent tags: trunk
Markdown formatting fix check-in: ec6d43e1ec user: tangent tags: trunk
URL fix check-in: 681a96c67d user: tangent tags: trunk
Rewrote much of "The Native OS/8 Compiler" intro material in the CC8 manual to reflect the new os8-run world, free of a pre-built cc8.tu56 image. Also removed cc8-tu56-update, referred to by that section, since it's now replaced by media/os8/scripts/cc8-tu56.os8. check-in: b58ecf4ec5 user: tangent tags: trunk
Typo fixes check-in: 92d5c4b19e user: tangent tags: trunk
Added note about lack of %ld in CC8 sprintf() check-in: e25e988ef8 user: tangent tags: trunk
Collapsed some introductory material in the CC8 manual together to flow better, and change all "I" either to "we" where blame-sharing seems advisable or to the names of particular people where credit direction is required. :) check-in: 6ff36e09c3 user: tangent tags: trunk
Moved a sentence down to make the CC8 doc flow better. check-in: f9acd37731 user: tangent tags: trunk
The documentation for the way fopen() in CC8's LIBC treats file name extensions was wrong. It may *still* be wrong, but I think it's *less* wrong, at least. check-in: daa54b854a user: tangent tags: trunk
Documented xinit() in the CC8 user manual. check-in: 7bde4d409d user: tangent tags: trunk
Added the "Pointers Wrap Around" section to the CC8 manual and referred to it from each function documentation where relevant rather than repeat the warning about pointer wrapping and 4096 word field sizes. check-in: bc9432c9fe user: tangent tags: trunk
Documented LIBC's strstr(), fixed a bug in its implementation discovered while comparing that implementation to our C reference, and clarified the whole "0-terminated word string" vs "NUL-terminated character string" thing. check-in: 3f02d1675d user: tangent tags: trunk
Documented revcpy(), strcpy() and strcat() in CC8's LIBC. check-in: fe8674b377 user: tangent tags: trunk
Clarified matters related to the stock CC8 include files libc.h and init.h in the manual. check-in: 8a7bc70515 user: tangent tags: trunk
The cc8-tu56.os8 script was not copying CCR.BI to DSK:, as earlier CC8 systems did. This invalidates all of the CC8-based test exemplars yet again. Sigh. check-in: 904e54195b user: tangent tags: trunk
Moved the inline assembly and calling convention section of cc8-manual.doc down to be near the Memory Model section, where it better belongs. Lots of improvements to the text after the move. check-in: f1e351cfb8 user: tangent tags: trunk
Added proper documentation for printf() and friends to check-in: 6988e82dd0 user: tangent tags: trunk
Documented memset() and memcpy() in CC8 LIBC. check-in: 0663863c87 user: tangent tags: trunk
Several more LIBC functions documented check-in: 3441874c6e user: tangent tags: trunk
URL fix check-in: 25556d8455 user: tangent tags: trunk