SABR Assembler

77 views
Skip to first unread message

NoSmoke

unread,
May 15, 2022, 9:32:49 PMMay 15
to
Hello all, new to the group. Way back in the day I programmed PDP-8s for oil/gas field operation. One of the things that annoyed me in particular about the assembler language was the need to generate one's own page escapes (which could add considerably to the programming effort when only a small addition to code is made somewhere in the middle of the program).

I then happened upon the SABR assembler which IIRC was normally used as the second pass for the Fortran compiler. It not only generated automatic page escapes but IIRC also generated relocatable code and automatically handled memory bank switching as required by the compiler.

I was only interested in the auto page escape capability so got a copy of the SABR source code and modified it to keep that capability only. I found such a mod to be very useful and a great time saver as manually jockeying code from one page to another to add code somewhere within a program was eliminated. It operated essentially identically to PAL-D in all other respects.

Anyhow, was wondering if anyone still uses SABR as an assembler only and if so how they like it?

steve...@gmail.com

unread,
May 15, 2022, 9:49:30 PMMay 15
to

You are correct, SABR is the intermediate output from the FORTRAN II compiler. The OS/8 FORTRAN IV compiler translates into FLAP/RALF. Same basic idea, but very different intermediate languages as FLAP/RALF is oriented to the FPP that FORTRAN IV can take advantage of.

I have used SABR on occasion, but really only when I need to embed some PAL-8 level code into FORTRAN II. For example, I've been (slowly) trying to re-create a library of graphics output code for the Tektronix 4010. Otherwise I do all of my PDP-8 assembly code in regular PAL-8. Dealing with pages the -8 is a bit inconvenient at times but since that's where I actually started machine-level coding in1975, I look at other machine instruction sets as simplifications (smile). The bottom line is that I prefer dealing with pages over wrestling with some of the crazy stuff that SABR sometimes does. My biggest unresolved challenge has been trying get a delay loop in SABR that always causes the same delay regardless of relocation and I haven't been able to make that happen.

I guess my biggest thing was going the other way. I needed to embed some matrix math code (solutions of simultaneous linear equations) into a PAL-8 application and have it run as fast as possible. But rather than writing it in PAL-8 I wrote the original code in FORTRAN II then intercepted the SABR output then rewrote that in regular PAL-8 for inclusion in the application. I recall it saved me a ton of time to get it to work in FORTRAN II first rather than trying to wrestle with both the algorithm and PAL-level code at the very same time.


Cheers,

-- steve




NoSmoke

unread,
May 15, 2022, 11:09:39 PMMay 15
to
Ah, thanks for the clarification on the two Fortran versions. I'm surprised that Fortran II did not use the FPP (we did not use Fortran as it was not oriented to a real time control operation).

Yes, SABR did some weird stuff in its original form which is why we modded it to keep the auto paging feature only.

One reason in particular why I made my query about SABR on this forum is that I submitted my SABR mods to DECUS (?) (the DEC users' group?) and it apparently received little or no interest/feedback. That surprised me because we had found it to be so useful in avoiding unnecessary work especially when adding code to large programs (and, avoiding bugs that might occur by moving code around to fit the available page space plus the resultant spaghetti code).

Good idea BTW on writing code in Fortran and using the assembler code o/p.

Ian Schofield

unread,
Jun 25, 2022, 4:52:40 PMJun 25
to
Dear All,

In case you are interested, the c compiler included in a PDP8I repo generates SABR code. There are a number of advantages to this approach which include what you have noted above re auto-paging and multi-field management.

Regards, Ian.

pbi...@gmail.com

unread,
Jun 26, 2022, 12:43:43 AMJun 26
to
On Saturday, June 25, 2022 at 4:52:40 PM UTC-4, isy...@gmail.com wrote:
> In case you are interested, the c compiler included in a PDP8I repo generates SABR code. There are a number of advantages to this approach which include what you have noted above re auto-paging and multi-field management.
>
> Regards, Ian.

Ian: Where is the "PDP8I repo" located?

Bob Armstrong

unread,
Jun 26, 2022, 11:19:56 AMJun 26
to
On Saturday, June 25, 2022 at 1:52:40 PM UTC-7, isy...@gmail.com wrote:
> In case you are interested, the c compiler included in a PDP8I repo generates SABR code.
>
> Regards, Ian.

There's a C compiler for the PDP-8? Does it run natively under OS/8, or is it a cross compiler?

Yes, please tell us more!

Thanks

William Cattey

unread,
Jun 27, 2022, 1:02:58 PMJun 27
to
Hi Bob,

Ian created one of each. It's integrated with the PiDP-8/i software distribution, but is very usable stand-along.

Here's a pointer to the documentation that's part of the PiDP-8/i integration:
https://tangentsoft.com/pidp8i/file?name=doc/cc8-manual.md&ci=tip

-Bill

Ian Schofield

unread,
Jul 1, 2022, 6:39:15 AMJul 1
to
Dear Bill,

Hope all is well with you. Thanks for sending the link.

Regards, Ian.
Reply all
Reply to author
Forward
0 new messages