{"id":3372,"date":"2018-07-23T01:56:07","date_gmt":"2018-07-23T01:56:07","guid":{"rendered":"http:\/\/avitech.com.au\/?page_id=3372"},"modified":"2025-09-16T22:09:40","modified_gmt":"2025-09-16T22:09:40","slug":"omnibus-boot-loader-project-v1-0","status":"publish","type":"page","link":"https:\/\/avitech.com.au\/?page_id=3372","title":{"rendered":"OMNIBUS Bootstrap Loader Prototype v1.0"},"content":{"rendered":"<p><a href=\"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3378\" data-permalink=\"https:\/\/avitech.com.au\/?attachment_id=3378\" data-orig-file=\"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?fit=1280%2C720&amp;ssl=1\" data-orig-size=\"1280,720\" data-comments-opened=\"1\" data-image-title=\"omnibus-bootloader\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?fit=900%2C506&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" width=\"300\" height=\"169\" class=\"alignright size-medium wp-image-3378\" srcset=\"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?resize=150%2C84&amp;ssl=1 150w, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/07\/omnibus-bootloader.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>This is my first attempt to build a Bootstrap Loader board for the OMNIBUS.<\/p>\n<p>The mode of operation is largely modelled on the MI8-E (M847).  I have some more information about a real MI8-E <a href=\"https:\/\/avitech.com.au\/?page_id=3204\" rel=\"noopener\" target=\"_blank\">here<\/a>.<\/p>\n<p>The OMNIBUS Bootstrap Loader Prototype v1.0 has been constructed and is working well (July 2018). It is built on the left-hand side of a dual-purpose prototype board labelled &#8220;OMNIBUS Prototype: Boot Loader and 32K RAM V1.0 &#8211; www.avitech.com.au&#8221;.<\/p>\n<p>It enables the front-panel switch marked &#8220;SW&#8221; to automatically transfer a device-specific bootstrap loader into the PDP-8&#8217;s core memory. The bootstrap loader to be used can be selected using a 4-way dipswitch on the PCB.<\/p>\n<h4>Using the v1.0 prototype<\/h4>\n<p>The bootstrap loading process is as follows:<\/p>\n<ul>\n<li>Turn on the PDP-8\/e<\/li>\n<li>Configure the dipswitch settings on the PCB to select the appropriate bootloader<\/li>\n<li>Confirm the RUN light is off (if it is ON, lower the RUN\/HALT switch to the HALT position)<\/li>\n<li>Raise the RUN\/HALT switch to the RUN position<\/li>\n<li>Lower the SW switch momentarily, and raise it again<\/li>\n<\/ul>\n<p>By following the above procedure, the selected bootstrap loader will be loaded and will automatically execute.<\/p>\n<p>The dipswitch settings are as follows (using only SW1-5 through SW1-8, down position = 1):<\/p>\n<pre>0000 : Reserved\r\n0001 : SerialDisk\r\n0010 : RX01 Units 0 and 1 (long bootloader)\r\n0011 : RX02\r\n0100 : RIM Loader for Low Speed Reader\r\n0101 : MI8-E RIM Loader (Low Speed and High Speed)\r\n0110 : MI8-E TC08\r\n0111 : MI8-E RK8\r\n1000 : MI8-E TD8E\r\n1001 : RL01\r\n1010 : TA8E CAPS-8\r\n1011 : RX01 Unit 0 only (short bootloader)\r\n1100 : RK05 Emulator (2 byte version)<\/pre>\n<p>PB1 (nearest to the dipswitch blocks) will boot SerialDisk.  PB2 will boot RX01 Unit 0 or Unit 1.<\/p>\n<p>At this stage (3 August 2018) only the SerialDisk and RX01 bootstrap loaders have been successfully tested.<\/p>\n<h4>Construction notes<\/h4>\n<p>The bootloader portion of the prototype PCB works fine without the 32K RAM section.<\/p>\n<p>The components that you need to fit are shown on the 3rd page of the 4-page PDF.<\/p>\n<p>Some construction notes:<\/p>\n<ol>\n<li>Omit CPLD1.  This was placed on the board as a possible substitute for the 2x74HC595s, 1&#215;7407 and 2x7406s. However I have decided to just go with the 5 TTL ICs instead.<\/li>\n<li>Omit LED2, LED3, LED4 and associated resistors.<\/li>\n<li>Omit SW2 (this is used by the 32K RAM section).<\/li>\n<li>You need only fit a 4-way dipswitch in SW1.  Only switches 5, 6, 7 and 8 are connected. Switch 8 is nearest to the unpopulated J7 (40-pin header).<\/li>\n<li>I recommend removing (from the underside of the Arduino Nano) the diode that feeds in the +5V from the USB port (Vusb).  Otherwise the problem is this: If you connect the completed board to your laptop via the USB cable with the board inserted in the Omnibus backplane AND power switched off on the PDP-8, then the USB port will attempt to power the entire Omnibus backplane.  It caused smoke to emit from my Nano.  Removing the diode fixed this.  Perhaps an alternative solution is to place a diode in series with the +5V feed from the PCB to the Arduino Nano (Pin 27 of 30).<\/li>\n<li>The Arduino software includes support for two optional pushbutton switches.  These connect to Arduino \u201canalog\u201d inputs A6 and A7.  These PB switches (which I mounted in the prototyping area, with pullup resistors) always launch a bootstrap loader that is \u201chard coded\u201d into the Arduino source code (ie they are not dipswitch configurable).  This allows \u201cSW\u201d to be used for one bootstrap loader (selected by dipswitch), as well as two other dedicated bootstrap loaders via the PB switches. The software currently assigns one of these to SerialDisk, and the other to RX01.<\/li>\n<\/ol>\n<h4>Resources<\/h4>\n<p>Here are the design files for this project:<\/p>\n<div style=\"padding-left: 30px;\">\n<a href=\"http:\/\/www.avitech.com.au\/mm-files\/omnibus-bootstrap-loader-v10\/omnibus-bootstrap-loader.pdf\" rel=\"noopener\" target=\"_blank\">PDF copy of KiCad schematic<\/a><br \/>\n<a href=\"http:\/\/www.avitech.com.au\/mm-files\/omnibus-bootstrap-loader-v10\/omnibus-bootloader-F.SilkS.SVG\" rel=\"noopener\" target=\"_blank\">PCB silkscreen layer<\/a><br \/>\n<a href=\"http:\/\/www.avitech.com.au\/mm-files\/omnibus-bootstrap-loader-v10\/omnibus-bootloader-composite.svg\" rel=\"noopener\" target=\"_blank\">PCB composite image<\/a><br \/>\n<a href=\"http:\/\/www.avitech.com.au\/mm-files\/omnibus-bootstrap-loader-v10\/omnibus-bootloader-prototype-1.ino\" rel=\"noopener\" target=\"_blank\">Arduino code (version 17-SEP-2025)<\/a>\n<\/div>\n<h4>Proposed changes for V2.0<\/h4>\n<p>Here is the list of proposed changes for the V2.0 prototype PCB:<\/p>\n<ul>\n<li>KEY_CONTROL_L, MS_IR_DISABLE_L, LA_ENABLE_L to be driven from 74HC595 and then via 7406 (not 7407)<\/li>\n<li>\/SRCLR inputs to 74HC595s to connect to RESET button of Arduino<\/li>\n<li>SD-CARD to connect to SPI (and SS) pins of Arduino. Also need to add voltage-divider resistors, and possibly a 3.3V regulator<\/li>\n<li>Add two dedicated pushbutton switches. Each will always load a particular bootstrap loader. Make provision for external pullup resistors, in case the switches are wired to an off-board location<\/li>\n<li>Consider reversing the dipswitches, so the right-most (highest numbered) dipswitch connects to the least-significant-bit of the input PORT<\/li>\n<li>Dipswitch to be 8-way. One side of each switch connects to QA..QH of 74HC595 via a diode (cathode points to 74HC595). Other side of dipswitch bank all connected together and go to an input pin of the Arduino, using internal pullup resistor<\/li>\n<li>Arduino Nano module will be replaced with an ATmega328P DIL IC<\/li>\n<li>Add 2 x programming headers (SPI and TTL RS232)<\/li>\n<li>Fix the bottom-layer silk-screen alignment issue<\/li>\n<li>Consider adding an output pin that allows SLU1 TXD to be diverted to the Arduino. This will also involve wiring SLU1 TXD to Arduino RXD<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>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). It is built on the ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/avitech.com.au\/?page_id=3372\" 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-3372","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P7xTsk-So","jetpack-related-posts":[{"id":3267,"url":"https:\/\/avitech.com.au\/?page_id=3267","url_meta":{"origin":3372,"position":0},"title":"OMNIBUS Bootstrap Loader Project &#8211; Design Notes","author":"malcolm","date":"26-April-2018","format":false,"excerpt":"I am in the process of developing a multi-device \"Omnibus Bootstrap Loader\" board. The purpose of this project is to transfer bootstrap loader code into the PDP-8's core memory, using a similar technique to DEC's MI8-E board. This page captures my random thoughts and observations throughout the project. Interfacing to\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3204,"url":"https:\/\/avitech.com.au\/?page_id=3204","url_meta":{"origin":3372,"position":1},"title":"DEC MI8-E Bootstrap loader for PDP-8\/e","author":"malcolm","date":"15-April-2018","format":false,"excerpt":"The MI8-E is a \"hardware bootstrap loader\" for a PDP-8\/e. It has a large diode matrix that allows a 32-word bootstrap loader to be effectively coded in as a ROM. A series of wire links are inserted or removed to configure the load and start addresses. I have one of\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\/04\/mi8e-01.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/04\/mi8e-01.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/04\/mi8e-01.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/04\/mi8e-01.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/04\/mi8e-01.jpg?resize=1050%2C600 3x"},"classes":[]},{"id":3697,"url":"https:\/\/avitech.com.au\/?page_id=3697","url_meta":{"origin":3372,"position":2},"title":"UNIX V6 on QBUS PDP-11","author":"malcolm","date":"17-November-2019","format":false,"excerpt":"I've starting playing around with UNIX v6 on the PDP-11. I'm using the \"v6_rl02_unknown\" image, which is discussed and available for download from https:\/\/github.com\/eunuchs\/unix-archive\/tree\/master\/PDP-11\/Boot_Images. This is an RL02 image. It must have a modified kernel, as apparently V6 was not originally distributed on RL02 media. Hardware The hardware used was\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":709,"url":"https:\/\/avitech.com.au\/?page_id=709","url_meta":{"origin":3372,"position":3},"title":"PDP-11 Paper Tape BASIC","author":"malcolm","date":"3-July-2016","format":false,"excerpt":"Introduction This page provides an overview of PDP-11 paper tape BASIC, and the computer equipment it was typically used with. It then describes how to load and run PDP-11 BASIC on real PDP-11 hardware, and how it can be run instead on a modern Windows-based PC, under the open-source SIMH\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"DEC-11-AJPB-PB","src":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2016\/07\/DEC-11-AJPB-PB-300x44.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3219,"url":"https:\/\/avitech.com.au\/?page_id=3219","url_meta":{"origin":3372,"position":4},"title":"OMNIBUS CPLD Prototyping Board #1","author":"malcolm","date":"18-April-2018","format":false,"excerpt":"OMNIBUS is the name given to the backplane connectors on PDP-8\/e computers. It is also used on a few other PDP-8 computers (8\/f, 8\/m, 8\/a and perhaps others). After about a year of procrastinating, using KiCAd I have finally (April 2018) got around to laying out an OMNIBUS \"sea of\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\/04\/omnibus-cpld-prototype-1-composite-1-300x134.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2722,"url":"https:\/\/avitech.com.au\/?page_id=2722","url_meta":{"origin":3372,"position":5},"title":"GRC TBC QBUS Board","author":"malcolm","date":"15-October-2017","format":false,"excerpt":"The \"GRC TBC\" is a bootstrap and terminator board designed for PDP-11 QBUS systems. The manufacturer is General Robotics Corporation. The TBC provides the following functionality: Termination for QBUS backplane signals On-board EPROMs (for bootstrap or other purposes) Support for front-panel functionality (run status indicator, enable\/halt switch and LTC switch)\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\/2017\/10\/grc-tbc-pcb-300x174.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3372","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=3372"}],"version-history":[{"count":26,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3372\/revisions"}],"predecessor-version":[{"id":13155,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3372\/revisions\/13155"}],"wp:attachment":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}