Discussion:
SABR Assembler
(too old to reply)
steve...@gmail.com
2022-05-16 01:49:29 UTC
Permalink
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
2022-05-16 03:09:38 UTC
Permalink
Post by ***@gmail.com
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
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
2022-06-25 20:52:38 UTC
Permalink
Post by ***@gmail.com
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
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.
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
2022-06-26 04:43:41 UTC
Permalink
Post by Ian Schofield
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
2022-06-26 15:19:54 UTC
Permalink
Post by Ian Schofield
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
2022-06-27 17:02:55 UTC
Permalink
Post by Ian Schofield
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
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
2022-07-01 10:39:13 UTC
Permalink
Post by William Cattey
Post by Ian Schofield
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
Hi Bob,
Ian created one of each. It's integrated with the PiDP-8/i software distribution, but is very usable stand-along.
https://tangentsoft.com/pidp8i/file?name=doc/cc8-manual.md&ci=tip
-Bill
Dear Bill,

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

Regards, Ian.

Loading...