SerialDisk Integration to SIMH

This page describes the process of setting up an interface between SIMH and SerialDisk, so that SIMH has read/write access to the same image files as SerialDisk serves up to a real PDP-8.

Most of what you need to do this is already set up in Kyle’s distribution of SerialDisk. I don’t recall exactly what changes that I’ve made to Kyle’s standard configuration. The notes below reflect the end-state of my system (which is tested and working).

Before starting on the process below, make sure you have already completed the following:

  • You have SerialDisk installed and working reliably with a real PDP-8
  • You have installed the patches necessary to load the system and non-system handlers in the SerialDisk images
  • You have the SIMH PDP-8 simulator installed and working on the same Linux box as SerialDisk

I have set this up under Ubuntu 14.04, running under VirtualBox on a Windows laptop (Lenovo X1). I have not yet tried it on a RaspberryPi.

The main new item that you will need is a “pdp.ini” script that is customised to interface SIMH to work with SerialDisk.

Here is the file that I am currently using:

# Instructions:
# Run 'pdp8' in this directory, and assuming socat and xterm are installed,
# the server should start automatically and the system should boot.

:starter
SET ON
ON OPENERR
ON OPENERR GOTO telerr
at ttix 2222;notelnet
set ttox0 8b
echo Starting socat...
#! sleep 1
! socat PTY,echo=0,link=ttyPDP TCP:localhost:2222 &
echo Waiting for socat...
! sleep 4
echo Starting SerialDisk server...
! xterm -e "bash -c \"../server/os8disk -1 /media/sf_ubuntu-shared-folder/kyle-sd-packs/diagpack2.rk05 -2 /media/sf_ubuntu-shared-folder/kyle-sd-packs/pdp8-blank.rk05; exec bash\"" &
! sleep 5
echo Booting...
l ../bootloader/bootloader.bin
go
:byebye
detach ttix
quit
:telerr
echo TTIX has not released port. Retrying now...
! sleep 2
goto starter

Now navigate to the directory ~/os8diskserver/SerialDisk/simh.

You need to do 3 things here:

  1. Edit the file disk.cfg. The top line (baud rate) and second line (stop bits) don’t matter much. Set these to 19200 and 1 respectively. The third line must say “ttyPDP” (without the quotation marks), for consistency with the content of the file pdp8.ini
  2. Insert a symbolic link called “pdp8” which links to “/home/[username]/simh/simh-master/BIN/pdp8”
  3. Insert the file “pdp8.ini”, the content of which is set out above

You’re now ready to run “./pdp8” from this directory. When you do, SIMH will start up. The start-up script will start “socat” (which forms a pseudo-serial port between SIMH and SerialDisk). After a short delay (to allow socat to start up), the SIMH script will then start SerialDisk.