Cobol-81 on RSX11m+

169 views
Skip to first unread message

Andrew Barron

unread,
Dec 15, 2025, 4:43:10 PM12/15/25
to [PiDP-11]
Hi, I am missing something basic. Every time I compile, I get one fatal error. Probably a missing line. This code worked on the COBOL-68 on TOPS-10 (PiDP10).   I tried compiling with the ANSI switch, but although it got rid of the warnings, the fatal error persists. I tried two other Cobol programs that worked on the PiDP10 and they both have the same problem. 

$ EDT CHELLO.CBL
*C
        IDENTIFICATION DIVISION.
        PROGRAM-ID. HELLO.
        ENVIRONMENT DIVISION.
        DATA DIVISION.
        PROCEDURE DIVISION.
               DISPLAY "HELLO WORLD!".
               STOP RUN.
[EOB]


$ COBOL/ANSI_FORMAT CHELLO.CBL
C81 - 1 FATAL ERRORS - object deleted
C81 - 0 WARNINGS
C81 - 0 INFORMATIONALS  

$ COBOL CHELLO.CBL
C81 - 1 FATAL ERRORS - object deleted
C81 - 0 WARNINGS
C81 - 4 INFORMATIONALS

cheers AndrewB

Johnny Billquist

unread,
Dec 15, 2025, 4:50:27 PM12/15/25
to pid...@googlegroups.com
You should add /LIST, so you get a listing file for the compilation.
That will tell you what your problems are in more detail.

But basically (from doing that myself):

1 * C
2 IDENTIFICATION DIVISION.
^
*** I 292 Division, section and paragraph headers must begin in Area A.
3 PROGRAM-ID. HELLO.
^
*** I 292 Division, section and paragraph headers must begin in Area A.
4 ENVIRONMENT DIVISION.
^
*** I 292 Division, section and paragraph headers must begin in Area A.
5 DATA DIVISION.
^
*** I 292 Division, section and paragraph headers must begin in Area A.
6 PROCEDURE DIVISION.
7 DISPLAY "HELLO WORLD!".
^
*** F 590 A section header or paragraph-name is required.
8 STOP RUN.


I don't know enough Cobol to make much sense of this. :-)

Johnny
> --
> You received this message because you are subscribed to the Google
> Groups "[PiDP-11]" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/pidp-11/
> d1236f79-93ab-4fee-8335-e260dadf3275n%40googlegroups.com <https://
> groups.google.com/d/msgid/pidp-11/d1236f79-93ab-4fee-8335-
> e260dadf3275n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: b...@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol

Ken Hansen

unread,
Dec 15, 2025, 5:12:18 PM12/15/25
to pid...@googlegroups.com
COBOL was originally input via so-called "Hollerith cards", and program text was to start on a particular column (7? 8?) the first several columns were for labels.

Apparently, COBOL-68 is playing fast-and-loose with that requirement, ANSI COBOL is stricter.

It's been 30 years since I touched COBOL, but that's what the first 4 errors are.

See https://www.ibmmainframer.com/cobol-tutorial/cobol-hello-world/
 
(They are discussing modern cobol, not 'classic' book-68)

Ken

On Dec 15, 2025, at 15:43, Andrew Barron <zl...@outlook.co.nz> wrote:

Hi, I am missing something basic. Every time I compile, I get one fatal error. Probably a missing line. This code worked on the COBOL-68 on TOPS-10 (PiDP10).   I tried compiling with the ANSI switch, but although it got rid of the warnings, the fatal error persists. I tried two other Cobol programs that worked on the PiDP10 and they both have the same problem. 
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-11/d1236f79-93ab-4fee-8335-e260dadf3275n%40googlegroups.com.

Ken Hansen

unread,
Dec 15, 2025, 6:04:02 PM12/15/25
to pid...@googlegroups.com
Also, looking at ibm mainframer example, single quotes vs double quotes?


Ken

On Dec 15, 2025, at 15:50, Johnny Billquist <b...@softjar.se> wrote:

You should add /LIST, so you get a listing file for the compilation. That will tell you what your problems are in more detail.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-11/5ee1cfce-ea86-4403-8f05-3f52525406ef%40softjar.se.

Peter Long

unread,
Dec 15, 2025, 6:06:16 PM12/15/25
to Ken Hansen, pid...@googlegroups.com
Double quotes works - the only other thing is that you need a MAIN-PARA. 

>type hello.c81
        IDENTIFICATION DIVISION.
        PROGRAM-ID. HELLO.
        ENVIRONMENT DIVISION.
        DATA DIVISION.
        PROCEDURE DIVISION.
        MAIN-PARA.
            DISPLAY "HELLO WORLD".
            STOP RUN.

>
>type hello.lst
HELLO                                                           16-DEC-2025  10:01:44   COBOL-81 V3.1-00                    PAGE   1
                                                                16-DEC-2025  10:01:27   DU:[PLONG]HELLO.C81;4

    1               IDENTIFICATION DIVISION.
    2               PROGRAM-ID. HELLO.
    3               ENVIRONMENT DIVISION.
    4               DATA DIVISION.
    5               PROCEDURE DIVISION.
    6               MAIN-PARA.
    7                   DISPLAY "HELLO WORLD".
    8                   STOP RUN.
    9





HELLO                                                           16-DEC-2025  10:01:44   COBOL-81 V3.1-00                    PAGE   2
                                                                16-DEC-2025  10:01:27   DU:[PLONG]HELLO.C81;4

DIAGNOSTICS

    No Errors


COMMAND SWITCHES

    HELLO,HELLO,=HELLO.C81/CVF

    /-CRF/-DEB/CVF/BOU/-MAP/PER/-CIS/INF/-SUB/SKL/-TRU/-BLD/-FIP/-CON/-FLG/-STA
>



From: pid...@googlegroups.com <pid...@googlegroups.com> on behalf of Ken Hansen <n2...@w5fc.org>
Sent: Tuesday, December 16, 2025 10:03
Cc: pid...@googlegroups.com <pid...@googlegroups.com>
Subject: Re: [PiDP-11] Cobol-81 on RSX11m+

Lawrence Kesteloot

unread,
Dec 15, 2025, 6:18:54 PM12/15/25
to Peter Long, Ken Hansen, pid...@googlegroups.com
Oh I'm so excited about this! It's on my list to learn COBOL next year. I was going to use some compiler on macOS, but this thread makes me want to learn it on the PiDP-11 through my ADM-3A.

Lawrence


Johnny Billquist

unread,
Dec 15, 2025, 6:19:18 PM12/15/25
to pid...@googlegroups.com
I guess the next question is how you link that thing. :-)
(I can figure that out if others can't...)

Johnny
> ------------------------------------------------------------------------
> *From:* pid...@googlegroups.com <pid...@googlegroups.com> on behalf of
> Ken Hansen <n2...@w5fc.org>
> *Sent:* Tuesday, December 16, 2025 10:03
> *Cc:* pid...@googlegroups.com <pid...@googlegroups.com>
> *Subject:* Re: [PiDP-11] Cobol-81 on RSX11m+
> pidp-11/059C7ED5-FD29-4B8C-A31D-ABA13A2B5FCA%40w5fc.org <https://
> groups.google.com/d/msgid/pidp-11/059C7ED5-FD29-4B8C-A31D-
> ABA13A2B5FCA%40w5fc.org?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "[PiDP-11]" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/pidp-11/
> SYBPR01MB6938008B20166D0C7DB530F98BADA%40SYBPR01MB6938.ausprd01.prod.outlook.com <https://groups.google.com/d/msgid/pidp-11/SYBPR01MB6938008B20166D0C7DB530F98BADA%40SYBPR01MB6938.ausprd01.prod.outlook.com?utm_medium=email&utm_source=footer>.

Johnny Billquist

unread,
Dec 15, 2025, 6:37:57 PM12/15/25
to pid...@googlegroups.com
To link, just add /C81 to the command line for linking, and you are all
good.

$ cob test7/ansi/list
$ link test7/c81


$ run test7
HELLO WORLD!

$


Johnny
>>     You should add /LIST, so you get a listingfile for the
>>         one fatal error. Probably amissing line. This code worked on
>>         the COBOL-68 on TOPS-10 (PiDP10).  I tried compiling with the
>>         ANSI switch, but although it got rid of the warnings, the fatal
>>         error persists. I tried twoother Cobol programs that worked on
>>     Johnny Billquist                  || "I'mon a bus

Peter Long

unread,
Dec 15, 2025, 6:38:28 PM12/15/25
to Johnny Billquist, pid...@googlegroups.com
Lol - pretty much as you'd expect

>LINK HELLO,[1,1]C81LIB/LIB ...


Btw - thanks for auto-including the RTLs when you install C81 - one less thing ;-) 


Peter

From: pid...@googlegroups.com <pid...@googlegroups.com> on behalf of Johnny Billquist <b...@softjar.se>
Sent: Tuesday, 16 December 2025 10:19
To: pid...@googlegroups.com <pid...@googlegroups.com>
Subject: Re: [PiDP-11] Cobol-81 on RSX11m+
 

Johnny Billquist

unread,
Dec 15, 2025, 6:42:48 PM12/15/25
to Peter Long, pid...@googlegroups.com
Yeah. That works. But DCL even have some more fancy bits for automating
cobol linking, as you can see in my mail.

Also, I suspect, depending on what you do in your program, other
libraries might be required as well.

And if you run C81 from MCR, there is also the /BLD switch, which
creates the command files to do the linking. Which can also be done with
the BLD command (which is what LINK /C81 does in the end).

For example, if you do sorting, I believe Cobol will include the
sort/merge libraries.

Johnny

On 2025-12-16 00:38, Peter Long wrote:
> Lol - pretty much as you'd expect
>
> >LINK HELLO,[1,1]C81LIB/LIB ...
>
>
> Btw - thanks for auto-including the RTLs when you install C81 - one less
> thing ;-)
>
>
> Peter
> ------------------------------------------------------------------------
> *From:* pid...@googlegroups.com <pid...@googlegroups.com> on behalf of
> Johnny Billquist <b...@softjar.se>
> *Sent:* Tuesday, 16 December 2025 10:19
> *To:* pid...@googlegroups.com <pid...@googlegroups.com>
>>         C81 - 1 FATAL ERRORS -object deleted
>>
>>         C81 - 0 WARNINGS
>>
>>         C81 - 0 INFORMATIONALS
>>
>>         $ COBOL CHELLO.CBL
>>
>>         C81 - 1 FATAL ERRORS -object deleted
>>
>>         C81 - 0 WARNINGS
>>
>>         C81 - 4 INFORMATIONALS
>>
>>         cheers AndrewB
>>
>>         --
>>
>>         You received this message because you are subscribed to the
>>         Google Groups "[PiDP-11]" group.
>>
>>         To unsubscribe from this group and stop receiving emails from
>>         it, send an email to pidp-11+u...@googlegroups.com
>>         <mailto:pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>>.
>>
>>         To view this discussion visit https://groups.google.com/d/msgid/ <https://groups.google.com/d/msgid/>
>>         pidp-11/ d1236f79-93ab-4fee-8335-
>>         e260dadf3275n%40googlegroups.com <https:// groups.google.com/d/
>>         msgid/pidp-11/d1236f79-93ab-4fee-8335-
>>         e260dadf3275n%40googlegroups.com?
>>         utm_medium=email&utm_source=footer>.
>>
>>
>>     --
>>     Johnny Billquist                  || "I'm on a bus
>>                                       ||  on a psychedelic trip
>>     email: b...@softjar.se             ||  Reading murder books
>>     pdp is alive!                     ||  tryin' to stay hip" - B. Idol
>>
>>     --
>>     You received this message because you are subscribed to the Google
>>     Groups "[PiDP-11]" group.
>>     To unsubscribe from this group and stop receiving emails from it,
>>     send an email to pidp-11+u...@googlegroups.com.
>>     To view this discussion visit https://groups.google.com/d/msgid/ <https://groups.google.com/d/msgid/>
>>     pidp-11/5ee1cfce-ea86-4403-8f05-3f52525406ef%40softjar.se.
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "[PiDP-11]" group.
>> To unsubscribe from this group and stop receiving emails from it, send
>> an email to pidp-11+u...@googlegroups.com
>> <mailto:pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>>.
>> To view this discussion visit https://groups.google.com/d/msgid/ <https://groups.google.com/d/msgid/>
>> pidp-11/059C7ED5-FD29-4B8C-A31D-ABA13A2B5FCA%40w5fc.org <https://
>> groups.google.com/d/msgid/pidp-11/059C7ED5-FD29-4B8C-A31D-
>> ABA13A2B5FCA%40w5fc.org?utm_medium=email&utm_source=footer>.
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "[PiDP-11]" group.
>> To unsubscribe from this group and stop receiving emails from it, send
>> an email to pidp-11+u...@googlegroups.com
>> <mailto:pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>>.
>> To view this discussion visit https://groups.google.com/d/msgid/pidp-11/ <https://groups.google.com/d/
> msgid/pidp-11/>
>> SYBPR01MB6938008B20166D0C7DB530F98BADA%40SYBPR01MB6938.ausprd01.prod.outlook.com <https://groups.google.com/d/msgid/pidp-11/
> SYBPR01MB6938008B20166D0C7DB530F98BADA%40SYBPR01MB6938.ausprd01.prod.outlook.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/pidp-11/SYBPR01MB6938008B20166D0C7DB530F98BADA%40SYBPR01MB6938.ausprd01.prod.outlook.com?utm_medium=email&utm_source=footer>>.
>
> --
> Johnny Billquist                  || "I'm on a bus
>                                    ||  on a psychedelic trip
> email: b...@softjar.se             ||  Reading murder books
> pdp is alive!                     ||  tryin' to stay hip" - B. Idol
>
> --
> You received this message because you are subscribed to the Google
> Groups "[PiDP-11]" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pidp-11+u...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/pidp-11/
> d8b8499e-315f-4072-9f62-041bbdf3f7aa%40softjar.se <https://
> groups.google.com/d/msgid/pidp-11/
> d8b8499e-315f-4072-9f62-041bbdf3f7aa%40softjar.se>.

Andrew Barron

unread,
Dec 15, 2025, 10:17:09 PM12/15/25
to [PiDP-11]
Thanks everyone!

I got it to work! This is Cobol-81 on RSX11m+  It seems to like the slash between divisions. I thought those were only to add page feeds to the printout. I copied the Environment Configuration Section from a COBOL file in [215215] . I changed the line MAIN-LOGIC. to MAIN-PARA. Any name will work and PROC makes more sense. 

I compiled it with $ COBOL/LIST CHELLO.CBL no need for the ANSI statement. I may need that on a longer program. I will try '99 bottles of beer' next. 
I linked it with $ LINK/C81 CHELLO then ran the task as RUN CHELLO

This is the code that worked.

IDENTIFICATION DIVISION.
PROGRAM-ID. CHELLO.
/
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.  PDP-11.
OBJECT-COMPUTER.  PDP-11
        SEGMENT-LIMIT IS 10.
/
DATA DIVISION.
/
PROCEDURE DIVISION.
MAIN-PROC.

        DISPLAY "HELLO WORLD!".
        STOP RUN.

Andrew Barron

unread,
Dec 15, 2025, 10:34:54 PM12/15/25
to [PiDP-11]
I trimmed it down and it still works.

 IDENTIFICATION DIVISION.

PROGRAM-ID. CHELLO.

ENVIRONMENT DIVISION.

DATA DIVISION.

PROCEDURE DIVISION.

MAIN-PROC.

        DISPLAY "HELLO WORLD!".

        STOP RUN.

[EOB]


Lawrence Kesteloot

unread,
Feb 2, 2026, 8:50:18 AMFeb 2
to Andrew Barron, [PiDP-11]
This thread was super helpful, thank you! I was able to edit some COBOL in EDT and compile/link/run it in DCL from my ADM-3A serial terminal. Unfortunately, it seems like the ADM-3A can only use EDT's line mode, not the full-screen keypad mode. So:

1. Does anyone know if it's possible to use EDT's screen mode with an ADM-3A (or generally with a terminal that doesn't have a keypad)?

2. I can also boot into 211BSD and use vi from the ADM-3A. Does anyone know how to get a COBOL compiler onto that distribution?

My partner and I are learning COBOL tomorrow (how romantic!) and I'd like us to have as authentic an experience as I can get.

Thank you!

Lawrence


Warner Losh

unread,
Feb 2, 2026, 9:05:11 AMFeb 2
to Lawrence Kesteloot, Andrew Barron, [PiDP-11]
On Mon, Feb 2, 2026 at 6:50 AM Lawrence Kesteloot <l...@teamten.com> wrote:
This thread was super helpful, thank you! I was able to edit some COBOL in EDT and compile/link/run it in DCL from my ADM-3A serial terminal. Unfortunately, it seems like the ADM-3A can only use EDT's line mode, not the full-screen keypad mode. So:

1. Does anyone know if it's possible to use EDT's screen mode with an ADM-3A (or generally with a terminal that doesn't have a keypad)?

No. It's restricted to DEC terminals (and clone) only. ADM-3A is too primitive for EDT.
 
2. I can also boot into 211BSD and use vi from the ADM-3A. Does anyone know how to get a COBOL compiler onto that distribution?

If you are into hacking it... There were several programs that would emulate rt11 and/or rsx in the early days of Unix that would likely still run on 2.11. I've not tried them lately.
 
My partner and I are learning COBOL tomorrow (how romantic!) and I'd like us to have as authentic an experience as I can get.

but likely not fast enough for that... 

Warner
 

Johnny Billquist

unread,
Feb 2, 2026, 9:24:01 AMFeb 2
to pid...@googlegroups.com
On 02/02/2026 15.04, Warner Losh wrote:
>
>
> On Mon, Feb 2, 2026 at 6:50 AM Lawrence Kesteloot <l...@teamten.com
> <mailto:l...@teamten.com>> wrote:
>
> This thread was super helpful, thank you! I was able to edit some
> COBOL in EDT and compile/link/run it in DCL from my ADM-3A serial
> terminal. Unfortunately, it seems like the ADM-3A can only use EDT's
> line mode, not the full-screen keypad mode. So:
>
> 1. Does anyone know if it's possible to use EDT's screen mode with
> an ADM-3A (or generally with a terminal that doesn't have a keypad)?
>
>
> No. It's restricted to DEC terminals (and clone) only. ADM-3A is too
> primitive for EDT.

Not really. The ADM3A have enough capabilities that EDT *could* use it,
but it is indeed restricted to DEC terminals only.
EDT do not have any kind of functionality to use generic terminals, but
is hardcoded to deal with VT52 and VT100-type ANSI escape sequences only
(nothing similar to Unix termcap exists).

> 2. I can also boot into 211BSD and use vi from the ADM-3A. Does
> anyone know how to get a COBOL compiler onto that distribution?
>
>
> If you are into hacking it... There were several programs that would
> emulate rt11 and/or rsx in the early days of Unix that would likely
> still run on 2.11. I've not tried them lately.

Possibly, but this would be far from trivial, as the COBOL compiler is a
rather complex program, which don't even exist under RT-11. It uses RMS,
overlays, shared libraries, and in this case it's a compiler, so it will
then generate another object file, which is linked with TKB, which is
then the binary that you would want to run...

> My partner and I are learning COBOL tomorrow (how romantic!) and I'd
> like us to have as authentic an experience as I can get.
>
>
> but likely not fast enough for that...

Get a DEC compatible terminal, or use some other editor.
While not trivial, you could look at modifying my NEMA to work with
ADM3A, or try porting some other editor over.

But all of this is complicated. If one really just wants to get into
writing Cobol, then really, get a DEC compatible terminal (or use xterm
or some ANSI compliant terminal), and get on with it.

Johnny

Lawrence Fisher (RealTimeCat)

unread,
Feb 2, 2026, 9:58:41 AMFeb 2
to [PiDP-11]
When I was managing the RSTS/E LAUSD timeshare we had modified the TECO SCREEN module (which controlled video display) to support ADM3a, Hazeltine, Wyse, and Soroc IQ120 terminals.

Most students were dialing in with 300 Baud for video terminals (TTY was normally 110 baud). 

The ADM3a terminal supported very basic cursor addressing. As I recall, you could address the cursor to specific screen locations and clear the screen. Anything more than that (erase to end of line or end of screen, insert line, delete character or line) would require repainting (overwriting) everything that changed on the line and/or the remainder of the screen. While very sub-optimal, it was still faster than a complete screen refresh for every change.  The IQ120 (which I happened to possess at the time) had a superset of capabilities over the ADM3a. It could erase to end of line and erase to end of page from current cursor location and was much faster when editing files in screen mode as a result. I modified a version of the VTEDIT TECO macro to optimize use on the IQ120 at the time. The ADM3A users could also use this version, but it was slower running due to the more limited screen behavior. 

I never had access to the assembler source for EDT back then, so made no attempt to optimize screen support on it.

When I first logged into Macsyma Consortium (MIT-MC) via a tac line at USC and discovered the CRTSTY capability I was immediately in love with it as it allowed everything to work without changes to the source application. While curses on Unix/Linux exists today that provides this capability much more elegantly, there was never (to my knowledge) anything providing this capability on RSTS/E or RSX-11M+.

I echo Johnny's recommendation that you obtain VT52 or ANSI compatible hardware for your COBOL.

Note that on RSTS/E COBOL-81  (same compiler as you are using) I was able to use the SCREEN SECTION. capability with LINE and  COLUMN to display "HELLO, WORLD" in blinking bold on the center of a 24x132 Linux xterm, gterm, or konsole. 

Lawrence Fisher
RealTimeCat

Johnny Billquist

unread,
Feb 2, 2026, 11:22:32 AMFeb 2
to pid...@googlegroups.com
On 02/02/2026 15.58, Lawrence Fisher (RealTimeCat) wrote:
> When I was managing the RSTS/E LAUSD timeshare we had modified the TECO
> SCREEN module (which controlled video display) to support ADM3a,
> Hazeltine, Wyse, and Soroc IQ120 terminals.

Did you manage to get that all squeezed into the same executable, or did
you have different ones for each terminal type? (If you remember...)

> The ADM3a terminal supported very basic cursor addressing. As I recall,
> you could address the cursor to specific screen locations and clear the
> screen. Anything more than that (erase to end of line or end of screen,
> insert line, delete character or line) would require repainting
> (overwriting) everything that changed on the line and/or the remainder
> of the screen. While very sub-optimal, it was still faster than a
> complete screen refresh for every change.

Indeed. And that's slightly more primitive than the VT52, but not
terribly so.

>  The IQ120 (which I happened
> to possess at the time) had a superset of capabilities over the ADM3a.
> It could erase to end of line and erase to end of page from current
> cursor location and was much faster when editing files in screen mode as
> a result. I modified a version of the VTEDIT TECO macro to optimize use
> on the IQ120 at the time. The ADM3A users could also use this version,
> but it was slower running due to the more limited screen behavior.

Sounds like that one was closer to a VT52 then.

> I never had access to the assembler source for EDT back then, so made no
> attempt to optimize screen support on it.

As far as I know, EDT isn't even written in assembler. I *think* it's
written in Bliss, but don't quote me on that one.

> When I first logged into Macsyma Consortium (MIT-MC) via a tac line at
> USC and discovered the CRTSTY capability I was immediately in love with
> it as it allowed everything to work without changes to the source
> application. While curses on Unix/Linux exists today that provides this
> capability much more elegantly, there was never (to my knowledge)
> anything providing this capability on RSTS/E or RSX-11M+.

Yeah. Terminal independent handling is nice, and no, as far as I know,
RSTS/E and RSX didn't have it. I mean, you could in theory have
implemented it if you wanted to, but DEC never did, and noone else that
I am aware of either.

Johnny

Lawrence Fisher (RealTimeCat)

unread,
Feb 2, 2026, 11:43:56 AMFeb 2
to [PiDP-11]
It has been a long time since I worked on any of this, so I don't remember exactly what was done to make it all fit. The programmers involved in getting the original changes were (as I recall) Brian Horn and Kevin Herbert. I had taken the changes for ADM3A and added the extensions to support the IQ120. I know we were able to get it to fit without having to add another overlay. Since the changes were originally completed with RSTS/E V6.0-c I am certain we were not utilizing I&D space to make everything fit.

In addition to my changes in the VTEDIT macro I wrote a TECO macro that acted like "more" and utilizing the TECO WATCH command to optimize the output on the displays. That TECO macro had been published in an issue of RSTS Professional at the time.

I no longer have the source code (or binaries) for any of these files today, including Kevin Herbert's wonderful Terminal Links, which were a terrifically useful at the time for collaborating/tutoring with users across a large geographical area.

John D. Bruner

unread,
Feb 2, 2026, 2:15:20 PMFeb 2
to Johnny Billquist, pid...@googlegroups.com





On Monday, February 2nd, 2026 at 08:22, Johnny Billquist <b...@softjar.se> wrote:

> > The ADM3a terminal supported very basic cursor addressing. As I recall,
> > you could address the cursor to specific screen locations and clear the
> > screen. Anything more than that (erase to end of line or end of screen,
> > insert line, delete character or line) would require repainting
> > (overwriting) everything that changed on the line and/or the remainder
> > of the screen. While very sub-optimal, it was still faster than a
> > complete screen refresh for every change.
>
>
> Indeed. And that's slightly more primitive than the VT52, but not
> terribly so.

One advantage of the ADM-3A being so dumb was that it also was very fast, able to keep up with incoming data at 9600 or even 19.2 without flow control. (If I recall correctly, when I was at Purdue many decades ago, the EE building had one with a modified UART that ran at 38.4kbps.) That made it quite usable with vi or Emacs even with all of the redrawing to insert/delete characters and/or lines.

--John

terri-...@glaver.org

unread,
Feb 3, 2026, 12:29:45 AMFeb 3
to [PiDP-11]
On Monday, February 2, 2026 at 11:22:32 AM UTC-5 b...@softjar.se wrote:
As far as I know, EDT isn't even written in assembler. I *think* it's
written in Bliss, but don't quote me on that one. 

The full RSTS/E source kit (not the sanitized public one) just has edtlib.olb
that gets linked with some RSTS-specific code - there are no sources for
EDT on the full source kit, so it came from somewhere else (quite likely
the RSX master source). 

Johnny Billquist

unread,
Feb 3, 2026, 3:23:18 AMFeb 3
to pid...@googlegroups.com
No. RSX don't have EDT sources either. Same story with MACRO-11. :-(
But looking at the library, it's more or less clear that it's Bliss-16.
And I know that VSI have the sources for EDT for VMS, and I suspect the
sources are the same, but don't know for sure.
But VSI did some changes to EDT not long ago which definitely required
that they had the sources.

Johnny

Johnny Billquist

unread,
Feb 3, 2026, 6:40:48 AMFeb 3
to pid...@googlegroups.com
By the way, RSX also just have EDTLIB.OLB, and apart from one module,
the whole thing was created in 1985. The RSXSYS module was updated in
1998. I suspect that was just a Y2K thing...

But modules like B16CH1 are standard Bliss-16 routines used by the code
generated by the compiler. I could probably even figure out what each
one of those B16xxx modules do, if it was interesting enough.

I also went through some FCS library code yesterday. Also written in
Bliss-16. That code is used both in RSX, and in RSTS/E when you're in
the RSX RTS.

Johnny

terri-...@glaver.org

unread,
Feb 3, 2026, 9:03:46 PMFeb 3
to [PiDP-11]
On Tuesday, February 3, 2026 at 6:40:48 AM UTC-5 b...@softjar.se wrote:
I also went through some FCS library code yesterday. Also written in
Bliss-16. That code is used both in RSX, and in RSTS/E when you're in
the RSX RTS.

[170,60] in the un-censored RSTS/E V10.1 source kit has an account name
of "RSX FCS" and 179 blocks in 3 files of *.olb, while it has 1089 blocks in
130 files of .mac, so it may actually be real sources. For example:

;
; MAC COMMAND FILE TO ASSEMBLE COMMON FCS MODULES
;
SYSTEM:ASCPPN,LST:ASCPPN/CR/-SP=CMN:COMMON,FCS:RSTS,FCSPRE,ASCPPN
SYSTEM:ASCR50,LST:ASCR50/CR/-SP=RSX:COMMON,FCS:FCSPRE,ASCR50
SYSTEM:BDBREC,LST:BDBREC/CR/-SP=RSX:COMMON,FCS:FCSPRE,BDBREC
SYSTEM:BKRG,LST:BKRG/CR/-SP=RSX:COMMON,FCS:FCSPRE,BKRG
SYSTEM:CKALOC,LST:CKALOC/CR/-SP=RSX:COMMON,FCS:FCSPRE,CKALOC
SYSTEM:COMMON,LST:COMMON/CR/-SP=RSX:COMMON,FCS:FCSPRE,COMMON
SYSTEM:DEL,LST:DEL/CR/-SP=RSX:COMMON,FCS:FCSPRE,DEL
SYSTEM:DELETE,LST:DELETE/CR/-SP=RSX:COMMON,FCS:FCSPRE,DELETE

And RSTS/E has the .MAC files for all of those. For example, here's delete.mac:

;+
; DELETE A FILE - EITHER OPEN OR CLOSED
;
; CALLING SEQUENCE:
;
;    CALL    .DELET
;
; INPUTS:
;
;    R0=FDB ADDRESS
;
; OUTPUTS:
;
;    C=0 IF SUCCESSFUL, C=1 IF ERROR, F.ERR SET WITH ERROR CODE
;    ALL REGISTERS PRESERVED
;
; OPERATION:
;
;    IF THE FILE WAS OPEN, IT IS CLOSED, REMOVED FROM THE DIRECTORY
; AND MARKED FOR DELETE.
;    IF THE FILE WAS CLOSED, A PARSE IS PERFORMED USING F.DSPT,
; F.DFNB AND THEN THE FILE IS REMOVED AND MARKED FOR DELETE.
;-
.DELET::.SAVR1
    MOV    #1,F.ERR(R0)
    TST    F.BDB(R0)    ;IF FILE IS OPEN, CLOSE IT
    BEQ    DELCLS
    MOV    F.FNB(R0),R1    ;PRESERVE THE FILE ID
    CLOSE$
    BCS    DELX2        ;BRANCH IF CLOSE FAILED
    MOV    R1,F.FNB(R0)    ;RESTORE FILE ID
DELCLS:    CALL    ..STFN        ;SET UP FNB IF NOT ALREADY SET
    BCS    DELX
    BITB    #FD.DIR,F.RCTL(R0)
    BEQ    DELX        ;IF NOT DIRECTORY DEVICE, THEN NOP
    CALL    ..DEL1
DELX:    CLR    F.FNB(R0)    ;RESET THE FILE ID
    CALL    ..FCSX
DELX2:    RETURN
;
;
    $END    DELETE
;
;
    .END

That doesn't look like it came from a Bliss compiler's output. Apologies for the
formatting - there's some issue with pasting tabs into Groups.

Johnny Billquist

unread,
Feb 3, 2026, 9:23:12 PMFeb 3
to pid...@googlegroups.com
Bleh. I should correct myself. It wasn't the FCS code, it was the
command line processing code (or maybe I was looking at some FCS code,
and now I don't remember which one it was).


But you have the command string processing code, for example. CSI1.MAC,
CSI2.MAC and some related parts, for example. Maybe you can find this
under RSTS/E as well?

Quoting a bit of the code:

.NLIST
.ENABL LC
.NLIST BIN,LOC
.LIST
; 0001 0 MODULE _CSI1 ( ! CSI
command line syntax scanner
; 0002 0 IDENT = 'B16V05', !
; 0003 0 ENVIRONMENT (NOEIS, PIC) , !
; 0004 0 LIST (REQUIRE) !
; 0005 0 ) =
; 0006 1 BEGIN
; 0007 1 !


and a bit further down:

; 0026 1 !++
; 0027 1 ! FACILITY: CSI1 (Command String Interpreter, Phase 1)
; 0028 1 !
; 0029 1 ! ABSTRACT: This module in conjunction with CSI2 parses
DEC standard
; 0030 1 ! outputs = inputs command lines. .CSI1, in
particular, "cleans"
; 0031 1 ! the command line by removing unquoted spaces, by
removing
; 0032 1 ! non-printing characters, and by upcasing
unquoted lowercase
; 0033 1 ! letters, and then checks for non-context
sensitive syntactic
; 0034 1 ! conformance with the standard file specification
and switch
; 0035 1 ! format.
; 0036 1 !
; 0037 1 ! ENVIRONMENT: RSX-11M Compatiblitiy Mode on RSX-11,
IAS, RSTS/E, VMS
; 0038 1 !
; 0039 1 ! AUTHOR: Michael Pettengill, CREATION DATE:
13-January-1981



Johnny
>     MOV    F.FNB(R0),R1    ;PRESERVE THEFILE ID
>     CLOSE$
>     BCS    DELX2        ;BRANCH IF CLOSE FAILED
>     MOV    R1,F.FNB(R0)    ;RESTORE FILEID
> DELCLS:    CALL    ..STFN       ;SET UP FNB IF NOT ALREADY SET
>     BCS    DELX
>     BITB    #FD.DIR,F.RCTL(R0)
>     BEQ    DELX        ;IF NOTDIRECTORY DEVICE, THEN NOP
>     CALL    ..DEL1
> DELX:    CLR    F.FNB(R0)    ;RESET THE FILE ID
>     CALL    ..FCSX
> DELX2:    RETURN
> ;
> ;
>     $END    DELETE
> ;
> ;
>     .END
>
> That doesn't look like it came from a Bliss compiler's output. Apologies
> for the
> formatting - there's some issue with pasting tabs into Groups.
>
> --
> You received this message because you are subscribed to the Google
> Groups "[PiDP-11]" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> pidp-11/357dc8d0-d5bf-4ce4-a828-496383b02f0bn%40googlegroups.com
> <https://groups.google.com/d/msgid/pidp-11/357dc8d0-d5bf-4ce4-
> a828-496383b02f0bn%40googlegroups.com?utm_medium=email&utm_source=footer>.

Anton Lavrentiev

unread,
Feb 3, 2026, 10:45:34 PMFeb 3
to pid...@googlegroups.com
FWIW (apologies, I wasn't following this particular thread closely, but thought some pointers could be useful):

FCS can be found in Macro-11 sources on bitsavers:
In [50,10].  It looks like the code is conditionalized for both RSX and RSTS.

EDT sources can be found for VAX/VMS, it's written in BLISS(-32), but as such I suppose it might have been ported between the systems:

> CSI1.MAC, CSI2.MAC and some related parts, for example
I could only find CSI1 and CSI3 on the RSX source tape, above, in [25,10].  But it looks like they are QUE-manager-specific, anyways...

HTH


To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-11/5a15f417-89d1-4cb1-8804-e478e2c3640d%40softjar.se.

terri-...@glaver.org

unread,
Feb 4, 2026, 12:26:11 AMFeb 4
to [PiDP-11]
On Tuesday, February 3, 2026 at 9:23:12 PM UTC-5 b...@softjar.se wrote:
Bleh. I should correct myself. It wasn't the FCS code, it was the
command line processing code (or maybe I was looking at some FCS code,
and now I don't remember which one it was).

But you have the command string processing code, for example. CSI1.MAC,
CSI2.MAC and some related parts, for example. Maybe you can find this
under RSTS/E as well? 

$ dir dr1:[170,61]csi*.mac

 Name .Typ    Size    Prot     Name .Typ    Size    Prot    DR1:[170,61]
CSI1  .MAC      28   < 60>    CSI2  .MAC      28   < 60>
CSI3  .MAC      13   < 60>    CSI4  .MAC       6   < 60>
CSIDEF.MAC       2   < 60>    CSIMAC.MAC      12   < 40>

Total of 89 blocks in 6 files in DR1:[170,61]

That's in an account named "RSX SYSLIB" and there are a total of:
1115 blocks in 97 .mac files in that directory.

Do you want a login on this system to look around, since it's on HECnet
(SPC11D::)? I have both the censored (dr0:) and un-censored (dr1:)
versions of the V10.1 source kit loaded.

Johnny Billquist

unread,
Feb 4, 2026, 3:33:27 AMFeb 4
to pid...@googlegroups.com
On 2026-02-04 04:44, Anton Lavrentiev wrote:
> FWIW (apologies, I wasn't following this particular thread closely, but
> thought some pointers could be useful):

No problems. :-)

> FCS can be found in Macro-11 sources on bitsavers:
> http://bitsavers.org/bits/DEC/pdp11/magtapes/rsx11mplus/
> RSX11M+4.2_CLI_SRC_BRU.tap <http://bitsavers.org/bits/DEC/pdp11/
> magtapes/rsx11mplus/RSX11M+4.2_CLI_SRC_BRU.tap>
> In [50,10].  It looks like the code is conditionalized for both RSX and
> RSTS.

Yeah, it is.

> EDT sources can be found for VAX/VMS, it's written in BLISS(-32), but as
> such I suppose it might have been ported between the systems:
> http://bitsavers.org/pdf/dec/vax/microfiche\vms-source-listings/AH-
> BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-BT13A-SE__VAX-
> VMS_V4.0_SRC_LST_MCRF/031__EDT/ <http://bitsavers.org/pdf/dec/vax/
> microfiche\vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/
> AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/031__EDT/>

Oh, I'm going to take a look at that one.

> > CSI1.MAC, CSI2.MAC and some related parts, for example
> I could only find CSI1 and CSI3 on the RSX source tape, above, in
> [25,10].  But it looks like they are QUE-manager-specific, anyways...

I hadn't even considered it. But yes, there are in fact three CSI1.MAC
in RSX. [25,10], [32,19] and [55,10].

[25,10] is QMG
[32,19] is PIP
[55,10] is SYSLIB

Only the one under [55,10] is the result of output from a BLISS-16
compilation.

Interesting that QMG has its own. I guess it might be since it needs to
also handle queue names. Not sure why PIP needs a different version.

Johnny

Johnny Billquist

unread,
Feb 4, 2026, 4:08:52 AMFeb 4
to pid...@googlegroups.com
On 2026-02-04 04:44, Anton Lavrentiev wrote:
> EDT sources can be found for VAX/VMS, it's written in BLISS(-32), but as
> such I suppose it might have been ported between the systems:
> http://bitsavers.org/pdf/dec/vax/microfiche\vms-source-listings/AH-
> BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-BT13A-SE__VAX-
> VMS_V4.0_SRC_LST_MCRF/031__EDT/ <http://bitsavers.org/pdf/dec/vax/
> microfiche\vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/
> AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/031__EDT/>

Yeah, the sources for EDT, which is OS independent for almost all of it.
Definitely targeting both PDP-11 and VAX.

BLISS is interesting in that way that it was designed to be possible to
write code that is very hardware independent, while yet be very low
level. So it don't require "porting". If written properly, you just run
it through the appropriate compiler, and you end up with code for that
machine. There are one or two files that contain OS-specific code.
VMSSYS, obviously. In EDTLIB under RSX, there is an RSXSYS module. And I
would bet under RSTS/E, there is an RSTSYS.
I guess you could say sortof the same about C, but BLISS are even more
so, I'd say.

I can certainly see mentions of PDP-11 details in some files. But this
is the listing output from running it through Bliss-32. But you could
have had it run through Bliss-16 as well.

Johnny

Johnny Billquist

unread,
Feb 4, 2026, 4:12:55 AMFeb 4
to pid...@googlegroups.com
On 2026-02-04 10:08, Johnny Billquist wrote:
> On 2026-02-04 04:44, Anton Lavrentiev wrote:
>> EDT sources can be found for VAX/VMS, it's written in BLISS(-32), but
>> as such I suppose it might have been ported between the systems:
>> http://bitsavers.org/pdf/dec/vax/microfiche\vms-source-listings/AH-
>> BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-BT13A-SE__VAX-
>> VMS_V4.0_SRC_LST_MCRF/031__EDT/ <http://bitsavers.org/pdf/dec/vax/
>> microfiche\vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/
>> AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/031__EDT/>
>
> BLISS is interesting in that way that it was designed to be possible to
> write code that is very hardware independent, while yet be very low
> level. So it don't require "porting". If written properly, you just run
> it through the appropriate compiler, and you end up with code for that
> machine. There are one or two files that contain OS-specific code.
> VMSSYS, obviously. In EDTLIB under RSX, there is an RSXSYS module. And I
> would bet under RSTS/E, there is an RSTSYS.

*Sigh*. The file was called SYSVAX, not VMSSYS. Sorry. :-)

Johnny Billquist

unread,
Feb 4, 2026, 4:40:11 AMFeb 4
to pid...@googlegroups.com
And another correction...

On 2026-02-04 09:33, Johnny Billquist wrote:
> On 2026-02-04 04:44, Anton Lavrentiev wrote:
>>  > CSI1.MAC, CSI2.MAC and some related parts, for example
>> I could only find CSI1 and CSI3 on the RSX source tape, above, in
>> [25,10].  But it looks like they are QUE-manager-specific, anyways...
>
> I hadn't even considered it. But yes, there are in fact three CSI1.MAC
> in RSX. [25,10], [32,19] and [55,10].
>
> [25,10] is QMG
> [32,19] is PIP
> [55,10] is SYSLIB

PIP is in [32,10], not [32,19] (which is an UIC that can't even exist).
Sorry.

Anton Lavrentiev

unread,
Feb 4, 2026, 11:46:09 AMFeb 4
to Johnny Billquist, pid...@googlegroups.com
> So it don't require "porting". If written properly, you just run  it through the appropriate compiler, and you end up with code for that machine.

That's the very definition of code portability.  You write code that can be compiled and works the same way on different platforms
You "port" (transfer) the code from one platform to another.  Obviously in the above, the compiler is platform-dependent (bliss-16 vs bliss-32 in case of EDT).

--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.

Johnny Billquist

unread,
Feb 4, 2026, 11:53:08 AMFeb 4
to Anton Lavrentiev, pid...@googlegroups.com
Well, "porting" usually implies some changes required, as opposed to
just recompiling. But we're arguing over a very minor point here. :-)

Johnny
> email: b...@softjar.se <mailto:b...@softjar.se>             ||
> Reading murder books
> pdp is alive!                    ||  tryin' to stay hip" - B. Idol
>
> --
> You received this message because you are subscribed to the Google
> Groups "[PiDP-11]" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to pidp-11+u...@googlegroups.com
> <mailto:pidp-11%2Bunsu...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> pidp-11/3cf2e519-a18d-4cd5-9262-edba5f245465%40softjar.se <https://
> groups.google.com/d/msgid/pidp-11/3cf2e519-a18d-4cd5-9262-
> edba5f245465%40softjar.se>.
>

Reply all
Reply to author
Forward
0 new messages