202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
|
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
-
+
+
|
### <a id="pal8" name="pal-8"></a>PAL8
The earliest attestation to the PAL8 assembler I've been able to find is in the May 1970 printing of [Programming Languages][pl], the second in a two-volume set on programming PDP-8 family computers. (The first volume being [Introduction to Programming][ip].) On page 14-7 in the section on 8K PAL-D, it gives a Disk Monitor command for saving the in-core copy of 8K PAL-D as "PAL8". It is therefore unsurprising that the OS/8 version of PAL8 is morphologically more similar to [PAL-D](#pal-d) than to [PAL-III](#pal-iii).
The earliest reference to PAL8 as a named product of DEC is in the [PS/8 8K Programming System User's Guide][ps8ug] from October 1970, that product being the immediate predecessor of OS/8.
PAL8 understands the same basic language as PAL-D but generally has more features, most especially related to running under OS/8, such as the ability to set options via OS/8's command interpreter (CCL) rather than via the PDP-8's front panel switches.
PAL8 understands the same basic language as PAL-D but generally has more features, most especially related to running under OS/8.
I consider PAL8 the default assembler for OS/8 users. If none of the information below guides you to one of the other assemblers, you should probably start with PAL8. If you have a piece of assembly code that is meant to be assembled under OS/8, and you have no evidence that is for any other assembler, it's probably meant to be assembled by PAL8.
PAL8 has many features not present in 8K PAL-D:
* assembly options set via OS/8 CCL flags rather than via front-panel switches
* output option for producing input to [CREF][os8m]
* more operators in expressions:
* `^` for 12-bit unsigned multiplication (`*` was already taken for setting the location counter)
* `%` for 12-bit unsigned division (`/` was already taken as the comment start character)
* the `FIXMRI` pseudo-op is back
* `EJECT` pseudo-op extended to allow the page header to be changed for the next and following pages
* new pseudo-operations:
|