{"id":328,"date":"2017-05-02T20:50:03","date_gmt":"2017-05-03T01:50:03","guid":{"rendered":"https:\/\/knm.org.uk\/blog\/?p=328"},"modified":"2019-05-29T07:59:36","modified_gmt":"2019-05-29T12:59:36","slug":"v86p-expansion","status":"publish","type":"post","link":"https:\/\/knm.org.uk\/blog\/2017\/05\/v86p-expansion\/","title":{"rendered":"V86P Expansion"},"content":{"rendered":"<p>Retrochallenge RC2017\/04 might be over, but I'm going to try and keep moving on this project. I'd already started on the pinout for the internal connectors used by the hard disk controller, and finishing that off seemed like a fairly straightforward task. Having done that, the Expansion Bus header on the back of the system was just a matter of following the same process.<\/p>\n<p>I started off with the hard disk controller, a multimeter, and the datasheet for the <a href=\"https:\/\/knm.org.uk\/datasheets\/OMTI_5090_IBM_PC_Bus_Interface_Jun85.pdf\">OMTI 5090 IBM PC Bus Interface<\/a> controller. The datasheet has the pinout for the IC, along with a table identifying which pins were for the system bus, and which were for the system interface. For each of the system interface pins, checked for continuity to each of the pins on the header connecting to the motherboard. This got most of the header identified, with just a few unlabelled pins. To get those, I basically did the same thing on the motherboard, except in this case identifying the signals was more difficult. On the motherboard, many of the signals need to be buffered (or in the case of address lines, latched). For that, Victor just used 74-series logic - 74HCT244 and 74HCT373 specifically, which is well documented. I traced the signals from the connector to the appropriate buffer output, looked up the input on the datasheet, then traced the input back to the main <a href=\"https:\/\/knm.org.uk\/datasheets\/82c100.pdf\">Chips &amp; Tech 82C100<\/a>. From there I could identify the signal.<\/p>\n<p><!--more--><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2017\/04\/controller-detail.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" id=\"exifviewer-img-28\" class=\"aligncenter\" title=\"\" src=\"\/blog\/wp-content\/uploads\/2017\/04\/_d_improd_\/controller-detail_f_improf_400x116.jpg\" alt=\"\" width=\"400\" height=\"116\" data-mce-width=\"400\" data-mce-height=\"116\"><\/a><\/p>\n<p>There are three headers of interest - two which connect to the motherboard, and another labelled TP1, presumably test points. After ringing out the connectors, the latter may actually be a jumper-block used during testing.<\/p>\n<p>After getting the pinouts for the connectors to the HDD controller, I repeated the same process for the expansion bus connector - the results of which were pleasantly surprising. It turns out to be essentially the same pinout as a regular 8-bit ISA connector, but with a couple of differences. Firstly, the pins that would typically provide power rails are replaced with ground pins; pins A1 and B1 are not present, with&nbsp;\/IO CH CHK is&nbsp;relocated to pin 13; and pin 7 is replaced with a 4.7k pull-up resistor to Vcc.&nbsp;<\/p>\n<p>With all that said, here are the pinouts:<\/p>\n<p><b>CN1 - to motherboard<\/b><\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>A_19<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>A_18<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>Gnd<\/td>\n<\/tr>\n<tr>\n<td>Vcc<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>Vcc<\/td>\n<\/tr>\n<tr>\n<td>AEN<\/td>\n<td>7<\/td>\n<td>8<\/td>\n<td>IRQ_5<\/td>\n<\/tr>\n<tr>\n<td>A_17<\/td>\n<td>9<\/td>\n<td>10<\/td>\n<td>A_16<\/td>\n<\/tr>\n<tr>\n<td>A_15<\/td>\n<td>11<\/td>\n<td>12<\/td>\n<td>A_14<\/td>\n<\/tr>\n<tr>\n<td>A_13<\/td>\n<td>13<\/td>\n<td>14<\/td>\n<td>A_12<\/td>\n<\/tr>\n<tr>\n<td>A_11<\/td>\n<td>15<\/td>\n<td>16<\/td>\n<td>A_10<\/td>\n<\/tr>\n<tr>\n<td>A_9<\/td>\n<td>17<\/td>\n<td>18<\/td>\n<td>A_8<\/td>\n<\/tr>\n<tr>\n<td>A_7<\/td>\n<td>19<\/td>\n<td>20<\/td>\n<td>A_6<\/td>\n<\/tr>\n<tr>\n<td>DRQ_3<\/td>\n<td>21<\/td>\n<td>22<\/td>\n<td>RSTIN<\/td>\n<\/tr>\n<tr>\n<td>\/DACK_3<\/td>\n<td>23<\/td>\n<td>24<\/td>\n<td>A_5<\/td>\n<\/tr>\n<tr>\n<td>\/IORD<\/td>\n<td>25<\/td>\n<td>26<\/td>\n<td>A_4<\/td>\n<\/tr>\n<tr>\n<td>\/IOWR<\/td>\n<td>27<\/td>\n<td>28<\/td>\n<td>A_3<\/td>\n<\/tr>\n<tr>\n<td>A_2<\/td>\n<td>29<\/td>\n<td>30<\/td>\n<td>A_0<\/td>\n<\/tr>\n<tr>\n<td>A_1<\/td>\n<td>31<\/td>\n<td>32<\/td>\n<td>Gnd<\/td>\n<\/tr>\n<tr>\n<td>&nbsp;<\/td>\n<td>33<\/td>\n<td>34<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>Vcc<\/td>\n<td>35<\/td>\n<td>36<\/td>\n<td>Gnd<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>37<\/td>\n<td>38<\/td>\n<td>Vcc<\/td>\n<\/tr>\n<tr>\n<td>\/MEMR<\/td>\n<td>39<\/td>\n<td>40<\/td>\n<td>Gnd<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><b>CN3 - to motherboard<\/b><\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>D_0<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>D_1<\/td>\n<\/tr>\n<tr>\n<td>D_2<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>D_3<\/td>\n<\/tr>\n<tr>\n<td>D_4<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>D_5<\/td>\n<\/tr>\n<tr>\n<td>D_6<\/td>\n<td>7<\/td>\n<td>8<\/td>\n<td>D_7<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><b>TP1<\/b><\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Gnd<\/td>\n<td>1<\/td>\n<td>9<\/td>\n<td>DT_0<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<td>DT_1<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>3<\/td>\n<td>11<\/td>\n<td>DT_2<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>4<\/td>\n<td>12<\/td>\n<td>DT_3<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>5<\/td>\n<td>13<\/td>\n<td>\/CNTA<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>6<\/td>\n<td>14<\/td>\n<td>\/CNTB<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>7<\/td>\n<td>15<\/td>\n<td>\/ROMDIS<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>8<\/td>\n<td>16<\/td>\n<td>\/RADR<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><b>CN2 - to hard disk<\/b><\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Gnd<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>\/READ<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>\/WRITE<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>Reserved<\/td>\n<\/tr>\n<tr>\n<td>\/SELECT<\/td>\n<td>7<\/td>\n<td>8<\/td>\n<td>\/SHIP_READY<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>9<\/td>\n<td>10<\/td>\n<td>\/WRITE_GATE<\/td>\n<\/tr>\n<tr>\n<td>\/MOTOR_ON<\/td>\n<td>11<\/td>\n<td>12<\/td>\n<td>\/HEAD_1<\/td>\n<\/tr>\n<tr>\n<td>\/DIR_IN<\/td>\n<td>13<\/td>\n<td>14<\/td>\n<td>\/STEP<\/td>\n<\/tr>\n<tr>\n<td>\/WRITE_FAULT<\/td>\n<td>15<\/td>\n<td>16<\/td>\n<td>\/SEEK_COMPLETE<\/td>\n<\/tr>\n<tr>\n<td>\/SERVO_GATE<\/td>\n<td>17<\/td>\n<td>18<\/td>\n<td>\/INDEX<\/td>\n<\/tr>\n<tr>\n<td>\/TRACK_0<\/td>\n<td>19<\/td>\n<td>20<\/td>\n<td>\/READY<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>21<\/td>\n<td>22<\/td>\n<td>5V<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>23<\/td>\n<td>24<\/td>\n<td>5V<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>25<\/td>\n<td>26<\/td>\n<td>12V<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<hr>\n<p><b>Expansion Bus Connector<\/b><\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>RESET<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>D7<\/td>\n<\/tr>\n<tr>\n<td><i>Gnd<\/i><\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>D6<\/td>\n<\/tr>\n<tr>\n<td>IRQ2<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>D5<\/td>\n<\/tr>\n<tr>\n<td><i>Power On<\/i><\/td>\n<td>7<\/td>\n<td>8<\/td>\n<td>D4<\/td>\n<\/tr>\n<tr>\n<td>DRQ2<\/td>\n<td>9<\/td>\n<td>10<\/td>\n<td>D3<\/td>\n<\/tr>\n<tr>\n<td><i>Gnd<\/i><\/td>\n<td>11<\/td>\n<td>12<\/td>\n<td>D2<\/td>\n<\/tr>\n<tr>\n<td><i>\/IO CH CHK<\/i><\/td>\n<td>13<\/td>\n<td>14<\/td>\n<td>D1<\/td>\n<\/tr>\n<tr>\n<td><i>Gnd<\/i><\/td>\n<td>15<\/td>\n<td>16<\/td>\n<td>D0<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>17<\/td>\n<td>18<\/td>\n<td>IO CH RDY<\/td>\n<\/tr>\n<tr>\n<td>\/SMEMW<\/td>\n<td>19<\/td>\n<td>20<\/td>\n<td>AEN<\/td>\n<\/tr>\n<tr>\n<td>\/SMEMR<\/td>\n<td>21<\/td>\n<td>22<\/td>\n<td>A19<\/td>\n<\/tr>\n<tr>\n<td>\/IOWR<\/td>\n<td>23<\/td>\n<td>24<\/td>\n<td>A18<\/td>\n<\/tr>\n<tr>\n<td>\/IORD<\/td>\n<td>25<\/td>\n<td>26<\/td>\n<td>A17<\/td>\n<\/tr>\n<tr>\n<td>\/DACK3<\/td>\n<td>27<\/td>\n<td>28<\/td>\n<td>A16<\/td>\n<\/tr>\n<tr>\n<td>DRQ3<\/td>\n<td>29<\/td>\n<td>30<\/td>\n<td>A15<\/td>\n<\/tr>\n<tr>\n<td>\/DACK1<\/td>\n<td>31<\/td>\n<td>32<\/td>\n<td>A14<\/td>\n<\/tr>\n<tr>\n<td>DRQ1<\/td>\n<td>33<\/td>\n<td>34<\/td>\n<td>A13<\/td>\n<\/tr>\n<tr>\n<td>\/REFRESH<\/td>\n<td>35<\/td>\n<td>36<\/td>\n<td>A12<\/td>\n<\/tr>\n<tr>\n<td>CLOCK<\/td>\n<td>37<\/td>\n<td>38<\/td>\n<td>A11<\/td>\n<\/tr>\n<tr>\n<td>IRQ7<\/td>\n<td>39<\/td>\n<td>40<\/td>\n<td>A10<\/td>\n<\/tr>\n<tr>\n<td>IRQ6<\/td>\n<td>41<\/td>\n<td>42<\/td>\n<td>A9<\/td>\n<\/tr>\n<tr>\n<td>IRQ5<\/td>\n<td>43<\/td>\n<td>44<\/td>\n<td>A8<\/td>\n<\/tr>\n<tr>\n<td>IRQ4<\/td>\n<td>45<\/td>\n<td>46<\/td>\n<td>A7<\/td>\n<\/tr>\n<tr>\n<td>IRQ3<\/td>\n<td>47<\/td>\n<td>48<\/td>\n<td>A6<\/td>\n<\/tr>\n<tr>\n<td>\/DACK2<\/td>\n<td>49<\/td>\n<td>50<\/td>\n<td>A5<\/td>\n<\/tr>\n<tr>\n<td>TC<\/td>\n<td>51<\/td>\n<td>52<\/td>\n<td>A4<\/td>\n<\/tr>\n<tr>\n<td>ALE<\/td>\n<td>53<\/td>\n<td>54<\/td>\n<td>A3<\/td>\n<\/tr>\n<tr>\n<td><i>Gnd<\/i><\/td>\n<td>55<\/td>\n<td>56<\/td>\n<td>A2<\/td>\n<\/tr>\n<tr>\n<td>OSC<\/td>\n<td>57<\/td>\n<td>58<\/td>\n<td>A1<\/td>\n<\/tr>\n<tr>\n<td>Gnd<\/td>\n<td>59<\/td>\n<td>60<\/td>\n<td>A0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><i>Italics<\/i> indicate differences in pinout to the standard ISA pinout<\/p>\n<p>Pin 7 appears to be a 4.7k pull-up to Vcc, presumably to indicate when the system is powered on<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Retrochallenge RC2017\/04 might be over, but I&#8217;m going to try and keep moving on this project. I&#8217;d already started on the pinout for the internal connectors used by the hard disk controller, and finishing that off seemed like a fairly straightforward task. Having done that, the Expansion Bus header on the back of the system [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":329,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[4],"tags":[8],"class_list":["post-328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-retrocomputing","tag-v86p"],"_links":{"self":[{"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/posts\/328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/comments?post=328"}],"version-history":[{"count":1,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/posts\/328\/revisions"}],"predecessor-version":[{"id":330,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/posts\/328\/revisions\/330"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/media\/329"}],"wp:attachment":[{"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/media?parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/categories?post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/knm.org.uk\/blog\/wp-json\/wp\/v2\/tags?post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}