PiDP-8/I Software

Timeline
Log In

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

50 most recent check-ins that include changes to files matching 'src/cc8/os8/*'

2021-07-12
12:35
Merged trunk changes in check-in: a9eb4a4733 user: tangent tags: pi4-gpio-clean
2021-02-14
22:51
Merged trunk changes for v20210214 into release branch check-in: 1fa1be1425 user: tangent tags: release, v20210214
2021-02-08
22:07
Cherrypicked the last two changes on the bogus file-renaming branch down to trunk. check-in: 25d04173ec user: tangent tags: trunk
21:55
Removed the last remaining symlinks, being those for CC8's init.h and libc.h files, which CC8 always looks for in the CWD, yet which need to exist in 3 different places. Creating symlinks for the other two at configure time so we no longer need those making checkouts to "fossil set allow-symlnks 1" to avoid screwiness. Closed-Leaf check-in: 3fcbc85340 user: tangent tags: file-renaming
2020-10-31
17:29
Merged trunk changes in check-in: ce293eb061 user: tangent tags: os8pkg
2020-10-27
16:02
Merged CC8 "V2.0" down to trunk. check-in: 9c75595f59 user: tangent tags: trunk
2020-06-16
10:19
Update n8.c to allow for long input lines. Closed-Leaf check-in: ce122dc321 user: isysxp tags: Native-Jun-20
2020-06-15
16:28
Add ctbl.tx which contains a lits of libc functions. check-in: f29f0c5b88 user: isysxp tags: Native-Jun-20
16:18
This is a significant re-write of the native compiler. Numerous additions have been implemented. Missing features from K&R are now only struct/float/function pointers. check-in: cf7e75b64f user: isysxp tags: Native-Jun-20
2020-05-26
19:01
Removed date and version-related comments in CC8: such info belongs in the VCS commit comments, not in source code comments. check-in: a4220bc5c7 user: tangent tags: trunk
18:50
CC8 comment fix check-in: 65085ceb9a user: tangent tags: trunk
17:47
Minor change to c8.c to manage strings ('"'). check-in: ee05493cd8 user: isysxp tags: trunk
2020-05-20
05:05
Merged the May 2020 version of CC8 into trunk. check-in: 5d861a9fee user: tangent tags: trunk
2020-05-11
16:12
Change to c8.c to correctly manage ' character. check-in: 05b89395b2 user: isysxp tags: cc8-2020-05
2020-05-09
12:06
Updated c8.c from CC8 with the version from Ian's latest branch. check-in: de69883598 user: tangent tags: cc8-2020-05
2020-05-08
17:25
This is an update of the native c compiler for OS/8 Please see the file cc8-manual in the doc directory for full details Report any errors to Ian Schofield isysxp@gmail.com Closed-Leaf check-in: 6070d8ffae user: isysxp tags: cc8-may-2020
10:21
Updated OS/8 ("native") CC8 compiler to May 2020 version: allow multline comments; handle \t, \n, and \r in string constants; set high bit in string constants to avoid mishandling; change the way 2-character relational operators are handled to avoid UTF-8 and C language parsing problems; implemented support for the ternary operator (?:); increased the size of one of the symbol tables in the memory map. check-in: e6283d0c01 user: isysxp tags: cc8-2020-05
2020-04-24
19:39
Ian Schofield's April 2020 release of the OS/8 CC8 compiler, adding support for 2-character relational operators (e.g. >=) and the C switch statement. On a branch because we're not yet certain it will make it in the current state into the upcoming release. Closed-Leaf check-in: 66d42bb8a6 user: tangent tags: cc8-2020-04
2019-08-17
23:15
Merged the use of libbcm_host from trunk with Oscar's new GPIO pull up/down setup code to get the best of both worlds. This requires a version of libbcm_host that was only just released: https://github.com/raspberrypi/firmware/issues/1161 check-in: 1eee471981 user: tangent tags: pi4-gpio-clean
2019-08-09
00:39
Removed +x bit on files that don't need to be executable check-in: 453bb7afc7 user: tangent tags: trunk
2019-04-25
09:46
Merged trunk changes for v20190425 into release branch check-in: 2e08e8ff1a user: tangent tags: release, v20190425
2019-03-17
04:55
Merged the cc8-octal-output branch down to trunk. check-in: 96ed492d9f user: tangent tags: trunk
04:51
Merged in trunk improvements Closed-Leaf check-in: 9492282084 user: tangent tags: cc8-octal-output
2019-03-11
00:56
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
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: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
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: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-12
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
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
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
04:30
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
04:18
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
03:49
Comment typo fix check-in: 433b6f5813 user: tangent tags: trunk
03:40
Added %X support to CC8's sprintf(), now that %x means "lowercase hex." check-in: 99491648cd user: tangent tags: trunk
03:31
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
2019-02-10
04:09
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