Intro

There are lots of ways to program in a PDP-11 environment, from completely native to completely emulated. I prefer the comfort of a modern graphic editor with syntax-highlighting, but also the real hardware. The goal is to write and use assembly programs in an OS-environment for educational and demonstration purposes. I prefer to avoid any A.I. produced code as it doesn't add much to my knowledge.

Building in a native environment is authentic, but slow, certainly if you ise a 9600 BAUD TU58 server as mass media device. But it is probably comparable with a floppy drive system.

The setup I have now is a working tool-chain, and produces working RT-11 programs. A good time to document it, before improvements break it :-).

Eventually, I want to do most of the building work using Linux, but it doesn't work yet. I am lucky that a more native approach does work.

The real hardware is currently:

PDP-11 boards M8189, M8067 in a H9275A backplane in a 19&dquote; rack

More images at the main page.

The current setup runs tu58fs with one shared directory containing an 'RT-11SJ V05.03' system.

Setup 1

This describes a working tool-chain. Only file editing is non-native. MACRO-11 and LINK run in RT-11SJ V05.03. The TU58 is emulated.

Start tu58fs with a tu58image containing MACRO-11 and LINK, like:

        tu58fs -p /dev/ttyUSB1 -b 9600 -rt -sd 1 w test2.dir  -s 10M -d 0 w rt11v53.oversized.tu58

Enter this program as test2.mac:

                .MCALL .EXIT,.PRINT 
                        .ENABL LC

                START:  .PRINT #MESSG     ;Print message... 
                .EXIT ;then exit 

        MESSG:  .ASCIZ "Test3 test text." 

        .END    START

Copy test2.mac to the tu58fs shared directory:

        cp test2.mac ../tu58_images/test2.dir/TEST2.MAC

Boot the PDP-11 via the TU58 interface

Type:

        MACRO DD1:TEST2.MAC

This results in a TEST2.OBJ in DD0:.

        LINK
        Files? TEST2.OBJ

This results in a TEST2.SAV in DD0: which prints the message and returns to the RT-11 prompt. This is a working setup.

Setup 2

At this thread at vcfed.org hanshuebner suggested his rt11-macro configuration, which uses the simh-pdp-11 emulator running RT-11. This is a neat in-between alternative to the mostly native solution described above and the cross-assembly solution below

As I use Linux as my main system, this is a nice fit. Following the installation (mostly) resulted in a working tool chain.

Here the (simplified) script I use to start an assembly:

        FILE=$1
        MACROEXE=/home/fjkraan/kryten/site/comp/pdpNetBoot_sources/rt11-macro.git/rt11-macro

        export RT11_MACRO_MODE=native
        export PATH=../simh-pdp11/BIN/:$PATH

        $MACROEXE $FILE --sav

Using the assembly program listed above, this resulted in a working program. It is identical to the one produced with the real hardware. Unsurprising as it is almost the same code, with maybe a version difference.

Setup 3

So far there are these components which seem to work:

The system boots RT-11 from the TU58 interface, and files from the shared directory are visible and executable. However, the latest attempts drop to the ODT prompt.

This is the (simplified) shell script to run the assembler and linker:

	FILE=$1
	BASE=${FILE%%.*}
	
	macro11 $FILE -l $BASE.lst -o $BASE.obj -rt11  -m SYSMAC.SML
	
	perl obj2bin.pl --verbose --binary --rt11 --out $BASE.SAV $BASE.obj

Downloading and executing results in an ODT prompt or an other incomprehensible error message, so there is an issue somewhere. I'll hope to update soon.

Remarks:


Latest update: 2026-11-12

e-mail