382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
|
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
|
-
+
+
+
-
+
+
+
+
+
-
+
+
|
| **Introduced** | 1996
| **Manual** | [man page](http://manpages.ubuntu.com/manpages/artful/man1/palbart.1.html)
| **Delivery** | Internet, PiDP-8/I project
`palbart` is a popular fork of the `pal.c` assembler by [Douglas W. Jones](http://homepage.divms.uiowa.edu/~jones/) and Rich Coon, originally spun off by Gary A. Messenbrink — and later enhanced by several others — to support the fleet of PDP-8/e computers in the [Bay Area Rapid Transit](https://en.wikipedia.org/wiki/Bay_Area_Rapid_Transit) system; thus the name.
The PiDP-8/I software distribution includes a version calling itself "pal-2.13, 03 May 2015." If you place a `*.pal` file in either the `asm` or `examples` subdirectories of the software distribution, then type `make`, the build system will find your file and generate several output files named after it:
The PiDP-8/I software distribution includes a version calling itself "pal-2.13, 03 May 2015."
If you place a `*.pal` file in either the `src/asm` or `examples` subdirectories of the software distribution, then type `make`, the build system will find your file and generate several output files named after it:
* **<code>obj/*.lst</code>** — the assembler's text listing output, giving the assembled machine code alongside the source code, plus any error messages
* **<code>bin/*.pt</code>** — the machine code output in RIM paper tape format, suitable for loading into SIMH's PDP-8 simulator
* **<code>boot/*.script</code>** — a SIMH init script that deposits the machine code into the PDP-8 simulator's core memory and starts it running; pass the file name to `bin/pidp8i-sim`
This makes for a very smooth code-build-run-debug cycle!
This makes for a very smooth code-build-run-debug cycle:
1. Edit `examples/myprg.pal`
2. Run `make`
3. Run `bin/pidp8i-sim boot/myprog.script`
4. Debug; if still buggy, goto step 1.
At this time, we do not yet have a comprehensive list of differences relative to PAL-III or PAL8.
There are differences in `palbart` that make it somewhat incompatible with the PAL family assemblers above. The most likely to affect existing programs is that `palbart` does not chop symbols off at 6 characters. Some code depends on this happening; for example, the assembled code may refer to a label with 7+ characters in one location and with 6 in another location, and expect the assembler to refer to the same location in both places.
**INCOMPLETE**
## <a id="pdpnasm"></a>pdpnasm
| **Introduced** | 2006
|