PiDP-8/I SoftwareCheck-in [a6371d4cad]
Not logged in

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

Overview
Comment:Updated ChangeLog
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | cc8-octal-output
Files: files | file ages | folders
SHA3-256:a6371d4cad4bf074a5bbeb77d862e1cba84c197ed25e65045029500084410192
User & Date: tangent 2019-02-21 12:34:38
Context
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
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.md.

114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132






















133
134
135
136
137
138
139
...
218
219
220
221
222
223
224
225



226
227
228
229
230
231
232
233
...
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
        use a static binary image shipped in the Fossil code repository.
        The primary practical upshot of this is that you can now change
        the native OS/8 CC8 source code on the host side and just say
        “`make`” to get a new RK05 disk pack with the new code running
        in it. If you don’t get how cool this is, you don’t understand
        it properly. :)</p>

    *   <p>Warren Young greatly expanded the [CC8 user manual][cc8m]. It
        now answers many more questions, reveals many previously hidden
        details, fully documents LIBC’s behaviors, and documents the CC8
        memory model.</p>

    *   <p>Warren and Ian collaborated on fixes to the native compiler
        and its LIBC to fix a bunch of bugs and improve its conformance
        to Standard C. It’s still miles from passing any ISO C
        conformance suite, but it should violate fewer expectations now.
        This work does change the API and ABI of CC8’s LIBC somewhat, so
        if you have existing code, you might want to read the new manual
        to work out what’s needed to port that code.</p>























*   Since the beginning of this project, we've called our modified
    version of the SIMH PDP-8 simulator `pidp8i-sim`.  With this
    release, we hard link that program to `pdp8`, the simulator's name
    in the upstream distribution of SIMH.  When called by that name, our
    simulator suppresses all of the PiDP-8/I extensions.

................................................................................
*   Fixed a bug going clear back to the epochal v20151215 release which
    can cause an OSR instruction to incorrectly set the Link bit if the
    next GPIO pin up from those used by the SR lines happens to be set
    when you issue that instruction.

*   The `tools/mkbootscript` program which translates palbart assembly
    listing files into SIMH boot scripts was only writing a SIMH "dep"
    command for the first word.  This affected some of the tty output



    from `hello.script` and `pep001.script`.

    While in there, made several other improvements to the script.

*   The `examples/hello.pal` program was badly broken in prior releases.

    *   <p>It was skipping the first character ("H") in its output
        message.</p>
................................................................................

*   The software now builds and runs on FreeBSD.  This just a step
    toward support for FreeBSD for the Raspberry Pi: we haven’t tried to
    make the GPIO stuff work at all yet.  For now, it just lets this
    software be used on your FreeBSD desktop or server machine.  It may
    allow building on other BSDs, but that is untested.

*   A year of maintenance and polishing, much of it resulting in
    documentation and build system improvements.

[cc8m]: https://tangentsoft.com/pidp8i/doc/trunk/doc/cc8-manual.md
[pv]:   https://tangentsoft.com/pidp8i/doc/trunk/README.md#systemd
[sc85]: https://github.com/ncb85/SmallC-85
[tctd]: https://tangentsoft.com/pidp8i/wiki?name=TD8E+vs+TC08
[v3df]: https://tangentsoft.com/pidp8i/wiki?name=OS/8+V3D+vs+V3F







|
|
|
|








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|
>
>
>
|







 







|







114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
...
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
...
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
        use a static binary image shipped in the Fossil code repository.
        The primary practical upshot of this is that you can now change
        the native OS/8 CC8 source code on the host side and just say
        “`make`” to get a new RK05 disk pack with the new code running
        in it. If you don’t get how cool this is, you don’t understand
        it properly. :)</p>

    *   <p>Warren Young quadrupled the size of the [CC8 user manual][cc8m].
        It now answers many more questions, reveals many previously
        hidden details, fully documents LIBC’s interfaces and internal
        behaviors, and documents the CC8 memory model.</p>

    *   <p>Warren and Ian collaborated on fixes to the native compiler
        and its LIBC to fix a bunch of bugs and improve its conformance
        to Standard C. It’s still miles from passing any ISO C
        conformance suite, but it should violate fewer expectations now.
        This work does change the API and ABI of CC8’s LIBC somewhat, so
        if you have existing code, you might want to read the new manual
        to work out what’s needed to port that code.</p>

        <p>Notable improvements are that <tt>itoa()</tt> now takes a
        radix parameter to match its implementation in other C
        libraries; <tt>sprintf()</tt> returns an error code when the
        format string contains an unsupported format specifier; and the
        <tt>printf()</tt> family of functions now handle <tt>%x</tt> and
        <tt>%X</tt> properly. In the prior release, only <tt>%x</tt>
        was supported, and it gave uppercase output, not lowercase as
        the Standard requires.</p>

    *   <p>Warren changed CC8 to use octal when generating constants in
        SABR output, that being SABR’s default radix. The primary user
        benefit of this is that inline assembly now behaves the same in
        CC8 as in OS/8 FORTRAN II, which is also built atop SABR.</p>

        <p>This does mean that if you had C programs built with CC8 that
        had inline assembly and that code had integer constants within
        it, it will have to be changed to work with the new
        compilers.</p>

        <p>The default radix for C code remains 10, so if you were not
        using inline assembly, this change does not affect you.</p>

*   Since the beginning of this project, we've called our modified
    version of the SIMH PDP-8 simulator `pidp8i-sim`.  With this
    release, we hard link that program to `pdp8`, the simulator's name
    in the upstream distribution of SIMH.  When called by that name, our
    simulator suppresses all of the PiDP-8/I extensions.

................................................................................
*   Fixed a bug going clear back to the epochal v20151215 release which
    can cause an OSR instruction to incorrectly set the Link bit if the
    next GPIO pin up from those used by the SR lines happens to be set
    when you issue that instruction.

*   The `tools/mkbootscript` program which translates palbart assembly
    listing files into SIMH boot scripts was only writing a SIMH "dep"
    command for the first word on a line of listing output.  It’s legal
    in PAL format listings to have multiple words on a line, as is
    common with data arrays and such. Any program that makes use of that
    feature is affected, including the tty output from `hello.script`
    and `pep001.script`.

    While in there, made several other improvements to the script.

*   The `examples/hello.pal` program was badly broken in prior releases.

    *   <p>It was skipping the first character ("H") in its output
        message.</p>
................................................................................

*   The software now builds and runs on FreeBSD.  This just a step
    toward support for FreeBSD for the Raspberry Pi: we haven’t tried to
    make the GPIO stuff work at all yet.  For now, it just lets this
    software be used on your FreeBSD desktop or server machine.  It may
    allow building on other BSDs, but that is untested.

*   Over a year of maintenance and polishing, much of it resulting in
    documentation and build system improvements.

[cc8m]: https://tangentsoft.com/pidp8i/doc/trunk/doc/cc8-manual.md
[pv]:   https://tangentsoft.com/pidp8i/doc/trunk/README.md#systemd
[sc85]: https://github.com/ncb85/SmallC-85
[tctd]: https://tangentsoft.com/pidp8i/wiki?name=TD8E+vs+TC08
[v3df]: https://tangentsoft.com/pidp8i/wiki?name=OS/8+V3D+vs+V3F