{"id":2447,"date":"2017-08-01T23:44:25","date_gmt":"2017-08-01T23:44:25","guid":{"rendered":"http:\/\/avitech.com.au\/?page_id=2447"},"modified":"2025-08-27T01:42:56","modified_gmt":"2025-08-27T01:42:56","slug":"serialdisk-operational-notes","status":"publish","type":"page","link":"https:\/\/avitech.com.au\/?page_id=2447","title":{"rendered":"SerialDisk Operational Notes"},"content":{"rendered":"<p>I use Kyle Owen&#8217;s excellent <a href=\"https:\/\/github.com\/drovak\/os8diskserver\" target=\"_blank\">SerialDisk<\/a> software to run OS\/8 on my PDP-8\/e.<\/p>\n<p>This page sets out my notes relating to the ongoing care and maintenance of my existing SerialDisk setup.  It does not explain how to initially setup SerialDisk.<\/p>\n<p><strong>Note: I also have a separate webpage (not yet on WordPress) explaining how to initially setup SerialDisk on the Raspberry Pi.  It&#8217;s on my laptop under Documents\/Websites\/SerialDisk.<\/strong><\/p>\n<h4>Configuration information<\/h4>\n<p>I have 2 Raspberry Pi&#8217;s setup with Serial Disk.<\/p>\n<p><strong>RPi #4<\/strong><\/p>\n<ul>\n<li>Raspberry Pi 2 Model B fitted with a WiFi dongle<\/li>\n<li>WLAN USB Dongle MAC ADDRESS is E8:4E:06:25:D5:DC<\/li>\n<li>ETH0 MAC address is B8:27:EB:AB:8B:13<\/li>\n<li>Hostname is <strong>rpi-sd<\/strong><\/li>\n<li>WLAN USB Dongle IP address is <strong>192.168.2.154<\/strong> (assigned by DHCP)<\/li>\n<li>Login credentials for the RPi are: <strong>pi<\/strong> \/ <strong>raspberry<\/strong>.\n<\/ul>\n<p><strong>RPi #5<\/strong><\/p>\n<ul>\n<li>Raspberry Pi 2 Model B fitted with a WiFi dongle<\/li>\n<li>WLAN USB Dongle MAC ADDRESS is 00:1F:12:03:11:BD<\/li>\n<li>ETH0 MAC address is B8:27:EB:FF:4B:B1<\/li>\n<li>Hostname is <strong>rpi-sd-2<\/strong><\/li>\n<li>WLAN USB Dongle IP address is <strong>192.168.2.156<\/strong> (assigned by DHCP)<\/li>\n<li>Login credentials for the RPi are: <strong>pi<\/strong> \/ <strong>raspberry<\/strong>.\n<\/ul>\n<p>For command-line access, connect to the RPi via SSH using <a href=\"http:\/\/www.putty.org\/\" target=\"_blank\">PuTTY<\/a>.<\/p>\n<p>To copy files to\/from the RPi, I use <a href=\"https:\/\/winscp.net\/eng\/index.php\" target=\"_blank\">WinSCP<\/a>.<\/p>\n<h4>Cautions and limitations &#8211; Please read !!<\/h4>\n<p>Although RK05 images are used by SerialDisk, OS\/8 cannot &#8220;see&#8221; them as RK05 disks.  SerialDisk relies on modifying the disk handlers so that it can read and write to these images.<\/p>\n<p>The three disk images that I am using have been patched to use the &#8220;system handler&#8221; and &#8220;non-system handler&#8221; required for SerialDisk, using the instructions and handler code provided by Kyle Owen.  Accordingly they will no longer work as RK05 images.  These images however have not been &#8220;fully patched&#8221;, so commands like PIP and RESORC will apparently NOT work correctly. I hope to fix this in the near future.<\/p>\n<h4>OMNIBUS serial interface boards<\/h4>\n<p>A number of different serial boards can be used to connect the PDP-8\/e to the SerialDisk Raspberry Pi.  Keep in mind that you ideally want a fairly high baud rate (115,200 or higher) otherwise the delays waiting for sectors to be served up may become intolerable.<\/p>\n<p>If you are having difficulty with any of these cards, it&#8217;s a good idea to use the well-known toggle-in programs to check ASCII output and echo test.<\/p>\n<p>Here are my notes on the ones that I have used so far:<\/p>\n<p><strong>KL8-E (M8650)<\/strong><\/p>\n<p>This is a DEC RS232 and current loop interface board that contains only discrete ICs (no 40-pin UARTs etc).<\/p>\n<p>Doug Jones has an <a href=\"https:\/\/homepage.cs.uiowa.edu\/~jones\/pdp8\/hard8e\/kl8e.html\" target=\"_blank\">excellent webpage<\/a> explaining how to configure this board.<\/p>\n<p>Depending on the crystal installed, the board is capable of the following baud rates.  The first 2 crystals were fitted by DEC to different variants of the M8650.  The third one was not:<\/p>\n<ul>\n<li>14.418 MHz crystal: Useful for 110 baud only.  Other baud rates are available with this crystal, but they are all non-standard<\/li>\n<li>19.6608 MHz crystal: Supports all common\/standard baud rates from 150 to 38,400, plus various non-standard baud rates including 76,800, 153,600 and 307,200. Doug Jones notes that at 307,200 the KL8E will be hitting the maximum speed (10 MHz) of the ICs<\/li>\n<li>14.7456 MHz: By jumpering E22 pin 3 to jumper 9 of the baud-rate (&#8220;Group G&#8221;) jumper block, you can configure the KL8-E for 230,400 baud. This is what I use for SerialDisk<\/li>\n<\/ul>\n<p>Things to check for on the M8650 when configuring it for SerialDisk:<\/p>\n<ul>\n<li>Doug Jones notes that the 0.47uF 35V electrolytic capacitor in the top left corner of the M8650 needs to be installed for 110 baud operation, but should be removed for higher baud rates<\/li>\n<li>2 stop bits are needed for 110 baud on the Teletype, but 1 stop bit should be OK otherwise<\/li>\n<li>SerialDisk needs to be configured for device codes 40\/41 (second TTY) rather than as 03\/04 (console default)<\/li>\n<\/ul>\n<p>When using a KL8-E configured for 38,400 or 230,400 baud and 1 stop bit, I do not recommend setting SerialDisk (on the RPi) for 1 stop bit (by putting 0 in the second line of the file disk.cfg). Twice this has resulted in my first disk image (SDA0) being corrupted on boot up. For some reason SerialDisk thinks that it is being asked to write to the disk image, rather than read from it. This is apparent from the SerialDisk status messages that appear on the RPi&#8217;s console display. By instead setting the number of stop bits to 2 on the RPi (by putting 1 in the second line of the file disk.cfg), I have had no further issues. I leave the KL8E set to 1 stop bit.<\/p>\n<p><strong>Philip&#8217;s USB interface (FPGA based)<\/strong><\/p>\n<p>&#8211; On Windows, need to click on advanced tab and enable VCP<br \/>\n&#8211; Don&#8217;t need to set a baud rate<br \/>\n&#8211; download his files<br \/>\n&#8211; include link to his site<br \/>\n&#8211; need to insulate 2 components on his PCB<\/p>\n<p><strong>Mal&#8217;s Omni-USB board<\/strong><\/p>\n<p>&#8211; Dipswitch settings<br \/>\n&#8211; Which version of software are we using<\/p>\n<h4>Toggle in tests<\/h4>\n<p>Here is a slightly modified version of well-know toggle-in tests, to check basic operation of the serial board at device code 40\/41:<\/p>\n<pre>Console Print Test\r\n\r\n0000  7001\r\n0001  6416  (was 6046)\r\n0002  6411  (was 6041)\r\n0003  5002\r\n0004  5000\r\n\r\nEcho Test\r\n\r\n0000  6402  (was 6032)\r\n0001  6401  (was 6031)\r\n0002  5001\r\n0003  6406  (was 6036)\r\n0004  6416  (was 6046)\r\n0005  6411  (was 6041)\r\n0006  5005\r\n0007  5001\r\n<\/pre>\n<h4>Disk images<\/h4>\n<p>SerialDisk can serve up 2 disk images, for a total of 4 devices. The first disk image is the &#8220;System Disk&#8221; and appears as devices SDA0 and SDB0. The second disk image is the &#8220;Second Disk&#8221; and appears as devices SDA1 and SDB1.<\/p>\n<p>A collection of PDP-8 RK05 images is available here on <a href=\"https:\/\/www.pdp8online.com\/images\/images\/os8.shtml\" target=\"_blank\">David Gesswein&#8217;s website<\/a>. I am making use of <a href=\"https:\/\/www.pdp8online.com\/pdp8cgi\/os8_html?act=dir;fn=images\/os8\/diagpack2.rk05;sort=name\" target=\"_blank\">diagpack2.rk05<\/a> and <a href=\"https:\/\/www.pdp8online.com\/pdp8cgi\/os8_html?act=dir;fn=images\/os8\/diag%2Dgames%2Dkermit.rk05;sort=name\" target=\"_blank\">disk-games-kermit.rk05<\/a>. Click on the links shown here for a listing and description of the files on those images.<\/p>\n<p>To use an RK05 image as the &#8220;System Disk&#8221; it must be modified (using the instructions provided by Kyle Owen) to install the &#8220;system handler&#8221; and the &#8220;non-system handler&#8221; necessary to make it work with SerialDisk. However, you can mount an un-modified RK05 image as the &#8220;Second Disk&#8221; in SerialDisk without needing to modify it.<\/p>\n<p>I have fitted a 3-position switch to the RPi, wired to the GPIO pins, to select the disk images that are used by SerialDisk. The 3-way switch is read by the Python script \/home\/pi\/startserialdisk.py. It is read only once (at startup), so changing the switch position once SerialDisk is running will have no effect.<\/p>\n<p>The disk images served up by SerialDisk are as follows:<\/p>\n<table style=\"width:90%;margin-left:5%;\">\n<tr class=\"bb\">\n<th style=\"width:33%;text-align:left;\">Switch Position<\/th>\n<th style=\"width:33%;text-align:left;\">System Disk<br \/>(SDA0 &#038; SDB0)<\/th>\n<th style=\"width:34%;text-align:left;\">Second Disk<br \/>(SDA1 &#038; SDB1)<\/th>\n<\/tr>\n<tr class=\"topjust\">\n<td>1 (top)<\/td>\n<td>diagpack2.rk05<\/td>\n<td>scratch-pack.rk05<\/td>\n<\/tr>\n<tr class=\"topjust\">\n<td>2 (centre)<\/td>\n<td>diag-games-kermit.rk05<\/td>\n<td>scratch-pack.rk05<\/td>\n<\/tr>\n<tr class=\"topjust\">\n<td>3 (bottom)<\/td>\n<td>scratch-pack.rk05<\/td>\n<td>diag-games-kermit.rk05<\/td>\n<\/tr>\n<\/table>\n<p>&nbsp;<\/p>\n<p>The directory listing of the disk images is available below:<\/p>\n<div style=\"padding-left: 30px;\">\n<p>diagpack2.rk05: <a href=\"http:\/\/www.avitech.com.au\/mm-files\/serialdisk\/diagpack2-a.txt\" target=\"_blank\">Side-A<\/a> <a href=\"http:\/\/www.avitech.com.au\/mm-files\/serialdisk\/diagpack2-b.txt\" target=\"_blank\">Side-B<\/a><\/p>\n<p>diag-games-kermit.rk05: <a href=\"http:\/\/www.avitech.com.au\/mm-files\/serialdisk\/diag-games-kermit-a.txt\" target=\"_blank\">Side-A<\/a> <a href=\"http:\/\/www.avitech.com.au\/mm-files\/serialdisk\/diag-games-kermit-b.txt\" target=\"_blank\">Side-B<\/a><\/p>\n<\/div>\n<h4>Useful commands<\/h4>\n<p>To view the name of the virtual disk file(s) served up by SerialDisk:<\/p>\n<pre>pi@rpi-sd:~ $ cat startserialdisk.py<\/pre>\n<p>To view the serial interface parameters used by SerialDisk:<\/p>\n<pre>pi@rpi-sd:~ $ cat os8diskserver\/SerialDisk\/server\/disk.cfg<\/pre>\n<p>To view all USB devices that are connected to the RPi:<\/p>\n<pre>pi@rpi-sd:~ $ lsusb<\/pre>\n<p>To view available USB-to-RS232 interfaces:<\/p>\n<pre>pi@rpi-sd:~ $ ls -l \/dev\/*USB*<\/pre>\n<p>To view current USB-to-RS232 parameters:<\/p>\n<pre>pi@rpi-sd:~ $ stty -F \/dev\/ttyUSB0<\/pre>\n<p>To view the network settings and IP address of the WiFi adapter:<\/p>\n<pre>pi@rpi-sd:~ $ ifconfig wlan0<\/pre>\n<p>To view the wireless access points that are currently in range:<\/p>\n<pre>pi@rpi-sd:~ $ sudo iwlist wlan0 scan<\/pre>\n<p>To view the WiFi access points that the RPi will attempt to connect to:<\/p>\n<pre>pi@rpi-sd:~ $ sudo cat \/etc\/wpa_supplicant\/wpa_supplicant.conf<\/pre>\n<p>To view the hostname currently in use by the RPi. This is useful if you want to access the RPi by hostname over SSH using PuTTY (but note that the RPi will need to have the samba package installed. See below for details about how to do this):<\/p>\n<pre>pi@rpi-sd:~ $ hostname<\/pre>\n<p>To change the hostname you need to edit two files. The first file should have just the hostname in it. The second file will have the hostname to the right of text that says &#8220;127.0.0.1&#8221; (the local loopback address). Here are the commands needed to edit the two files (use CTRL-X then Y to save and exit):<\/p>\n<pre>pi@rpi-sd:~ $ sudo nano \/etc\/hostname\r\npi@rpi-sd:~ $ sudo nano \/etc\/hosts\r\n<\/pre>\n<p>To install samba, so that the RPi will be visible to a Windows machine using just the RPi&#8217;s hostname. Note that no configuration of samba is required for this to work:<\/p>\n<pre>pi@rpi-sd:~ $ sudo apt-get update\r\npi@rpi-sd:~ $ sudo apt-get install samba<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I use Kyle Owen&#8217;s excellent SerialDisk software to run OS\/8 on my PDP-8\/e. This page sets out my notes relating to the ongoing care and maintenance of my existing SerialDisk setup. It does not explain how to initially setup SerialDisk. Note: I also have a separate webpage (not yet on WordPress) explaining how to initially ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/avitech.com.au\/?page_id=2447\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2447","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P7xTsk-Dt","jetpack-related-posts":[{"id":2514,"url":"https:\/\/avitech.com.au\/?page_id=2514","url_meta":{"origin":2447,"position":0},"title":"SerialDisk Integration to SIMH","author":"malcolm","date":"20-August-2017","format":false,"excerpt":"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.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7532,"url":"https:\/\/avitech.com.au\/?page_id=7532","url_meta":{"origin":2447,"position":1},"title":"ARpiCADE","author":"malcolm","date":"15-November-2022","format":false,"excerpt":"I first started experimenting with ARpiCADE in November 2022. These notes relate to version 3.X (for RPi 3). The standard 3.X distribution does NOT have ssh enabled. You need to add a blank file called ssh to the BOOT partition to enable this. Here are some random notes, for future\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3372,"url":"https:\/\/avitech.com.au\/?page_id=3372","url_meta":{"origin":2447,"position":2},"title":"OMNIBUS Bootstrap Loader Prototype v1.0","author":"malcolm","date":"23-July-2018","format":false,"excerpt":"This is my first attempt to build a Bootstrap Loader board for the OMNIBUS. The mode of operation is largely modelled on the MI8-E (M847). I have some more information about a real MI8-E here. The OMNIBUS Bootstrap Loader Prototype v1.0 has been constructed and is working well (July 2018).\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader-300x169.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":157,"url":"https:\/\/avitech.com.au\/?page_id=157","url_meta":{"origin":2447,"position":3},"title":"Linux tips and tricks","author":"malcolm","date":"8-May-2016","format":false,"excerpt":"How do I change the hostname of my RPi? You need to do 3 things: sudo nano vi \/etc\/hostname. You'll find the existing hostname in this file. Update the hostname as desitred, then save and exit. sudo nano \/etc\/hosts. Look for any occurrence of the old hostname in here. Update\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12665,"url":"https:\/\/avitech.com.au\/?page_id=12665","url_meta":{"origin":2447,"position":4},"title":"George Wiley&#8217;s RK05 Emulator","author":"malcolm","date":"25-June-2025","format":false,"excerpt":"This page is a collection of notes made while I was getting familiar with this emulator at the RK8E workshop session in late June 2025 in the U.S. and subsequently at home in July\/August 2025 in Melbourne. Getting the images for the MicroSD card The V1 emulator uses \".rk05\" files.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2634,"url":"https:\/\/avitech.com.au\/?page_id=2634","url_meta":{"origin":2447,"position":5},"title":"DEC PDP-11\/73 in BA123 cabinet","author":"malcolm","date":"30-September-2017","format":false,"excerpt":"I have built up a PDP-11\/73 system in a BA123 cabinet. My aim is for this system to be able to boot either RT-11 V5.7 or RSX-11M+. The primary MSCP controller is a CMD CQD-220 controller with a SCSI2SD device connected to it. Up to 4 logical devices can exist\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/2447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/avitech.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2447"}],"version-history":[{"count":34,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/2447\/revisions"}],"predecessor-version":[{"id":13066,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/2447\/revisions\/13066"}],"wp:attachment":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}