Booting RT-11 on the DCJ11 SBC


Creating a Bootable TU-58 Image

For a long time I tried to create a bootable TU-58 image using simh and always failed. Then after some research I found the following article Building a bootable TU-58 image of RT-11. But this did not work either. At least I know there was someone who succeeded and after some research I found out that I hit a bug in simh, as already mentioned in the Forth article of the DCJ11 SBC, once the bug was fixed the above mentioned article worked like a charm and I was finally able to create a bootable TU-58 image with RT-11 using simh. Previously I always used a real PDP-11 to do so, but having the same process working using simh is much more convenient. In my case I used the following pdp11.ini file and then followed the procedure of the copying the minimum of necessary files to the TU-58 image.

set cpu 11/73 128K
set tto 8b
set tti 8b
set rl0 writeenabled
set rl0 rl02
attach rl0 rt11v53dd.dsk
set tdc enable
attach tdc0 rt11tu58.dsk
boot rl0

Starting a TU-58 Emulation

Next you need to connect your computer using a USB Serial/TTL adapter to SLUA of the MCU IO card and launch the TU-58 emulation

peter@MacBook-Air-von-Peter bootblock % tu58em -v -s 115200 -p /dev/cu.usbserial-D34N2YUF  -w rt11tu58.dsk
info: unit 0 rw   file 'rt11tu58.dsk'
info: serial port /dev/cu.usbserial-D34N2YUF at 115200 baud 1 stop
info: TU58 emulation start
info: R restart, S toggle send init, V toggle verbose, D toggle debug, Q quit
info: emulator started

Booting RT-11

Per default the emulated ROM is a copy of the Plessey Multifunction Board which also supports booting from TU-58. If you have not set the jumpers JP1 and JP2 on the DCJ11 SBC to automatically start the program, aka BootROM, at address 1730008 you can start it manually using ODT. Then just enter DD and hit the ENTER key.


@173000g
$DD
RT-11SJ  V05.03  
?KMON-F-File not found DK:STARTS.COM

.

You should now be running RT-11.

TU-58 Emulator Output

As a reference here you see the verbose output of the TU-58 emulator during the RT-11 boot process. As you can see, there are only a few reads executed and RT-11 is booted.

info: emulator started
info: boot     unit=0 blk=0x0000 cnt=0x0200
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0002 cnt=0x0800
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0006 cnt=0x0400
info: read     unit=0 sw=0x00 mod=0x00 blk=0x000E cnt=0x00B8
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0072 cnt=0x0200
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0072 cnt=0x069A
info: read     unit=0 sw=0x00 mod=0x00 blk=0x000D cnt=0x01A0
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0011 cnt=0x4202
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0010 cnt=0x00FE
info: read     unit=0 sw=0x00 mod=0x00 blk=0x000F cnt=0x0086
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0077 cnt=0x0200
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0051 cnt=0x0400
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0055 cnt=0x0400
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0006 cnt=0x0400
info: read     unit=0 sw=0x00 mod=0x00 blk=0x0035 cnt=0x0400

Executing Commands in RT-11

Depending on how many files you copied to the TU-58 image during the creation process you have no several commands you can use. I only copied the minimum end therefore the commands are limited. Here are some examples.

.show all

RT-11SJ  V05.03  
Booted from DD0:RT11SJ

USR   is set SWAP
EXIT  is set SWAP
KMON  is set NOIND
TT    is set NOQUIET
ERROR is set ERROR
SL    is set OFF
EDIT  is set KED
KMON nesting depth is 3

Unknown Processor
256KB of memory
Floating Point Microcode
Extended Instruction Set (EIS)
Memory Management Unit
Cache Memory
60 Cycle System Clock                  

FPU support

Device    Status          CSR     Vector(s)
------    ------          ---     ---------
  DD      Resident       176500   300 304
  TT      Installed      000000   000

TT   
DD  (Resident) 
    DD0 = DK , SY 
27 free slots

Job  Name  Console Level State    Low    High  Impure
---  ----  ------- ----- -----    ---    ----  ------
 0   RESORC   0      0   Run     000000 144502   N/A

No multi-terminal support

Address   Module    Words
-------   ------    -----
160000    IOPAGE     4096.       
155546    DD          589.       
144544    RMON       2305.       
001000    ..BG..    25522.       

LD handler unavailable

And of course you can display the directory of your boot volume.


.dir
 
RT11SJ.SYS    79P 20-Dec-85      SWAP  .SYS    27P 20-Dec-85
DD    .SYS     5P 20-Dec-85      TT    .SYS     2P 20-Dec-85
PIP   .SAV    30P 20-Dec-85      DIR   .SAV    19P 20-Dec-85
RESORC.SAV    25P 20-Dec-85      
 7 Files, 187 Blocks
 317 Free blocks

.

Even when you set the SLU to 115200 baud the performance is not exceptional. However as there is no seek time for an emulated TU-58, the performance is acceptable to do small things.