PiDP-8/I Software

Timeline
Log In

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

50 check-ins occurring around 7f8d8bcff5fa2d72.

2019-02-22
11:12
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
2019-02-21
12:34
Updated ChangeLog check-in: a6371d4cad user: tangent tags: cc8-octal-output
11:55
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
09:08
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
08:55
Updated the CC8 user manual to cover the new octal output default. check-in: 84f718936e user: tangent tags: cc8-octal-output
08:12
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
2019-02-20
12:21
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
12:13
Comment improvement check-in: 4693b7fe41 user: tangent tags: trunk
12:10
Reverted the changes to the ABSYM declarations in init.h, header.sb, 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
2019-02-19
11:30
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
10:44
First pass at making CC8 emit octal in SABR output only, and to convert the decimal constants in the static SABR code within header.sb, 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
09:33
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 header.sb 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 header.sb 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
08:48
Fixed indents in CC8 init.h and header.sb: I've been fighting with these hard tabs all night, and I'm sick of it. They're space indents now, per HACKERS.md. check-in: e289bdbe25 user: tangent tags: trunk
08:32
Merged cc8-libc-zp-reorg branch down to trunk. It appears to be stabilized now. check-in: b0097f70c6 user: tangent tags: trunk
08:01
Merged VC8E OPDEF stuff up from trunk to reduce unnecessary diffs Closed-Leaf check-in: 2d4b00518f user: tangent tags: cc8-libc-zp-reorg
07:58
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
07:04
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
03:55
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
03:31
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
03:13
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
02:50
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
02:39
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
02:06
Comment fix check-in: 52aa88863c user: tangent tags: cc8-libc-zp-reorg
01:31
Grammar fix check-in: b2f266258f user: tangent tags: cc8-libc-zp-reorg
01:23
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
2019-02-13
19:13
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
19:12
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
18:52
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
06:13
Documented the new ./configure --boot-tape-* options, and updated some of the other configuration option docs in README.md. check-in: f5a05c7790 user: tangent tags: trunk
05:27
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
2019-02-12
06:13
Updated ChangeLog.md to cover new CC8 work check-in: 1992d9b147 user: tangent tags: trunk
05:53
Moved the "TC08 vs TD8E" and "V3D vs V3F" text from the ChangeLog.md file to the wiki, and referenced it from the ChangeLog. check-in: 01e0bc0d69 user: tangent tags: trunk
05:15
Clarified the tail end of the concrete memory map example in the CC8 user manual. check-in: 3f8a6d035d user: tangent tags: trunk
05:13
Fixed a field/page confusion check-in: 4037a35485 user: tangent tags: trunk
05:11
Added a missing LOADER prompt in previous check-in: 7e3988ba1e user: tangent tags: trunk
05:11
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
05:03
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
04:51
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
04:46
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
04:08
Major improvements to the Memory Model section of the CC8 user manual following more RTFMing and experimentation. check-in: 8a9fab096f user: tangent tags: trunk
03:05
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
01:23
Documented the breakdown of Field 1 usage by CC8 check-in: f289a33de1 user: tangent tags: trunk
01:03
src/cc8/os8/header.sb 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
01:01
Added a paragraph explaining the existence of TADI and such in CC8 output. check-in: 571e4b9d7f user: tangent tags: trunk
2019-02-11
09:13
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
08:06
Clarifications to poetnerd's recent additions to the CC8 manual check-in: 970e63c338 user: tangent tags: trunk
05:41
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
05:15
Improved the section on Optimization in the CC8 manual check-in: fbb5c3e12f user: tangent tags: trunk
05:06
Typo fix check-in: 35b5b4b6f0 user: tangent tags: trunk
05:05
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