239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
|
-
-
+
+
+
|
### <a id="ralf" name="flap"></a>RALF/FLAP
RALF is the back-end assembler for OS/8's FORTRAN IV compiler. As a result of that support role, it has a few primary advantages over PAL8:
* relocatable output code
* easy access to the optional [floating-point processor](http://dustyoldcomputers.com/pdp12/fpp12.html)
* easy access to the optional [floating-point processor][fpp12]
The RALF assembler has a mode switch that causes it to generate absolute-addressed code, as PAL8 does. In this mode, it is called FLAP.
The FPP modes are the key advantage of RALF/FLAP. Vincent Slyngstad [suggests][smal8] that you think of these as assemblers for the FPP rather than for the PDP-8.
**INCOMPLETE**
[fpp12]: https://archive.org/details/bitsavers_decpdp12DE_2606247
### <a id="sabr"></a>SABR
As RALF is to OS/8's FORTRAN IV compiler, so the [Symbolic Assembler for Binary Relocatable programs](http://homepage.cs.uiowa.edu/~jones/pdp8/faqs/#langs) is to OS/8's FORTRAN II compiler.
SABR is a relative assembler, unlike PAL8 or FLAP, meaning that the OS/8 linking loader (`LOADER.SV`) adjusts all of the addresses in the assembled `*.RL` output to their final values.
|