PiDP-8/I Software

Changes To A Field Guide to PDP-8 Assemblers
Log In

Changes to "A Field Guide to PDP-8 Assemblers" between 2018-01-30 10:25:42 and 2018-01-30 10:45:52

292
293
294
295
296
297
298


299
300
301
302
303

304
305
306
307
308
309
310
311
312

313
314
315
316
317
318
319
292
293
294
295
296
297
298
299
300
301
302
303
304

305
306
307
308
309
310
311
312
313

314
315
316
317
318
319
320
321







+
+




-
+








-
+







    *   `E` and `F`: define floating-point constants
    *   `IFPOS`, `IFNEG`, `IFSW`, `IFNSW`, `IFFLAP`, and `IFRALF` conditional assembly pseudo-ops
    *   `IFREF`: replaces `IFDEF` pseudo-op, having a superset of its functionality
    *   `LISTOF`/`LISTON`: stop and start listing output rather than the PAL family's `XLIST` pseudo-op
    *   `REPEAT`: assemble the following line multiple times
    *   `COMMON`, `COMMZ`, `ENTRY`, `EXTERN`, `FIELD1`, `SECT`, and `SECT8` pseudo-ops to support FORTRAN IV code

Some may argue about my grouping of the expression changes here rather than under the [Arbitrary Differences](#ralf-ad) section below. I made this choice because the change was necessary to allow an improvement.

[fpp8a]: https://archive.org/details/bitsavers_decpdp8pdpUsersManDec76_996770
[fpp12]: https://archive.org/details/bitsavers_decpdp12DE_2606247


#### Justifiable Restrictions
#### <a id="ralf-jr"></a>Justifiable Restrictions

There are restrictions in RALF relative to late-generation PAL family assemblers that are justifiable on the grounds that they follow from the requirement that the output code be relocatable:

*   It does not understand the `PAGE` pseudo-op: the PAL form of this feature — where the page number is given as an argument to the pseudo-op — inherently goes against the nature of relocatable output. The inability to accept the argument-less version understood by [SABR](#sabr) is harder to justify.

*   It does not support current-page literals — `(42)` — since allowing it would complicate relocation.


#### Arbitrary Differences
#### <a id="ralf-ad"></a>Arbitrary Differences

There are additional differences in RALF relative to the PAL family assemblers that seem entirely arbitrary to me:

*   Indirect addressing is done differently:

        TAD I A       / PAL syntax
        TAD% A        / RALF syntax