{"id":3697,"date":"2019-11-17T02:06:37","date_gmt":"2019-11-17T02:06:37","guid":{"rendered":"http:\/\/avitech.com.au\/?page_id=3697"},"modified":"2020-06-20T23:36:17","modified_gmt":"2020-06-20T23:36:17","slug":"unix-v6-on-qbus-pdp-11","status":"publish","type":"page","link":"https:\/\/avitech.com.au\/?page_id=3697","title":{"rendered":"UNIX V6 on QBUS PDP-11"},"content":{"rendered":"<p>I&#8217;ve starting playing around with UNIX v6 on the PDP-11.<\/p>\n<p>I&#8217;m using the &#8220;v6_rl02_unknown&#8221; image, which is discussed and available for download from <a href=\"https:\/\/github.com\/eunuchs\/unix-archive\/tree\/master\/PDP-11\/Boot_Images\">https:\/\/github.com\/eunuchs\/unix-archive\/tree\/master\/PDP-11\/Boot_Images<\/a>.  This is an RL02 image. It must have a modified kernel, as apparently V6 was not originally distributed on RL02 media.<\/p>\n<h4>Hardware<\/h4>\n<p>The hardware used was a Sigma Information Systems 22-bit QBUS chassis and a single RL02 drive.<\/p>\n<p>The QBUS chassis consisted of the following:<\/p>\n<ul>\n<li>DEC M8186 (KDF11-A PDP-11\/23)<\/li>\n<li>Camintonn CMLV11-J (4-port SLU with jumper-selectable baud rates)<\/li>\n<li>DEC M8067 (512KB RAM board consisting of 9 x 8 array of HM4864P-2 ICs)<\/li>\n<li>Webster SRQD11-B\/05 (MSCP controller for MFM hard drive &#8211; not in use)<\/li>\n<li>DEC M8012 (BDV11 board with boot ROMs &#8211; not in use)<\/li>\n<\/ul>\n<h4>Getting UNIX V6 on to a real RL02 cartridge<\/h4>\n<p>The first challenge was moving the downloaded RL02 image to a real RL02 cartridge.  This turned out to be a fairly simple task using PDP11GUI, although there is a bit of a learning curve to making this work correctly.  It took about 3.5 hours to transfer the image over a 9600 baud console connection using PDP11GUI. I had to turn off the LTC front panel switch, to get PDP11GUI&#8217;s RL02 driver code to run. No bad-block checking was done (I&#8217;m not sure whether PDP11GUI does a verify-after-write operation).<\/p>\n<p>At first I couldn&#8217;t get UNIX V6 to boot on the 11\/23.  Here are the lessons I learnt:<\/p>\n<ul>\n<li>The M8186 (KDF11-A) must be fitted with a KEF11-A Floating Point Microcode ROM (see below)<\/li>\n<li>The BDV11 is unable to boot the UNIX V6 RL02 cartridge. It reports &#8220;ERR 16 NOT BOOTABLE&#8221;<\/li>\n<li>My Arduino-based ODT bootloader does successfully boot the UNIX V6 RL02 cartridge<\/li>\n<li>If you are using a standard RL11 bootstrap loader, the RL02 must be UNLOAD&#8217;d and LOAD&#8217;d again, if you want to re-bootstrap it (see below)<\/li>\n<li>It does not matter whether the BDV11 is installed or not. Its presence makes no difference to booting UNIX V6<\/li>\n<li>UNIX V6 will boot and run regardless of whether the LTC switch is on or off. If it is off, the DATE command (when run sequentially) will show that the time is not incrementing<\/li>\n<\/ul>\n<h4>Floating Point Microcode ROM<\/h4>\n<p>A PDP-11\/23 is based on the F11 chipset.  The M8186 (KDF11-A) has 4 x 40-way IC sockets, of which usually 2 or 3 are populated.  Looking at the M8186 with the handles on the left and the edge connector on the right, the 4 sockets from top to bottom are:<\/p>\n<ul>\n<li>F11: 40pin DIL 2-chip hybrid consisting of Control Unit (microcode) 23-001C7-AA and Data Unit (ALU) 21-15541-AB<\/li>\n<li>KEF11-A (Floating Point microcode ROM): 40pin DIL 2-chip hybrid consisting of 23-002C7 and 23-203C7<\/li>\n<li>Empty<\/li>\n<li>KTF11-A (Memory Management Unit): 40pin DIL custom array 21-15542-01<\/li>\n<\/ul>\n<p>A PDP-11\/23 will boot RT-11 with or without the KEF11-A Floating Point IC.  <\/p>\n<p>However, UNIX V6 won&#8217;t boot without it.  Here&#8217;s the console output that occurs when attempting to boot UNIX V6 without the KEF11-AA:<\/p>\n<pre>\r\n!unix\r\nunix v6 11\/23\r\nmem = 99 KW max = 63\r\nstart LTC\r\nka6 = 1421\r\naps = 140016\r\nregs  23162 140004 1361 0 200 140032 140006 754 30000\r\ntrap type 1\r\npanic: trap\r\n<\/pre>\n<h4>Rebooting from the RL02 drive<\/h4>\n<p>If you HALT the PDP-11 after booting UNIX V6 from the RL02 drive, the bootstrap process will likely fail when you attempt to re-bootstrap the RL02, if you are using one of the RL11 bootstrap loaders commonly found on the Internet.  The main problem is that the common bootstrap loaders do not SEEK to cylinder 0 (they assume the heads are already positioned there).<\/p>\n<p>The fix for this is to unload the cartridge (by de-selecting the LOAD switch on the front of the RL02 drive) and waiting until that switch is lit, indicating that the cartridge is ready to load.  Then press the button again to load the cartridge.  Once the white READY light is on, the bootstrap loader should load and start UNIIX V6 without any problems.<\/p>\n<p>I have a specially modified RL11 driver that takes care of this problem.  It is derived from the 9312 DL bootstrap, which had its own problems (it assumed CMD #0 is a NOP, whereas on the RLV12, CMD #0 initiates &#8220;Maintenance Mode&#8221; which amongst other things does DMA transfers from and to the PDP-11&#8217;s RAM).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve starting playing around with UNIX v6 on the PDP-11. I&#8217;m using the &#8220;v6_rl02_unknown&#8221; 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 a Sigma Information Systems 22-bit ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/avitech.com.au\/?page_id=3697\" 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-3697","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P7xTsk-XD","jetpack-related-posts":[{"id":2036,"url":"https:\/\/avitech.com.au\/?page_id=2036","url_meta":{"origin":3697,"position":0},"title":"Links &#8211; DEC related","author":"malcolm","date":"24-May-2017","format":false,"excerpt":"This page is just a collection of links relevant to DEC computers and equipment. Identifying DEC Boards www.pdp-8.org's \"list of 8\/10\/11 M-series cards\" www.pdp-8.org's \"Index to mostly OMNIBUS cards\" DEC Option List and Module List (on the Internet Archive: 232 Pages) Bitsaver's directory containing Options List and Modules Lists Doug\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1657,"url":"https:\/\/avitech.com.au\/?page_id=1657","url_meta":{"origin":3697,"position":1},"title":"QBUS Front Panel Project","author":"malcolm","date":"31-January-2017","format":false,"excerpt":"This project is an Arudino-based front panel for a bare QBUS PDP-11 chassis. It provides the switch and indicator functionality typically found on an early QBUS PDP-11 chassis (such as a BA11-MF or BA11-NC) and does the following: Switches an ATX power supply on and off, to power the PDP-11\u2026","rel":"","context":"With 5 comments","block_context":{"text":"With 5 comments","link":"https:\/\/avitech.com.au\/?page_id=1657#comments"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170712_111817-Medium.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170712_111817-Medium.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170712_111817-Medium.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170712_111817-Medium.jpg?resize=700%2C400 2x"},"classes":[]},{"id":1468,"url":"https:\/\/avitech.com.au\/?page_id=1468","url_meta":{"origin":3697,"position":2},"title":"Pertec T8640A Tape Transport","author":"malcolm","date":"3-January-2017","format":false,"excerpt":"I have a Pertec T8640A Tape Transport that is now working nicely on a QBUS PDP-11 system. While I still have a lot to learn about the operation of magtape systems (and their advantages and limitations), I am now able to successfully \"INItialize\", write to and read from magtapes in\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\/01\/20170105_093142-Large-e1483572635195.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170105_093142-Large-e1483572635195.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170105_093142-Large-e1483572635195.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170105_093142-Large-e1483572635195.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/01\/20170105_093142-Large-e1483572635195.jpg?resize=1050%2C600 3x"},"classes":[]},{"id":1887,"url":"https:\/\/avitech.com.au\/?page_id=1887","url_meta":{"origin":3697,"position":3},"title":"Digital Electronics QBUS Cabinet","author":"malcolm","date":"18-April-2017","format":false,"excerpt":"In my collection I have this rather interesting third-party QBUS system. The manufacturer was an Australian company called \"Digital Electronics\". This appears to have been specifically designed and built for lab A\/D work. The front panel has various analogue I\/O connectors. At the top of the rack is a separate\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\/04\/20170324_112154_1492508841761_resized.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/04\/20170324_112154_1492508841761_resized.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/04\/20170324_112154_1492508841761_resized.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/04\/20170324_112154_1492508841761_resized.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/04\/20170324_112154_1492508841761_resized.jpg?resize=1050%2C600 3x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2017\/04\/20170324_112154_1492508841761_resized.jpg?resize=1400%2C800 4x"},"classes":[]},{"id":1664,"url":"https:\/\/avitech.com.au\/?page_id=1664","url_meta":{"origin":3697,"position":4},"title":"QBUS Notes","author":"malcolm","date":"1-February-2017","format":false,"excerpt":"This page captures my rough working notes regarding QBUS systems. You probably won't find anything greatly useful here. It is mainly a place for me to records things that I seem to continually forget the details of! BA11-NC Chassis This is a 9 row 18-bit ABCD chassis. So dual-height cards\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3407,"url":"https:\/\/avitech.com.au\/?page_id=3407","url_meta":{"origin":3697,"position":5},"title":"BDV11 Upgrade","author":"malcolm","date":"14-August-2018","format":false,"excerpt":"This page documents the steps taken to \"upgrade\" the ROMs in a standard BDV11 in August 2018. This BDV11 had only two ROMs in it. They were marked U49 and U54. They were in the locations that I later replaced with 453-1 and 454-1 respectively. The original ROMs used to\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\/3697","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=3697"}],"version-history":[{"count":10,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3697\/revisions"}],"predecessor-version":[{"id":3707,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3697\/revisions\/3707"}],"wp:attachment":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}