CINXE.COM
Ken Shirriff's blog: March 2020
<!DOCTYPE html> <html class='v2' dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <meta content='width=1100' name='viewport'/> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='http://www.righto.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='http://www.righto.com/2020/03/' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Ken Shirriff's blog - Atom" href="http://www.righto.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Ken Shirriff's blog - RSS" href="http://www.righto.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Ken Shirriff's blog - Atom" href="https://www.blogger.com/feeds/6264947694886887540/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='http://www.righto.com/2020/03/' property='og:url'/> <meta content='Ken Shirriff's blog' property='og:title'/> <meta content='Computer history, restoring vintage computers, IC reverse engineering, and whatever' property='og:description'/> <title>Ken Shirriff's blog: March 2020</title> <style type='text/css'>@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvtg2H70Q13HqPA.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvtE2H70Q13HqPA.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvtY2H70Q13HqPA.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvto2H70Q13HqPA.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvts2H70Q13HqPA.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvtU2H70Q13E.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}</style> <style id='page-skin-1' type='text/css'><!-- /* ----------------------------------------------- Blogger Template Style Name: Simple Designer: Blogger URL: www.blogger.com ----------------------------------------------- */ /* Variable definitions ==================== <Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/> <Group description="Page Text" selector="body"> <Variable name="body.font" description="Font" type="font" default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="body.text.color" description="Text Color" type="color" default="#222222"/> </Group> <Group description="Backgrounds" selector=".body-fauxcolumns-outer"> <Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/> <Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/> <Variable name="header.background.color" description="Header Background" type="color" default="transparent"/> </Group> <Group description="Links" selector=".main-outer"> <Variable name="link.color" description="Link Color" type="color" default="#2288bb"/> <Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/> <Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/> </Group> <Group description="Blog Title" selector=".header h1"> <Variable name="header.font" description="Font" type="font" default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" /> </Group> <Group description="Blog Description" selector=".header .description"> <Variable name="description.text.color" description="Description Color" type="color" default="#777777" /> </Group> <Group description="Tabs Text" selector=".tabs-inner .widget li a"> <Variable name="tabs.font" description="Font" type="font" default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/> <Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/> </Group> <Group description="Tabs Background" selector=".tabs-outer .PageList"> <Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/> <Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/> </Group> <Group description="Post Title" selector="h3.post-title, .comments h4"> <Variable name="post.title.font" description="Font" type="font" default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> </Group> <Group description="Date Header" selector=".date-header"> <Variable name="date.header.color" description="Text Color" type="color" default="#222222"/> <Variable name="date.header.background.color" description="Background Color" type="color" default="transparent"/> <Variable name="date.header.font" description="Text Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/> <Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/> <Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/> </Group> <Group description="Post Footer" selector=".post-footer"> <Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/> <Variable name="post.footer.background.color" description="Background Color" type="color" default="#f9f9f9"/> <Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/> </Group> <Group description="Gadgets" selector="h2"> <Variable name="widget.title.font" description="Title Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/> <Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/> </Group> <Group description="Images" selector=".main-inner"> <Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/> <Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/> <Variable name="image.text.color" description="Caption Text Color" type="color" default="#222222"/> </Group> <Group description="Accents" selector=".content-inner"> <Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/> <Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="#eeeeee"/> </Group> <Variable name="body.background" description="Body Background" type="background" color="#f6fbf6" default="$(color) none repeat scroll top left"/> <Variable name="body.background.override" description="Body Background Override" type="string" default=""/> <Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/> <Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/body_gradient_tile_light.png)"/> <Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/> <Variable name="content.padding" description="Content Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px" min="0" max="100px"/> <Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px" min="0" max="100px"/> <Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px" min="0" max="100px"/> <Variable name="main.border.width" description="Main Border Width" type="length" default="0" min="0" max="10px"/> <Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/> <Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px" min="0" max="100px"/> <Variable name="header.padding" description="Header Padding" type="length" default="30px" min="0" max="100px"/> <Variable name="header.border.size" description="Header Border Size" type="length" default="1px" min="0" max="10px"/> <Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/> <Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" min="0" max="100px"/> <Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" min="0" max="100px"/> <Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/> <Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px" min="0" max="100px"/> <Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px" min="0" max="10px"/> <Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px" min="0" max="10px"/> <Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/> <Variable name="page.width" description="Page Width" type="string" default="auto"/> <Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding" description="Main Padding" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px" min="0" max="100px"/> <Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px" min="0" max="100px"/> <Variable name="paging.background" color="#ffffff" description="Background of blog paging area" type="background" default="transparent none no-repeat scroll top center"/> <Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0" min="0" max="10px"/> <Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string" default="transparent none repeat scroll top left"/> <Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/> <Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" /> <Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/> <Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/> */ /* Content ----------------------------------------------- */ body { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #222222; background: #f6fbf6 none repeat scroll top left; padding: 0 40px 40px 40px; } html body .region-inner { min-width: 0; max-width: 100%; width: auto; } h2 { font-size: 22px; } a:link { text-decoration:none; color: #121fb3; } a:visited { text-decoration:none; color: #121fb3; } a:hover { text-decoration:underline; color: #1a00ff; } .body-fauxcolumn-outer .fauxcolumn-inner { background: transparent url(//www.blogblog.com/1kt/simple/body_gradient_tile_light.png) repeat scroll top left; _background-image: none; } .body-fauxcolumn-outer .cap-top { position: absolute; z-index: 1; height: 400px; width: 100%; } .body-fauxcolumn-outer .cap-top .cap-left { width: 100%; background: transparent url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll top left; _background-image: none; } .content-outer { -moz-box-shadow: 0 0 40px rgba(0, 0, 0, .15); -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15); -goog-ms-box-shadow: 0 0 10px #333333; box-shadow: 0 0 40px rgba(0, 0, 0, .15); margin-bottom: 1px; } .content-inner { padding: 10px 10px; } .content-inner { background-color: #ffffff; } /* Header ----------------------------------------------- */ .header-outer { background: #f6fbf7 url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -400px; _background-image: none; } .Header h1 { font: normal normal 42px Play; color: #666666; text-shadow: 1px 2px 3px rgba(0, 0, 0, .2); } .Header h1 a { color: #666666; } .Header .description { font-size: 140%; color: #666666; } .header-inner .Header .titlewrapper { padding: 22px 30px; } .header-inner .Header .descriptionwrapper { padding: 0 30px; } /* Tabs ----------------------------------------------- */ .tabs-inner .section:first-child { border-top: 0 solid #eeeeee; } .tabs-inner .section:first-child ul { margin-top: -0; border-top: 0 solid #eeeeee; border-left: 0 solid #eeeeee; border-right: 0 solid #eeeeee; } .tabs-inner .widget ul { background: #f5f5f5 url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -800px; _background-image: none; border-bottom: 1px solid #eeeeee; margin-top: 0; margin-left: -30px; margin-right: -30px; } .tabs-inner .widget li a { display: inline-block; padding: .6em 1em; font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #999999; border-left: 1px solid #ffffff; border-right: 1px solid #eeeeee; } .tabs-inner .widget li:first-child a { border-left: none; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { color: #000000; background-color: #eeeeee; text-decoration: none; } /* Columns ----------------------------------------------- */ .main-outer { border-top: 0 solid #eeeeee; } .fauxcolumn-left-outer .fauxcolumn-inner { border-right: 1px solid #eeeeee; } .fauxcolumn-right-outer .fauxcolumn-inner { border-left: 1px solid #eeeeee; } /* Headings ----------------------------------------------- */ div.widget > h2, div.widget h2.title { margin: 0 0 1em 0; font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #000000; } /* Widgets ----------------------------------------------- */ .widget .zippy { color: #999999; text-shadow: 2px 2px 1px rgba(0, 0, 0, .1); } .widget .popular-posts ul { list-style: none; } /* Posts ----------------------------------------------- */ h2.date-header { font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; } .date-header span { background-color: transparent; color: transparent; padding: inherit; letter-spacing: inherit; margin: inherit; } .main-inner { padding-top: 30px; padding-bottom: 30px; } .main-inner .column-center-inner { padding: 0 15px; } .main-inner .column-center-inner .section { margin: 0 15px; } .post { margin: 0 0 25px 0; } h3.post-title, .comments h4 { font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif; margin: .75em 0 0; } .post-body { font-size: 110%; line-height: 1.4; position: relative; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 2px; background: #ffffff; border: 1px solid #ffffff; -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); } .post-body img, .post-body .tr-caption-container { padding: 5px; } .post-body .tr-caption-container { color: #222222; } .post-body .tr-caption-container img { padding: 0; background: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } .post-header { margin: 0 0 1.5em; line-height: 1.6; font-size: 90%; } .post-footer { margin: 20px -2px 0; padding: 5px 10px; color: #666666; background-color: #f9f9f9; border-bottom: 1px solid #eeeeee; line-height: 1.6; font-size: 90%; } #comments .comment-author { padding-top: 1.5em; border-top: 1px solid #eeeeee; background-position: 0 1.5em; } #comments .comment-author:first-child { padding-top: 0; border-top: none; } .avatar-image-container { margin: .2em 0 0; } #comments .avatar-image-container img { border: 1px solid #ffffff; } /* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); } .comments .comments-content .loadmore a { border-top: 1px solid #999999; border-bottom: 1px solid #999999; } .comments .comment-thread.inline-thread { background-color: #f9f9f9; } .comments .continue { border-top: 2px solid #999999; } /* Accents ---------------------------------------------- */ .section-columns td.columns-cell { border-left: 1px solid #eeeeee; } .blog-pager { background: transparent none no-repeat scroll top center; } .blog-pager-older-link, .home-link, .blog-pager-newer-link { background-color: #ffffff; padding: 5px; } .footer-outer { border-top: 0 dashed #bbbbbb; } /* Mobile ----------------------------------------------- */ body.mobile { background-size: auto; } .mobile .body-fauxcolumn-outer { background: transparent none repeat scroll top left; } .mobile .body-fauxcolumn-outer .cap-top { background-size: 100% auto; } .mobile .content-outer { -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); box-shadow: 0 0 3px rgba(0, 0, 0, .15); } .mobile .tabs-inner .widget ul { margin-left: 0; margin-right: 0; } .mobile .post { margin: 0; } .mobile .main-inner .column-center-inner .section { margin: 0; } .mobile .date-header span { padding: 0.1em 10px; margin: 0 -10px; } .mobile h3.post-title { margin: 0; } .mobile .blog-pager { background: transparent none no-repeat scroll top center; } .mobile .footer-outer { border-top: none; } .mobile .main-inner, .mobile .footer-inner { background-color: #ffffff; } .mobile-index-contents { color: #222222; } .mobile-link-button { background-color: #121fb3; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #ffffff; } .mobile .tabs-inner .section:first-child { border-top: none; } .mobile .tabs-inner .PageList .widget-content { background-color: #eeeeee; color: #000000; border-top: 1px solid #eeeeee; border-bottom: 1px solid #eeeeee; } .mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-left: 1px solid #eeeeee; } .content-outer { max-width: 1400px !important; } /* fix header */ #header-inner { width: 100% !important; background-position: right !important; } .titlewrapper { padding: 11px 30px 0 !important; } .descriptionwrapper { margin-bottom: 0 !important; } .description { font-size: 120% !important; } /* suppress things */ .date-header { display: none; } #Attribution1 { display: none; } .post-author, .post-timestamp, .reaction-buttons { display: none; } /* h2: sidebar titles */ /* h3: post title */ .post-title , .entry-title { font-size: 180% !important; margin-top: 0 !important; } .entry-title a:link, .entry-title a:visited, .entry-title a:active{ color: #a03; } #main h2 { color:#333; margin-bottom:.4em; margin-top: 13px; font-size:140%; } #main h3 { color:#333; margin-bottom:.4em; margin-top: 13px; font-size:110%; } #main h4 { color:#333; margin-bottom:.5em; } #sidebar-right-1 a:link, #sidebar-right-1 a:visited, #sidebar-right-1 a:active { color: #666; } #sidebar-right-1 h2 { font-size: 100%; color: #666; } /* disable image box */ element.style { } table.chargers img { height: 18px; } table.chargers img { height: 18px; } .post-body img, .post-body .tr-caption-container { padding: 5px; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 0; background: #ffffff; border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } /* Special items */ a:link img.hilite, a:visited img.hilite { color: #fff; } a:hover img.hilite, a:hover img.hilite2 { color: #f66; } a:active img.hilite { color: #33c; } .hilite {cursor:zoom-in} pre {color:#000000;border:1px solid #000000;} pre.repl { background-color:#e0e0f0; font-size:120%;} pre.arc { background-color:#e0e0f0; font-size:120%;} pre.code { background-color:#e0f0e0; font-size:120%; white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;text-wrap:unrestricted;} code { font-size: 100%;} blockquote { font-size: 110%; background: transparent url("//static.righto.com/images/blockquote.gif") no-repeat 0 0; margin: 20px 0px; padding: 0px 40px;} div.cite {font-size: .8em;.; font-style: italic; color: #888; margin-bottom: 9px;} a.ref { color: gray;vertical-align: super; text-decoration: none; font-size:60%;margin-left: 2px;} a img.hilite { border: 1px solid; color: #888; z-index: 2; } a img.hilite2, a:active img.hilite2 { border: 1px solid; color: #f6fbf6; } table.chargers { border-width: 1px; border-spacing: 2px; border-style: outset; border-color: gray; border-collapse: collapse; background-color: white; } table.chargers th.maker { padding-right: 5px; text-align: right; } table.chargers th { border-width: 1px; padding: 3px; border-style: inset; border-color: gray; background-color: white; text-align: center; } table.chargers img { height: 18px; } table.chargers td { text-align: center; border-width: 1px; padding: 2px 8px; border-style: inset; border-color: gray; background-color: white; } --></style> <style id='template-skin-1' type='text/css'><!-- body { min-width: 750px; } .content-outer, .content-fauxcolumn-outer, .region-inner { min-width: 750px; max-width: 750px; _width: 750px; } .main-inner .columns { padding-left: 0px; padding-right: 240px; } .main-inner .fauxcolumn-center-outer { left: 0px; right: 240px; /* IE6 does not respect left and right together */ _width: expression(this.parentNode.offsetWidth - parseInt("0px") - parseInt("240px") + 'px'); } .main-inner .fauxcolumn-left-outer { width: 0px; } .main-inner .fauxcolumn-right-outer { width: 240px; } .main-inner .column-left-outer { width: 0px; right: 100%; margin-left: -0px; } .main-inner .column-right-outer { width: 240px; margin-right: -240px; } #layout { min-width: 0; } #layout .content-outer { min-width: 0; width: 800px; } #layout .region-inner { min-width: 0; width: auto; } --></style> <meta content='width=device-width, initial-scale=1.0, maximum-scale=12.0, minimum-scale=.25, user-scalable=yes' name='viewport'/> <meta content='mw8ww70r3jW0GzXY6j1d' name='follow_it-verification-code'/> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6264947694886887540&zx=6fd23a04-bc1a-4aed-b46d-611afb4481ef' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6264947694886887540&zx=6fd23a04-bc1a-4aed-b46d-611afb4481ef' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body class='loading'> <div class='navbar no-items section' id='navbar'> </div> <div class='body-fauxcolumns'> <div class='fauxcolumn-outer body-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content'> <div class='content-fauxcolumns'> <div class='fauxcolumn-outer content-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content-outer'> <div class='content-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left content-fauxborder-left'> <div class='fauxborder-right content-fauxborder-right'></div> <div class='content-inner'> <header> <div class='header-outer'> <div class='header-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left header-fauxborder-left'> <div class='fauxborder-right header-fauxborder-right'></div> <div class='region-inner header-inner'> <div class='header section' id='header'><div class='widget Header' data-version='1' id='Header1'> <div id='header-inner' style='background-image: url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-4KXwYe0lQ4HFzhAye9vvRlij2ZYvMbfPCnqEE__1o85Fjo3XgefxJQhWRdwR3EzNWNMWT3yMaj2QZaT9GazqQx3C6oWa3-hBNlRHG7f-Oib-lv1Wq_C2_A0rt8xZgs87iNqzRVKK7H0A/s800/background.jpg"); background-position: left; width: 550px; min-height: 105px; _height: 105px; background-repeat: no-repeat; '> <div class='titlewrapper' style='background: transparent'> <h1 class='title' style='background: transparent; border-width: 0px'> <a href='http://www.righto.com/'> Ken Shirriff's blog </a> </h1> </div> <div class='descriptionwrapper'> <p class='description'><span>Computer history, restoring vintage computers, IC reverse engineering, and whatever</span></p> </div> </div> </div></div> </div> </div> <div class='header-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </header> <div class='tabs-outer'> <div class='tabs-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left tabs-fauxborder-left'> <div class='fauxborder-right tabs-fauxborder-right'></div> <div class='region-inner tabs-inner'> <div class='tabs no-items section' id='crosscol'></div> <div class='tabs no-items section' id='crosscol-overflow'></div> </div> </div> <div class='tabs-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='main-outer'> <div class='main-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left main-fauxborder-left'> <div class='fauxborder-right main-fauxborder-right'></div> <div class='region-inner main-inner'> <div class='columns fauxcolumns'> <div class='fauxcolumn-outer fauxcolumn-center-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-left-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-right-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <!-- corrects IE6 width calculation --> <div class='columns-inner'> <div class='column-center-outer'> <div class='column-center-inner'> <div class='main section' id='main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='blog-posts hfeed'> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='http://static.righto.com/images/sparkgap/sparking-w300.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='1983004541961238124' itemprop='postId'/> <a name='1983004541961238124'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://www.righto.com/2020/03/repairing-vintage-40-kilovolt-xenon.html'>Repairing a vintage 40-kilovolt xenon lamp igniter</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-1983004541961238124' itemprop='description articleBody'> <style> .hilite {cursor:zoom-in} </style> <p>What do xenon lamps and the invention of radio have in common? The box below is a 1960s German high voltage unit that <a href="https://www.youtube.com/curiousmarc">CuriousMarc</a> obtained as part of an auction. After some research, we determined that it is an Osram<span id="fnref:osram"><a class="ref" href="#fn:osram">1</a></span> igniter<span id="fnref:doc"><a class="ref" href="#fn:doc">2</a></span>, which generates a 40-kilovolt pulse<span id="fnref:translations"><a class="ref" href="#fn:translations">3</a></span> to ignite a <a href="https://en.wikipedia.org/wiki/Xenon_arc_lamp">xenon arc lamp</a>. The unit didn't work, so I opened it up, figured out its circuitry, and fixed it, so we could generate some sparks. The circuit turned out to be very similar to a Tesla coil, although the sparks are much smaller.</p> <p><a href="http://static.righto.com/images/sparkgap/sparking.jpg"><img alt="The igniter, producing a nice 40 kV spark." class="hilite" height="425" src="http://static.righto.com/images/sparkgap/sparking-w300.jpg" title="The igniter, producing a nice 40 kV spark." width="300" /></a><div class="cite">The igniter, producing a nice 40 kV spark.</div></p> <p>A <a href="https://en.wikipedia.org/wiki/Xenon_arc_lamp">xenon arc lamp</a> generates light by producing a high-temperature plasma of ionized xenon between two electrodes. It produces bright white light that has a spectrum similar to daylight and is useful for movie projectors, searchlights, and laboratory uses. Although the lamp is powered by a low-voltage, high-current DC power supply, a high-voltage spark is required to start the arc, and that is the role of this 40 kV igniter.</p> <p><a href="http://static.righto.com/images/sparkgap/HLR-OSRAM-3KW-B.jpg"><img alt="Closeup of a 4 kW Osram xenon arc lamp for a movie theater. Image by Hyperlight, CC BY-SA 2.5." class="hilite" height="300" src="http://static.righto.com/images/sparkgap/HLR-OSRAM-3KW-B-w400.jpg" title="Closeup of a 4 kW Osram xenon arc lamp for a movie theater. Image by Hyperlight, CC BY-SA 2.5." width="400" /></a><div class="cite">Closeup of a 4 kW Osram xenon arc lamp for a movie theater. Image by <a href="https://commons.wikimedia.org/wiki/File:HLR-OSRAM-3KW-B.jpg">Hyperlight</a>, <a href="https://creativecommons.org/licenses/by-sa/2.5/deed.en">CC BY-SA 2.5</a>.</div></p> <p>I searched for information on this ignitor. The only thing I found was a 1964 paper titled <a href="https://www.osapublishing.org/ao/abstract.cfm?uri=ao-3-9-1049">A Spectrofluorophosphorimeter</a> that described an experimental setup for measuring fluorescence and phosphorescence spectra. The experiment used a 450-W Osram xenon arc lamp, ignited by a Z2201 igniter, the same as this one. The research was done at SRI (Stanford Research Institute), just a few miles away, so there's a good chance that Marc obtained the exact unit that was used in this research. <!-- The transformer has a 1961 date stamp, so the unit was made in the right time period for this research paper. --></p> <p><a href="http://static.righto.com/images/sparkgap/unit.jpg"><img alt="The igniter's output is on a cone sticking out of the box. It also has five screw terminals for the 220V input, ballast, and ground. Photo courtesy of Marc Verdiell." class="hilite" height="343" src="http://static.righto.com/images/sparkgap/unit-w400.jpg" title="The igniter's output is on a cone sticking out of the box. It also has five screw terminals for the 220V input, ballast, and ground. Photo courtesy of Marc Verdiell." width="400" /></a><div class="cite">The igniter's output is on a cone sticking out of the box. It also has five screw terminals for the 220V input, ballast, and ground. Photo courtesy of Marc Verdiell.</div></p> <p>We opened up the unit and I examined the unusual components inside. A large 220V to 7kV transformer is at the right of the photo below. The output transformer is the reddish flat cylinder at the back left; this transformer's output is the connection pillar on the front of the unit. In front of this transformer is a dark yellowish disk, a 1000pF 20kV capacitor. The most unusual component is the ceramic cylinder in the front.</p> <p><a href="http://static.righto.com/images/sparkgap/opened-closeup.jpg"><img alt="Inside the igniter, showing the transformers, capacitors, and spark gap." class="hilite" height="423" src="http://static.righto.com/images/sparkgap/opened-closeup-w500.jpg" title="Inside the igniter, showing the transformers, capacitors, and spark gap." width="500" /></a><div class="cite">Inside the igniter, showing the transformers, capacitors, and spark gap.</div></p> <p>I traced out the circuitry of the unit<span id="fnref:schematic"><a class="ref" href="#fn:schematic">6</a></span>. It is a high-voltage circuit that is also sometimes used in Tesla coils (<a href="https://en.wikipedia.org/wiki/Tesla_coil#High_voltage_production">details</a>). The <a href="https://en.wikipedia.org/wiki/Tesla_coil#Operation_cycle">way it works</a> is that the high voltage transformer raises the 220 V input to 7 kV. This charges the high-voltage "tank" capacitor until it has enough voltage to break down the spark gap, causing a spark across it. When the spark gap fires it conducts at low resistance. This creates a high-frequency resonant circuit between the tank capacitor and the output transformer's primary. Energy is transferred to the secondary, at a much higher voltage, producing the 40 kV output. As energy shifts back and forth between the primary and secondary, it is dissipated, until the spark gap stops conducting and the process repeats, thousands of times a second.<span id="fnref:waveform"><a class="ref" href="#fn:waveform">5</a></span></p> <p><a href="http://static.righto.com/images/sparkgap/Tesla_coil_4.svg.png"><img alt="Schematic of a Tesla coil circuit. This is a less popular topology for a Tesla coil, but is the circuit used in the igniter. (The igniter has an output, not a torus, of course.) Schematic from Omegatron." class="hilite" height="289" src="http://static.righto.com/images/sparkgap/Tesla_coil_4.svg-w450.png" title="Schematic of a Tesla coil circuit. This is a less popular topology for a Tesla coil, but is the circuit used in the igniter. (The igniter has an output, not a torus, of course.) Schematic from Omegatron." width="450" /></a><div class="cite">Schematic of a <a href="https://en.wikipedia.org/wiki/Tesla_coil#High_voltage_production">Tesla coil</a> circuit. This is a less popular topology for a Tesla coil, but is the circuit used in the igniter. (The igniter has an output, not a torus, of course.) Schematic from <a href="https://commons.wikimedia.org/wiki/File:Tesla_coil_4.svg">Omegatron</a>.</div></p> <p>So where is the spark gap in this unit? It turns out to be the ceramic cylinder. I opened up the cylinder and found a stack of eight metal disks with (maybe) carbon electrodes in the center. The disks are separated by mica washers to leave 0.33 mm gaps between each pair. This forms a series of 7 tiny spark gaps.</p> <p><a href="http://static.righto.com/images/sparkgap/exploded.jpg"><img alt="The spark gap disassembled, showing the stack of contact disks and mica insulators inside the ceramic tube." class="hilite" height="205" src="http://static.righto.com/images/sparkgap/exploded-w650.jpg" title="The spark gap disassembled, showing the stack of contact disks and mica insulators inside the ceramic tube." width="650" /></a><div class="cite">The spark gap disassembled, showing the stack of contact disks and mica insulators inside the ceramic tube.</div></p> <p>This type of spark gap is known as a "quenched spark gap". <a href="https://en.wikipedia.org/wiki/Spark-gap_transmitter">Spark gap transmitters</a> were the first form of radio transmitter, used from 1887 to 1920. They used a spark to transmit Morse code via radio waves (<a href="http://www.telegraph-office.com/pages/quenched_gap.html">details</a>). The quenched spark gap was one type of spark gap used in these transmitters, as shown in the diagram below. By combining multiple small gaps, the quenched spark gap could cool off efficiently.</p> <p><a href="http://static.righto.com/images/sparkgap/stack.gif"><img alt="Diagram of a quenched gap, from Telegraph Office." class="hilite" height="204" src="http://static.righto.com/images/sparkgap/stack-w400.gif" title="Diagram of a quenched gap, from Telegraph Office." width="400" /></a><div class="cite">Diagram of a quenched gap, from <a href="http://www.telegraph-office.com/pages/quenched_gap.html">Telegraph Office</a>.</div></p> <h2>Repair</h2> <p>We cautiously hooked the igniter to 220V to test it, but nothing happened. I checked various parts of the circuit and everything seemed fine. In the photo below, notice the pink block at the left that looks like a Lego piece. This is a safety interlock that disconnects the 220 V input if the case is removed; the case has prongs that mesh with the interlock to close the circuit. Eventually, we figured out that the safety interlock had some loose screws that weren't making contact. This was tricky to find because when the case was open, the safety interlock was (of course) open.</p> <p><a href="http://static.righto.com/images/sparkgap/inside.jpg"><img alt="Inside the igniter. The output transformer (reddish round unit) is at the top with the yellowish tank capacitor above it. The ceramic spark gap is the cylinder in the middle. The pink Lego-link block is the safety interlock. The HV power transformer is at the bottom (label visible). T." class="hilite" height="561" src="http://static.righto.com/images/sparkgap/inside-w400.jpg" title="Inside the igniter. The output transformer (reddish round unit) is at the top with the yellowish tank capacitor above it. The ceramic spark gap is the cylinder in the middle. The pink Lego-link block is the safety interlock. The HV power transformer is at the bottom (label visible). T." width="400" /></a><div class="cite">Inside the igniter. The output transformer (reddish round unit) is at the top with the yellowish tank capacitor above it. The ceramic spark gap is the cylinder in the middle. The pink Lego-link block is the safety interlock. The HV power transformer is at the bottom (label visible). T.</div></p> <p>After tightening all the screws, the igniter worked. Since we didn't have a xenon arc lamp, we used the unit to generate sparks instead. Marc attached a strip of copper to the center output and a white wire to the ground, bending them to form a small gap. He pulsed the power switch to produce brief sparks, as seen in the video below. (Since the text on the unit indicates the unit should be powered for under 0.5 seconds, we kept the sparks brief to prevent overheating.) Although the repair was anticlimactic, at least we got some nice sparks.</p> <h2>Conclusion</h2> <p>Spark gaps generate radio waves across a wide spectrum;<span id="fnref2:waveform"><a class="ref" href="#fn:waveform">5</a></span> inventor <a href="https://en.wikipedia.org/wiki/David_Edward_Hughes">David Hughes</a> first noticed this interference in 1878. Marconi experimented with spark-gap transmitters in the 1890s, discovering how to transmit telegraph signals across short distances and then between continents. This work won Marconi the Nobel Prize for inventing radio. The CuriousMarc video below explains in more detail how the spark gap generator led to radio. Vacuum tubes made spark-gap transmitters obsolete by the 1920s, but these spark-gap circuits live on, igniting xenon arcs in modern headlights.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/9zG_DlxyugQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <p>I announce my latest blog posts on Twitter, so follow me <a href="https://twitter.com/kenshirriff">@kenshirriff</a> for future articles. I also have an <a href="http://www.righto.com/feeds/posts/default">RSS feed</a>.</p> <h2>Notes and references</h2> <div class="footnote"> <ol> <li id="fn:osram"> <p>You might know Osram as the maker of headlights<span id="fnref:headlights"><a class="ref" href="#fn:headlights">4</a></span> and other lights. The story starts with the Austrian chemist <a href="https://en.wikipedia.org/wiki/Carl_Auer_von_Welsbach">Carl Auer von Welsbach</a>, who discovered four elements as well as inventing the gas mantle (used in Coleman lamps) and the metal flint used in lighters. He registered Osram as a trademark in 1906; the name was a combination of osmium and wolfram (tungsten), two elements he used in incandescent lamp filaments. In 1919, the Osram company was formed in Germany. <a class="footnote-backref" href="#fnref:osram" title="Jump back to footnote 1 in the text">↩</a></p> </li> <li id="fn:doc"> <p><a href="http://web.mit.edu/jhawk/tmp/ENGR_BLTN12.pdf">The document Osram guidelines for control gear and igniters</a> discusses the properties of xenon arc lamps, how to power them, and the characteristics of igniters. <a class="footnote-backref" href="#fnref:doc" title="Jump back to footnote 2 in the text">↩</a></p> </li> <li id="fn:translations"> <p>The front of the unit is shown below. <a href="https://en.wikipedia.org/wiki/Siemens-Schuckert">Siemens-Schuckertweke AG</a> is a German engineering company that I think owned Osram at the time. Under that are the warnings "Vorsicht! Hochspannung" (Danger! High voltage) and a circle labeled "In diesen Zone keine Metallteile" (No metal parts in this zone). At the center of the circled zone is a pillar with a screw terminal; this is the connection for the 40 kV output. At the bottom are connections for 220V / 50 Hz, which can be applied for a maximum of 0.5 s, as well as "zum Vorschaltger盲t" (to the ballast).</p> <p><a href="http://static.righto.com/images/sparkgap/face.jpg"><img alt="Front view of the igniter. The black text is hard to read under the brown front." class="hilite" height="400" src="http://static.righto.com/images/sparkgap/face-w300.jpg" title="Front view of the igniter. The black text is hard to read under the brown front." width="300" /></a><div class="cite">Front view of the igniter. The black text is hard to read under the brown front.</div></p> <p>The label on the back of the unit (below) says ZX 501, H枚chstzul盲ssiger Lampenstrom 25 A (Maximum lamp current 25 A), Z眉ndkreis (Ignition circuit) 220V/50Hz, Z眉ndsp. ca. 40 kV (Ignition voltage approximately 40 kV), OSRAM - Best. - Nr. (Order number) Z2201. "</p> <p><a class="footnote-backref" href="#fnref:translations" title="Jump back to footnote 3 in the text">↩</a><a href="http://static.righto.com/images/sparkgap/back-label.jpg"><img alt="The label on the back of the unit. Photo courtesy of Marc Verdiell." class="hilite" height="253" src="http://static.righto.com/images/sparkgap/back-label-w350.jpg" title="The label on the back of the unit. Photo courtesy of Marc Verdiell." width="350" /></a><div class="cite">The label on the back of the unit. Photo courtesy of Marc Verdiell.</div></p> </li> <li id="fn:headlights"> <p>Xenon headlights are also known as HID (high-intensity discharge) headlights. These headlights produce most of their light from an arc through vaporized metal halides, such as scandium iodide. However, it takes seconds to minutes for the light to heat up enough to vaporize these halides. During this startup time, a xenon arc provides the headlight's illumination. In other words, the xenon arc is just to provide light temporarily until the metal halides kick in. HID headlights require an <a href="http://ww1.microchip.com/downloads/en/appnotes/01372a.pdf">igniter/ballast circuit</a> to provide the high voltage (25 kV) for ignition and the regulated voltage (e.g. .41A, 85V) to power the light. These automotive circuits use modern switching power supply techniques and are much smaller than our igniter. <a class="footnote-backref" href="#fnref:headlights" title="Jump back to footnote 4 in the text">↩</a></p> </li> <li id="fn:waveform"> <p>We measured the output from the igniter and found that it produces 2000-4000 very short spikes a second. The spikes decay very rapidly so they are about 1µs long, and are random noise in the tens of megahertz. This random noise has a very wide bandwidth showing that spark gap generators produce radio noise across a wide spectrum.</p> <p><a href="http://static.righto.com/images/sparkgap/waveform.jpg"><img alt="Oscilloscope trace pickingup electrical noise from the igniter over the air. Image from CuriousMarc's video." class="hilite" height="260" src="http://static.righto.com/images/sparkgap/waveform-w400.jpg" title="Oscilloscope trace pickingup electrical noise from the igniter over the air. Image from CuriousMarc's video." width="400" /></a><div class="cite">Oscilloscope trace pickingup electrical noise from the igniter over the air. Image from <a href="https://youtu.be/9zG_DlxyugQ?t=952">CuriousMarc's video</a>.</div></p> <p><!-- --> <a class="footnote-backref" href="#fnref:waveform" title="Jump back to footnote 5 in the text">↩</a><a class="footnote-backref" href="#fnref2:waveform" title="Jump back to footnote 5 in the text">↩</a></p> </li> <li id="fn:schematic"> <p>I traced out the circuitry of the unit and made the rough schematic below. The unlabeled rectangle is the ceramic spark gap cylinder. The circuit is essentially the same as the Tesla coil schematic earlier, except there are two capacitors and an external ballast resistor on the output side to limit current. (We did not use a ballast resistor, but shorted the two connections.)</p> <p><a href="http://static.righto.com/images/sparkgap/schematic.jpg"><img alt="Schematic of the spark generator." class="hilite" height="355" src="http://static.righto.com/images/sparkgap/schematic-w400.jpg" title="Schematic of the spark generator." width="400" /></a><div class="cite">Schematic of the spark generator.</div></p> <p><!-- --> <a class="footnote-backref" href="#fnref:schematic" title="Jump back to footnote 6 in the text">↩</a></p> </li> </ol> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://www.blogger.com/comment/fullpage/post/6264947694886887540/1983004541961238124' onclick=''> 6 comments: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/6264947694886887540/1983004541961238124' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://www.blogger.com/post-edit.g?blogID=6264947694886887540&postID=1983004541961238124&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=1983004541961238124&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=1983004541961238124&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=1983004541961238124&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=1983004541961238124&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=1983004541961238124&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href='http://www.righto.com/search/label/electronics' rel='tag'>electronics</a>, <a href='http://www.righto.com/search/label/reverse-engineering' rel='tag'>reverse-engineering</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='http://static.righto.com/images/titan/case-w500.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='6836264356813691992' itemprop='postId'/> <a name='6836264356813691992'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://www.righto.com/2020/03/inside-titan-missile-guidance-computer.html'>Inside a Titan missile guidance computer</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-6836264356813691992' itemprop='description articleBody'> <style> .hilite {cursor:zoom-in} </style> <p>I've been studying the guidance computer from a Titan II nuclear missile. This compact computer was used in the 1970s to guide a Titan II nuclear missile towards its target or send a Titan IIIC rocket into the proper orbit. The computer worked in conjunction with an Inertial Measurement Unit (IMU), a system of gyroscopes and accelerometers that tracked the rocket's position and velocity.<span id="fnref:guidance"><a class="ref" href="#fn:guidance">1</a></span></p> <p><a href="http://static.righto.com/images/titan/case.jpg"><img alt="The guidance computer, from Steve Jurvetson's collection. Multiple connectors on top link the computer to the IMU and the rest of the rocket. The cover panels are protected by anti-tamper stickers so I probably voided the warranty by opening it. (Click any photo for a larger image.)" class="hilite" height="365" src="http://static.righto.com/images/titan/case-w500.jpg" title="The guidance computer, from Steve Jurvetson's collection. Multiple connectors on top link the computer to the IMU and the rest of the rocket. The cover panels are protected by anti-tamper stickers so I probably voided the warranty by opening it. (Click any photo for a larger image.)" width="500" /></a><div class="cite">The guidance computer, from <a href="https://www.flickr.com/photos/jurvetson/albums/72157623704246792">Steve Jurvetson's collection</a>. Multiple connectors on top link the computer to the IMU and the rest of the rocket. The cover panels are protected by anti-tamper stickers so I probably voided the warranty by opening it. (Click any photo for a larger image.)</div></p> <p>This computer, called the Magic 352, is a 20"×16"×9" black box<span id="fnref:dimensions"><a class="ref" href="#fn:dimensions">2</a></span> weighing 80 pounds, surprisingly heavy for something used in a rocket.<span id="fnref:label"><a class="ref" href="#fn:label">4</a></span> Its sturdy aluminum case alone weighs 20 pounds. <!-- space tug --> Internally, the computer is divided into thirds. The front section holds the processor and the core memory storage. There is no microprocessor in this computer; the processor is built from hundreds of simple integrated circuits. The back section of the computer holds the interface boards, mostly analog circuitry to connect to the rest of the rocket.<span id="fnref:nitrogen"><a class="ref" href="#fn:nitrogen">5</a></span> Unexpectedly, the middle section is mostly empty space.<span id="fnref:cables"><a class="ref" href="#fn:cables">6</a></span> The computer was made by Delco, a division of General Motors<span id="fnref:acsparkplug"><a class="ref" href="#fn:acsparkplug">3</a></span> that built a whole line of "<a href="http://www.righto.com/2020/03/the-delco-magic-line-of-aerospace.html">Magic</a>" aerospace computers.</p> <h2>The digital side</h2> <p>The computer's front cover is held on by 18 screws. Removing them reveals the computer's processor boards and core memory. On the left are seven circuit boards with TTL digital logic. In the middle are two core memory modules, each holding 8192 words of 24 bits. Two memory electronics boards are next to the memory. At the right is the computer's switching power supply.</p> <p><a href="http://static.righto.com/images/titan/boards-front.jpg"><img alt="The front side of the computer, showing the circuit boards, core memory modules, and the power supply. The boards are identified with the code that is printed on each board." class="hilite" height="369" src="http://static.righto.com/images/titan/boards-front-w700.jpg" title="The front side of the computer, showing the circuit boards, core memory modules, and the power supply. The boards are identified with the code that is printed on each board." width="700" /></a><div class="cite">The front side of the computer, showing the circuit boards, core memory modules, and the power supply. The boards are identified with the code that is printed on each board.</div></p> <p>The circuit boards have alphanumeric codes on them; PR1 through PR6 are probably processor boards 1 through 6. It's unclear what "IOC" stands for; <a href="https://photos.app.goo.gl/CXCRmgkH1iJzbLb66">the IOC board</a> looks like the other digital logic boards, but also has a circuit that's probably the computer's clock. The "<a href="https://photos.app.goo.gl/8i9S6iqhAfTVPNVi7">ME</a>" and "<a href="https://photos.app.goo.gl/M1bA9pDShkFhhT4H9">CME</a>" boards appear to have high-current driver circuitry for the core memory modules, so "ME" could be "memory electronics".</p> <p>Information on the Magic 352 computer is hard to obtain<span id="fnref:info"><a class="ref" href="#fn:info">7</a></span> but it uses 24-bit words (plus a parity bit), and it uses 2's complement fixed point. It has 57 instructions (probably two per word) and can do an add/subtract in 6 microseconds. The processor has six index registers.</p> <p>The photo below shows one of the digital logic boards; the other digital boards are similar. Each board has integrated circuits on both sides, so the back looks about the same. (My photo album of all the boards is <a href="https://photos.app.goo.gl/rFRjrQwLU1MeJCdu8">here</a>.) Each side of the board has space for 5 rows of 13 chips, for up to 130 chips per board. The printed circuit board appears to have six layers; two wiring layers and a ground plane for the chips on each side. Connections between the two sides are done through the 99 connections at the top of the board rather than vias. The boards are covered with conformal coating to protect the circuitry; decades later, the coating still smells strongly of turpentine. The edges of the boards are metalized and slide tightly into card guides, providing a path for heat to escape since there is no fan. The digital boards have a 198-pin connector at the bottom that plugs into the backplane, while the interface boards (discussed later) have a smaller 128-pin connector.</p> <p><a href="http://static.righto.com/images/titan/pr1a.jpg"><img alt="Processor board PR1." class="hilite" height="417" src="http://static.righto.com/images/titan/pr1a-w600.jpg" title="Processor board PR1." width="600" /></a><div class="cite">Processor board PR1.</div></p> <p>The boards are filled with TTL chips, probably MSI (medium-scale integration) chips such as counters, adders, or shift registers. Note that this computer does not contain a microprocessor chip, but has a processor built from simple building blocks. (In the 1970s, minicomputers were commonly built from boards of TTL chips.) From the part numbers on the chips, they appear to be manufactured by Signetics, in a CC2100 series. Unfortunately, even after extensive searching I couldn't find any documentation on these part numbers. (Please let me know if you have information on them.)</p> <p><a href="http://static.righto.com/images/titan/cc-closeup.jpg"><img alt="Some of the chips used by the computer. The PCB traces are visible in between the chips. The 7802 date code indicates they were manufactured the second week of 1978." class="hilite" height="159" src="http://static.righto.com/images/titan/cc-closeup-w500.jpg" title="Some of the chips used by the computer. The PCB traces are visible in between the chips. The 7802 date code indicates they were manufactured the second week of 1978." width="500" /></a><div class="cite">Some of the chips used by the computer. The PCB traces are visible in between the chips. The 7802 date code indicates they were manufactured the second week of 1978.</div></p> <p>One interesting feature of the boards is they are keyed to ensure that a board can't be plugged into the wrong slot. The keying is implemented by splitting a hex nut in half. The circuit board and the backplane connector have matching halves, so the board can only be inserted into the right slot. There are six ways to split a hex nut corner-to-corner, and two hex nuts (one on the top and one on the bottom), making 36 possible keying combinations. The photo below shows part of the backplane with the boards removed so the connectors and half hex nuts are visible. Note that each connector has hex nuts at a different angle for the keying.</p> <p><a href="http://static.righto.com/images/titan/keying.jpg"><img alt="The half hex nuts fixed to the top and bottom of each connector are used to ensure each board is plugged into the right slot. Also note the cable of white and colored wires connecting the backplane to the external connectors on top of the computer. These slots are on the interface side of the computer." class="hilite" height="416" src="http://static.righto.com/images/titan/keying-w300.jpg" title="The half hex nuts fixed to the top and bottom of each connector are used to ensure each board is plugged into the right slot. Also note the cable of white and colored wires connecting the backplane to the external connectors on top of the computer. These slots are on the interface side of the computer." width="300" /></a><div class="cite">The half hex nuts fixed to the top and bottom of each connector are used to ensure each board is plugged into the right slot. Also note the cable of white and colored wires connecting the backplane to the external connectors on top of the computer. These slots are on the interface side of the computer.</div></p> <h2>Core memory<span id="fnref:memory"><a class="ref" href="#fn:memory">8</a></span></h2> <p>This computer uses magnetic core memory for storage (in contrast to the earlier Titan <a href="https://en.wikipedia.org/wiki/ASC-15">ASC-15</a> computer, which used a rotating magnetic drum). Core memory was the dominant form of computer storage from the 1950s until it was replaced by semiconductor memory chips in the 1970s. Core memory was built from thousands of tiny ferrite rings called cores, with one bit stored in each core. A core was magnetized either clockwise or counterclockwise to store a value. Cores were arranged in a grid called a core plane; energizing a specific row wire and column wire selected the particular core where the two wires crossed.</p> <p>The photo below shows a closeup of the tiny magnetic cores in the Titan computer. There are four wires through each core: the vertical and horizontal red wires form the grid to select a core. Two colorful horizontal wires pass through each core in the plane: the sense line (used for reading) and the inhibit line (used for writing). You can see these wires looping from row to row at the right.</p> <p><a href="http://static.righto.com/images/titan/cores.png"><img alt="Closeup of the cores in a core plane. The cores appear glossy because they are covered in conformal coating." class="hilite" height="397" src="http://static.righto.com/images/titan/cores-w450.png" title="Closeup of the cores in a core plane. The cores appear glossy because they are covered in conformal coating." width="450" /></a><div class="cite">Closeup of the cores in a core plane. The cores appear glossy because they are covered in conformal coating.</div></p> <p>In a core memory, multiple planes are stacked together, one plane for each bit in a word. In most computers, the core planes were welded or soldered together into a block, but the Titan computer's core memory was built with an unusual <a href="https://patents.google.com/patent/US3699546A">patented</a> technique: the cores and the circuitry were mounted on a long flexible printed circuit board that was folded accordion-style. This construction technique allows a core memory module to be opened like a book to access the cores and circuitry.</p> <p><a href="http://static.righto.com/images/titan/core-stack-unfolded.jpg"><img alt="The core module unfolds like a book. The circuitry and core planes are on a flexible printed circuit board that is folded accordion-style and wrapped around metal carriers." class="hilite" height="479" src="http://static.righto.com/images/titan/core-stack-unfolded-w600.jpg" title="The core module unfolds like a book. The circuitry and core planes are on a flexible printed circuit board that is folded accordion-style and wrapped around metal carriers." width="600" /></a><div class="cite">The core module unfolds like a book. The circuitry and core planes are on a flexible printed circuit board that is folded accordion-style and wrapped around metal carriers.</div></p> <p>If you view the core memory module as a book, each "page" is constructed from a metal plate with the flexible printed circuit board wrapped over both sides. There are 6 of these "pages", so there are 12 core memory planes similar to the one below. Careful counting shows there are 128 horizontal wires and 128 vertical wires through the core plane, so there are 16,384 cores below. The 128 vertical wires are visible at the top and bottom, running loosely from plane to plane. Note that these are the delicate wires through the cores, passing continuously and unprotected through the entire set of core planes. The 128 horizontal core wires are gathered into bundles to run from plane to plane; the left bundle proceeds downward, and the right bundle proceeds upward.</p> <p><a href="http://static.righto.com/images/titan/plane.jpg"><img alt="One plane in the core memory has 16,384 cores. It consists of eight smaller regions ("mats"); each mat has 32×64 cores." class="hilite" height="375" src="http://static.righto.com/images/titan/plane-w500.jpg" title="One plane in the core memory has 16,384 cores. It consists of eight smaller regions ("mats"); each mat has 32×64 cores." width="500" /></a><div class="cite">One plane in the core memory has 16,384 cores. It consists of eight smaller regions ("mats"); each mat has 32×64 cores.</div></p> <p>To the right of the cores (above) is the circuitry to handle that plane. This circuitry includes sense amplifiers to read the signals from the core plane, and inhibit drivers for writing data to the plane. These integrated circuits are mounted on the same flexible PCB as the core planes.</p> <!--  --> <p>The flexible printed circuit board is attached to standard rigid printed circuit boards at both ends; these boards form the outside of the module. The end boards also have connectors that plug into the backplane, providing the connection between the core modules and the computer. The photo below shows one of the end boards. Note that this board has just half the cores of a normal board.<span id="fnref:topology"><a class="ref" href="#fn:topology">9</a></span> The reason is that this board holds the parity bit, while the other 12 planes each hold two bits. Thus, the complete module holds words of 24 bits plus one parity bit, with 8192 words in the module. The computer has two core modules, so it holds a total of 16K words.<span id="fnref:ROM"><a class="ref" href="#fn:ROM">10</a></span></p> <p><a href="http://static.righto.com/images/titan/parity.jpg"><img alt="This board at the end of the core module has half of the regular core plane. Note the numerous connections to the left of the core; the 128 horizontal wires are connected to the circuit board here. The packages at the far left each hold 8 diodes." class="hilite" height="384" src="http://static.righto.com/images/titan/parity-w500.jpg" title="This board at the end of the core module has half of the regular core plane. Note the numerous connections to the left of the core; the 128 horizontal wires are connected to the circuit board here. The packages at the far left each hold 8 diodes." width="500" /></a><div class="cite">This board at the end of the core module has half of the regular core plane. Note the numerous connections to the left of the core; the 128 horizontal wires are connected to the circuit board here. The packages at the far left each hold 8 diodes.</div></p> <h2>The interface circuitry</h2> <p>Turning the computer around reveals the circuit boards behind the back panel. These interface boards are wired to the connectors on top of the computer. Through these interfaces, the computer receives velocity and attitude pulses from the inertial measurement unit (IMU). The computer sends analog control signals to various actuators, as well as discrete (binary) signals to other parts of the rocket for thrusters, staging, and other functions. <!-- See Guidance and Controls for an Interim Upper Stage --> On the left is the power supply. The power supply receives power from the rocket through the connector on top of the computer and the cable to the power supply.</p> <p><a href="http://static.righto.com/images/titan/boards-back.jpg"><img alt="Cards in the back of the computer provide interfaces between the computer and external components. Each card has a three-letter code on it, but the meanings are unknown. The cables between the backplane and the connectors on top of the computer are behind the indicated supports." class="hilite" height="425" src="http://static.righto.com/images/titan/boards-back-w700.jpg" title="Cards in the back of the computer provide interfaces between the computer and external components. Each card has a three-letter code on it, but the meanings are unknown. The cables between the backplane and the connectors on top of the computer are behind the indicated supports." width="700" /></a><div class="cite">Cards in the back of the computer provide interfaces between the computer and external components. Each card has a three-letter code on it, but the meanings are unknown. The cables between the backplane and the connectors on top of the computer are behind the indicated supports.</div></p> <p>In contrast to the digital boards, which all appear similar, the interface boards have a wide variety of circuits. The CTL, MUI, and ADL boards are covered in TTL chips, similar to the boards in the digital section. The rest of the interface boards, however, are crammed with analog components such as transistors, capacitors, resistors, diodes, and hybrid modules, along with a few TTL chips. The interface boards have the analog components on the front only (probably because there isn't enough clearance on the back) and usually a few TTL integrated circuits on the back. I traced out some of the circuitry on the "AGO" board below and found 18 current-controlled outputs connected to TTL interface chips in the middle of the board. This board probably provides binary "discrete" outputs.</p> <p><a href="http://static.righto.com/images/titan/AGO.jpg"><img alt="The AGO interface board; the "AGO" label is at the top left. Note the different keying on the half-nuts on either side of the connector. " class="hilite" height="339" src="http://static.righto.com/images/titan/AGO-w500.jpg" title="The AGO interface board; the "AGO" label is at the top left. Note the different keying on the half-nuts on either side of the connector. " width="500" /></a><div class="cite">The AGO interface board; the "AGO" label is at the top left. Note the different keying on the half-nuts on either side of the connector. </div></p> <p>The VMX board below has four mysterious 6-pin black hybrid modules along with numerous large capacitors. It's unclear what function this board has, or why it needs so many capacitors.</p> <p><a href="http://static.righto.com/images/titan/VMX.jpg"><img alt="The VMX interface board. Like the other boards, it is covered with a thick conformal coating. The connector at the bottom is much narrower than the connectors on the digital boards." class="hilite" height="353" src="http://static.righto.com/images/titan/VMX-w500.jpg" title="The VMX interface board. Like the other boards, it is covered with a thick conformal coating. The connector at the bottom is much narrower than the connectors on the digital boards." width="500" /></a><div class="cite">The VMX interface board. Like the other boards, it is covered with a thick conformal coating. The connector at the bottom is much narrower than the connectors on the digital boards.</div></p> <p>The <a href="https://photos.app.goo.gl/8Y2py6Yg9MBrPcoE6">CON</a> board uses hybrid modules including a large red "Angstrohm" module that has hand-lettered labeling on it.</p> <p><a href="http://static.righto.com/images/titan/angstrohm.jpg"><img alt="The "Angstrohm" module has 11 numbered pins, 3 "Z" pins, and a "BAE" pin." class="hilite" height="265" src="http://static.righto.com/images/titan/angstrohm-w250.jpg" title="The "Angstrohm" module has 11 numbered pins, 3 "Z" pins, and a "BAE" pin." width="250" /></a><div class="cite">The "Angstrohm" module has 11 numbered pins, 3 "Z" pins, and a "BAE" pin.</div></p> <h2>Power supply</h2> <p>The computer uses a switching power supply to efficiently convert the missile's power (probably 28 volts) to the voltages required by the computer. The power supply is surprisingly heavy, about 15 pounds. Much of the weight is probably metal needed to dissipate heat since there is no fan.</p> <p><a href="http://static.righto.com/images/titan/power-supply2.jpg"><img alt="The switching power supply used by the computer. The two cable connectors provide power to the digital and interface sides of the computer. The power supply receives electricity through the connector on the front." class="hilite" height="463" src="http://static.righto.com/images/titan/power-supply2-w300.jpg" title="The switching power supply used by the computer. The two cable connectors provide power to the digital and interface sides of the computer. The power supply receives electricity through the connector on the front." width="300" /></a><div class="cite">The switching power supply used by the computer. The two cable connectors provide power to the digital and interface sides of the computer. The power supply receives electricity through the connector on the front.</div></p> <p>Inside, the power supply is packed with inductors and transformers, power transistors, and circuit boards. A stack of filter capacitors in large metal cans is visible at the left in the photo below. The inductors and transformers don't look like the inductors in commercial power supplies, but are black blocks.</p> <p><a href="http://static.righto.com/images/titan/power-supply.jpg"><img alt="The switching power supply used by the computer." class="hilite" height="389" src="http://static.righto.com/images/titan/power-supply-w600.jpg" title="The switching power supply used by the computer." width="600" /></a><div class="cite">The switching power supply used by the computer.</div></p> <p>Several circuit boards control the power supply. They use metal-can integrated circuits, unlike the integrated circuits in commercial power supplies. The part numbers on these integrated circuits didn't turn up anything useful so they may be custom military parts. The boards are covered with a conformal coating to protect them against humidity and other threats. The conformal coating gives a shiny golden color to the integrated circuits.</p> <p><a href="http://static.righto.com/images/titan/power-supply-board.jpg"><img alt="Closeup of a board in the power supply." class="hilite" height="335" src="http://static.righto.com/images/titan/power-supply-board-w500.jpg" title="Closeup of a board in the power supply." width="500" /></a><div class="cite">Closeup of a board in the power supply.</div></p> <p>The power supply probably generates 5 volts for the TTL chips, along with a higher voltage to drive the core memory, and multiple voltages for the interface circuits.</p> <h2>History and background</h2> <p>In this section, I summarize the complex history of the Titan missile and rocket, and its various guidance computers. The Titan missile, deployed from 1959 to 1987 was the largest ICBM deployed by the United States and delivered a 9 megaton nuclear bomb. To get a sense of how large the Titan was, the currently-deployed Minuteman missile weighs a third as much and its warhead has 1/25 the yield.</p> <p><a href="http://static.righto.com/images/titan/titan2.jpg"><img alt="Test launch of a Titan II from a silo. U.S. Air Force photo." class="hilite" height="372" src="http://static.righto.com/images/titan/titan2-w300.jpg" title="Test launch of a Titan II from a silo. U.S. Air Force photo." width="300" /></a><div class="cite">Test launch of a Titan II from a silo. <a href="https://commons.wikimedia.org/wiki/File:Titan2_color_silo.jpg">U.S. Air Force photo</a>.</div></p> <p>For much of its life, the Titan II's guidance computer was the IBM <a href="https://en.wikipedia.org/wiki/ASC-15">ASC-15</a> (Advance System Controller), dating to 1962. <!-- https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19710024203.pdf --> This was a 27-bit serial, transistor-based computer using discrete components in welded encapsulated modules. For storage, it used a rotating magnetic drum that held 3,840 words. <!-- The ASC-15 was connected to an IMU build by AC Spark Plug. --> This computer was used on the Titan II and Titan III, as well as the early Saturn I flights.<span id="fnref:gemini"><a class="ref" href="#fn:gemini">11</a></span> <!-- p28 of Saturn I Guidance Titan https://www.researchgate.net/publication/329754955_Saturn_I_Guidance_and_Control_Systems --></p> <p><a href="http://static.righto.com/images/titan/asc-15.jpg"><img alt="The ASC-15 computer. It was emerald green in color. Photo from IBM Corporate Archives, via Saturn I Guidance and Control Systems." class="hilite" height="351" src="http://static.righto.com/images/titan/asc-15-w500.jpg" title="The ASC-15 computer. It was emerald green in color. Photo from IBM Corporate Archives, via Saturn I Guidance and Control Systems." width="500" /></a><div class="cite">The ASC-15 computer. It was <a href="https://youtu.be/7-I_g8BXd-8?t=287">emerald green</a> in color. Photo from IBM Corporate Archives, via <a href="https://www.researchgate.net/publication/329754955_Saturn_I_Guidance_and_Control_Systems">Saturn I Guidance and Control Systems</a>.</div></p> <p>Around 1964, the Titan II missile was modified for use as a satellite launcher called the Titan III. The most visible change was the addition of two solid rocket boosters for many Titan III launches. The first Titan III flights continued to use the ASC-15 guidance computer, but the project switched to the Univac 1824M <a href="https://arc.aiaa.org/doi/pdfplus/10.2514/6.1969-878">Digital Flight Control System</a>. This computer was more powerful and able to handle flight control as well as guidance and navigation. It first flew on Titan IIIC on Feb 9, 1969. However, the <a href="http://vipclubmn.org/CP24bit.html">Univac 1824</a> project ended in 1969 due to cost and schedule over-runs.</p> <p><a href="http://static.righto.com/images/titan/Titan-3C_MOL-Gemini-B-Test_3.jpg"><img alt="Titan IIIC launch with an unmanned Gemini capsule, as part of the MOL project (1966). Photo from NASA." class="hilite" height="365" src="http://static.righto.com/images/titan/Titan-3C_MOL-Gemini-B-Test_3-w300.jpg" title="Titan IIIC launch with an unmanned Gemini capsule, as part of the MOL project (1966). Photo from NASA." width="300" /></a><div class="cite">Titan IIIC launch with an unmanned Gemini capsule, as part of the MOL project (1966). Photo from <a href="https://commons.wikimedia.org/wiki/File:Titan-3C_MOL-Gemini-B-Test_3.jpg">NASA</a>.</div></p> <!-- 1971 contract for Titan IIIC https://books.google.com/books?id=2CX0AAAAMAAJ&q=%22carousel+iv%22+delco&dq=%22carousel+iv%22+delco&hl=en&ppis=_c&sa=X&ved=2ahUKEwjxgqP9ueHnAhXoFjQIHThOB7U4ChDoATAFegQIARAC --> <!-- Titan 3C starting with vehicle 26 will use Carousel VB. https://archive.org/details/DTIC_ADA040475/page/n1/mode/2up Digital Flight Control System Development started April 1966. First flight Feb 9, 1969: Titan IIIC Digital Flight Controls DFCS Univac 1824M http://vipclubmn.org/CP24bit.html 1964-1969 U.S. Space-launch Vehicle Technology: Viking to Space Shuttle: Upgrade from Univac 1824 to Magic 352 in 1970 http://www.astronautix.com/t/titaniiic.html December 13, 1973: first flight of Delco guidance system --> <!-- TTL used in Phoenix missile 1963 https://www.computerhistory.org/siliconengine/standard-logic-ic-families-introduced/ Scout Launch Vehicle says TTL for Magic 301 (1967), 311 (1967, Carousel IV), 321, 351 (MSI, Carousel IV, 1970) --> <p>Meanwhile, the AC Spark Plug division of General Motors developed the Magic family of computers for airborne guidance starting in 1962; I wrote a <a href="http://www.righto.com/2020/03/the-delco-magic-line-of-aerospace.html">detailed article on the Magic computers</a>. Delco used some of these computers in an inertial measurement unit (IMU) guidance system called the <a href="https://en.wikipedia.org/wiki/Delco_Carousel">Delco Carousel</a>.<span id="fnref:carousel"><a class="ref" href="#fn:carousel">12</a></span> The <a href="https://books.google.com/books?id=UtgDAAAAMBAJ&ppis=_c&lpg=PA108&pg=PA108#v=onepage&q&f=false">Carousel IV</a> was a popular navigation system, used on commercial planes including the 747, 707, and DC-8. The Carousel IV used the Magic 311 computer (1967) and then the Magic 351 computer (1970).</p> <p>The Carousel IV navigation system (with the Magic 351 computer) was turned into a military navigation system called the Carousel V, using the Magic 352 missile guidance computer (MGC). (This is the computer I examined in this blog post.) For space use, this system became the Universal Space Guidance System (USGS). The Titan IIIC rocket switched from the Univac computer to the USGS, first flying with it on December 13, 1973 (<a href="https://archive.org/details/DTIC_ADA040475">details</a>). After its use on the Titan III, the USGS system was retrofitted onto the Titan II missile, replacing the obsolete ASC-15 (<a href="https://books.google.com/books?id=0ZjeIfgG2AoC&ppis=_c&lpg=PA296&ots=gpCZKa8Zl5&dq=USGS%20Titan%20%22hawk%22&pg=PA65#v=onepage&q&f=false">details</a>) in a project called RIVET HAWK (1975-1976).</p> <p>To summarize, the Titan program used several different computers as techology advanced, ending up with the computer I examined in the 1970s.</p> <!-- Here's a [photo](https://airandspace.si.edu/collection-objects/computer-missile-guidance-titan) of a computer like yours at the Smithsonian, and [another](http://afspacemuseum.org/displays/TitanGuidance/) at the Air Force Space & Missile Museum. As for Gemini, your computer was much later. Gemini removed the Titan II inertial guidance and replaced it with a General Electric Mod IIIG radio guidance system, for guidance from the ground ([details](https://history.nasa.gov/SP-4002.pdf)). In the capsule, the [Gemini Guidance Computer](https://en.wikipedia.org/wiki/Gemini_Guidance_Computer) (OBC) was built by IBM. The Saturn LVDC had a CPU very similar to the Gemini computer. Unlike Apollo, Gemini's IMU had four axes and didn't need to worry about gimbal lock. --> <h2>Conclusion</h2> <p>Aerospace computers are mostly ignored in computer histories, even though they used a lot of innovative technologies. This Titan missile, for instance, computer used flexible PCBs in its core memories. It also had surface-mounted integrated circuits, years before they were common in commercial electronics. Building computers out of TTL chips became a technological dead end, however, as the capabilities of CMOS integrated circuits increased exponentially, following Moore's law.</p> <p>You can see photos of the full set of boards <a href="https://photos.app.goo.gl/rFRjrQwLU1MeJCdu8">here</a>; the interface boards are worth examining due to their varied circuitry. I announce my latest blog posts on Twitter, so follow me <a href="https://twitter.com/kenshirriff">@kenshirriff</a> for future articles. I also have an <a href="http://www.righto.com/feeds/posts/default">RSS feed</a>. Thanks to <a href="https://www.flickr.com/photos/jurvetson/albums/72157623704246792">Steve Jurvetson</a>. for supplying the computer.</p> <h2>Notes and references</h2> <div class="footnote"> <ol> <li id="fn:guidance"> <p>Guidance systems use a variety of algorithms, with earlier low-power computers using simple guidance algorithms, while later computers used more complex algorithms that provided increased accuracy and flexibility. The Titan II used "delta" guidance, a simple guidance algorithm for low-power computers. In this guidance system, the algorithm attempts to keep the missile on a pre-computed path, using a third-order polynomial to steer back to the correct path.</p> <p>The Titan IIIC required complex guidance software since the flight went through multiple stages. A typical Titan IIIC mission put a satellite into a geosynchronous orbit at an altitude of 19,323 nautical miles. To do this, the rocket launched and ascended to a parking orbit between 80 and 235 nautical miles, using Stage 0 (the boosters), Stage 1, and Stage 2. The rocket then used Stage 3 to move to an elliptical transfer orbit with an apogee of 19,323 nautical miles. Another rocket burn put the vehicle into a circular orbit at this altitude. Finally, the payload separated from the rocket, putting the satellite into geosynchronous orbit. The point is that the guidance computer needed to perform many different guidance tasks, as well as controlling the various rocket stages.</p> <p>The overall Titan IIIC guidance algorithm is called "explicit" guidance, where an explicit solution is computed during flight to reach the desired end result. (I haven't been able to determine if the Titan II switched to this guidance algorithm when the computer was upgraded.)</p> <p>For an overview of guidance algorithms, see <a href="https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19720018867.pdf">this document</a> (p225) as well as <a href="https://apps.dtic.mil/dtic/tr/fulltext/u2/a040475.pdf">Titan IIIC Guidance</a>. For a more humorous explanation, see "<a href="https://www.youtube.com/watch?v=bZe5J8SVCYQ">The Missile Knows Where It Is At All Times</a>." <a class="footnote-backref" href="#fnref:guidance" title="Jump back to footnote 1 in the text">↩</a></p> </li> <li id="fn:dimensions"> <p>For more information on the physical characteristics of the Magic 352 computer, see <a href="https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19740025187.pdf">Space Tug Equipment Data Bank</a> page 58. <a class="footnote-backref" href="#fnref:dimensions" title="Jump back to footnote 2 in the text">↩</a></p> </li> <li id="fn:acsparkplug"> <p>It's difficult to sort out the permutations of Delco, AC Spark Plug, AC Electronics, AC Delco, and so forth. AC Spark Plug started in 1908 and became a division of General Motors in 1927. It was named after Albert Champion who also started Champion spark plugs. AC Spark Plug's Milwaukee manufacturing facility became AC Electronics in 1965, with a focus on inertial navigation (<a href="http://web.mit.edu/digitalapollo/Documents/Chapter5/acelectronics.pdf">details</a>). Meanwhile, Dayton Engineering Laboratories (Delco) was founded in 1909, and acquired by General Motors in 1918. GM's defense systems laboratory was started in 1962 and merged into Delco Systems Operations in Goleta (where this Titan guidance computer was built). In 1970, the Delco Radio Division and AC Electronics Division of General Motors Corporation were consolidated into a new Delco Electronics Division. In 1985, GM purchased Hughes Aircraft and merged it with Delco to form Hughes Electronics, which was sold to Raytheon in 1997. <a class="footnote-backref" href="#fnref:acsparkplug" title="Jump back to footnote 3 in the text">↩</a></p> </li> <li id="fn:label"> <p>The photo below shows the label on the computer, serial number 69. The "CP-1331/DJW" designation is a military <a href="http://www.designation-systems.net/usmilav/electronics.html#_JETDS_Components">component designator</a>. The "CP" indicates a computer unit and 1331 is the model number. The "<a href="http://www.designation-systems.net/usmilav/jetds/an-d.html#_DJW">DJW</a>" is an "AN System" military designation for a guidance system, specifically "Missile/Drone Electromechanical Flight Control Equipment".</p> <p><a href="http://static.righto.com/images/titan/label.jpg"><img alt="The label from the Titan missile guidance computer." class="hilite" height="200" src="http://static.righto.com/images/titan/label-w300.jpg" title="The label from the Titan missile guidance computer." width="300" /></a><div class="cite">The label from the Titan missile guidance computer.</div></p> <p>The computer also has a repair label showing it was last repaired on March 14, 1986.</p> <p><a href="http://static.righto.com/images/titan/repair.jpg"><img alt="The repair label on the computer." class="hilite" height="131" src="http://static.righto.com/images/titan/repair-w250.jpg" title="The repair label on the computer." width="250" /></a><div class="cite">The repair label on the computer.</div></p> <p>Each removable panel was protected with tamper-proof seals:</p> <p><a href="http://static.righto.com/images/titan/seal.jpg"><img alt="The sticker says "DO NOT BREAK SEAL". I broke the seals." class="hilite" height="106" src="http://static.righto.com/images/titan/seal-w150.jpg" title="The sticker says "DO NOT BREAK SEAL". I broke the seals." width="150" /></a><div class="cite">The sticker says "DO NOT BREAK SEAL". I broke the seals.</div></p> <p>The computer also had an attached service tag. The penalty for removing the tag is up to a year in prison, so it's worse than a mattress tag.</p> <p><a href="http://static.righto.com/images/titan/tag.jpg"><img alt="Serviceable Tag—Materiel." class="hilite" height="212" src="http://static.righto.com/images/titan/tag-w400.jpg" title="Serviceable Tag—Materiel." width="400" /></a><div class="cite">Serviceable Tag—Materiel.</div></p> <p><!-- --> <a class="footnote-backref" href="#fnref:label" title="Jump back to footnote 4 in the text">↩</a></p> </li> <li id="fn:nitrogen"> <p>At the back left of the computer is a fill valve, used to pressurize the computer with nitrogen to 5 PSI above ambient. The valve appears to be a <a href="https://en.wikipedia.org/wiki/Schrader_valve">Schrader valve</a>, the same as on an automobile tire. Before opening the computer, I vented the nitrogen and found that the computer was still pressurized decades later. <a class="footnote-backref" href="#fnref:nitrogen" title="Jump back to footnote 5 in the text">↩</a></p> </li> <li id="fn:cables"> <p>The underside of the computer has an access panel for the cables in the central section. The photo below shows the view looking up through this access panel, showing the connectors on top of the computer, as well as the cables attached to them. This part of the computer is almost entirely empty space. The backplane for the interface side of the computer is visible in the bottom of the photo; the boards plug into the other side.</p> <p><a href="http://static.righto.com/images/titan/cables.jpg"><img alt="View into the central part of the computer showing the cabling." class="hilite" height="291" src="http://static.righto.com/images/titan/cables-w500.jpg" title="View into the central part of the computer showing the cabling." width="500" /></a><div class="cite">View into the central part of the computer showing the cabling.</div></p> <p>Most of the connectors on top of the computer are 61-pin circular MIL-Spec connectors. Note the keying pins sticking out of the circular shell below. Each connector has different keying to prevent attaching a cable to the wrong connector. The power input uses a 31-pin connector with larger pins that support higher current.</p> <p><a href="http://static.righto.com/images/titan/connector.jpg"><img alt="One of the connectors on the computer, labeled "J5"." class="hilite" height="173" src="http://static.righto.com/images/titan/connector-w200.jpg" title="One of the connectors on the computer, labeled "J5"." width="200" /></a><div class="cite">One of the connectors on the computer, labeled "J5".</div></p> <p>Most of the connectors currently have yellow plastic caps, while two have metal screw caps. I think that the metal caps are for test connectors that would remain covered in flight, while the plastic caps are temporary covers for connectors that would be cabled up in flight. The test connectors are wired to the digital side of the computer. <a class="footnote-backref" href="#fnref:cables" title="Jump back to footnote 6 in the text">↩</a></p> </li> <li id="fn:info"> <p>I couldn't find many details on the Magic 352 computer, but there is some information in <a href="https://www.sciencedirect.com/science/article/pii/S147466701767486X">Guidance and controls for an Interim Upper Stage (IUS)</a> page 339, and <a href="https://apps.dtic.mil/dtic/tr/fulltext/u2/a040475.pdf">Titan IIIC Guidance</a> page 15. <a class="footnote-backref" href="#fnref:info" title="Jump back to footnote 7 in the text">↩</a></p> </li> <li id="fn:memory"> <p>I'm a fan of core memory and have written about the core memory in the <a href="http://www.righto.com/2020/03/the-core-memory-inside-saturn-v-rockets.html">Saturn V LVDC</a>, the <a href="http://www.righto.com/2019/01/inside-apollo-guidance-computers-core.html">Apollo Guidance Computer</a>, the <a href="http://www.righto.com/2017/12/repairing-1960s-mainframe-fixing-ibm.html">IBM 1401</a>, and the <a href="http://www.righto.com/2019/04/a-look-at-ibm-s360-core-memory-in-1960s.html">IBM System/360</a>, if you want to read more about core memory. <a class="footnote-backref" href="#fnref:memory" title="Jump back to footnote 8 in the text">↩</a></p> </li> <li id="fn:topology"> <p>The wiring topology of the core memory module is worth noting. Because the parity end board has half of a regular core plane, it has 64 Y wires instead of 128. These 64 wires pass through the cores and then do a U-turn, returning to the next plane as the other half of the 128 wires. The 128 X wires, on the other hand, pass through the cores and then are terminated on the board. The board at the other end terminates the 128 Y wires (as two logical groups of 64) and the other end of the 128 X wires. Both boards have numerous diode packages for these wires. <a class="footnote-backref" href="#fnref:topology" title="Jump back to footnote 9 in the text">↩</a></p> </li> <li id="fn:ROM"> <p>I calculated that the computer's two core memory modules hold a total of 16K words of 24 bits plus parity. This matches the Magic 352 memory size specified in <a href="https://www.sciencedirect.com/science/article/pii/S147466701767486X">this article</a>. However, another <a href="https://apps.dtic.mil/dtic/tr/fulltext/u2/a040475.pdf">document</a> says the Titan IIIC computer has 16K of memory with 2K erasable (it's unclear if these numbers are bytes or words). There's a <a href="https://patents.google.com/patent/US3564517A">patent</a> related to the Titan computer describing a core memory that combines DRO (destructive read out, i.e. RAM) and NDRO (non-destructive read out, i.e. ROM). The ROM is implemented by omitting cores to store 0 bits. I believe the ROM was an optional feature, so you could get 14K of ROM and 2K of RAM, for instance. <a class="footnote-backref" href="#fnref:ROM" title="Jump back to footnote 10 in the text">↩</a></p> </li> <li id="fn:gemini"> <p>The Gemini space flights (1964-1966) used a Titan II <a href="https://en.wikipedia.org/wiki/Titan_II_GLV">GLV</a> missile, but the guidance system was entirely different. Gemini removed the Titan II inertial guidance and replaced it with a General Electric Mod IIIG radio guidance system, for guidance from the ground (<a href="https://history.nasa.gov/SP-4002.pdf">details</a>). The Gemini capsule contained the <a href="https://en.wikipedia.org/wiki/Gemini_Guidance_Computer">Gemini Guidance Computer</a> (OBC), built by IBM. <a class="footnote-backref" href="#fnref:gemini" title="Jump back to footnote 11 in the text">↩</a></p> </li> <li id="fn:carousel"> <p>The Carousel IMU got its name because the inertial platform rotated at 1 RPM (like a carousel) to reduce drift errors (<a href="https://arc.aiaa.org/doi/abs/10.2514/3.62124?journalCode=jsr">details</a>). <a href="https://airandspace.si.edu/collection-objects/carousel-navigation-unit-commercial-airline">Here</a> is a photo of a commercial Delco Carousel. The Titan computer was connected to an IMU that was probably similar inside, but packaged in a black box that resembled the computer but more cubical. <a class="footnote-backref" href="#fnref:carousel" title="Jump back to footnote 12 in the text">↩</a></p> </li> </ol> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://www.blogger.com/comment/fullpage/post/6264947694886887540/6836264356813691992' onclick=''> 21 comments: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/6264947694886887540/6836264356813691992' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://www.blogger.com/post-edit.g?blogID=6264947694886887540&postID=6836264356813691992&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=6836264356813691992&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=6836264356813691992&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=6836264356813691992&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=6836264356813691992&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=6836264356813691992&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href='http://www.righto.com/search/label/reverse-engineering' rel='tag'>reverse-engineering</a>, <a href='http://www.righto.com/search/label/space' rel='tag'>space</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='http://static.righto.com/images/magic/magic-2-w500.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='5982044501007304418' itemprop='postId'/> <a name='5982044501007304418'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://www.righto.com/2020/03/the-delco-magic-line-of-aerospace.html'>The Delco Magic line of aerospace computers</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5982044501007304418' itemprop='description articleBody'> <p>This post is a summary of the Magic line of computers, produced by Delco / General Motors from 1962 to the 1980s. These computers were developed for navigation, guidance, and control of rockets, missiles, and aircraft. I couldn't find a good summary of all the Magic computers, so I've collected information from various sources here. This article probably isn't of interest to most people as it's more of a footnote that grew out of control but I'm putting it here for reference.</p> <h2>MAGIC I</h2> <p><a href="http://bitsavers.org/pdf/ac_delco/magic/3249-LA-166_MAGIC_I_Logic_Apr63.pdf">MAGIC I</a> (1961-1963) was designed for ballistic missile guidance and was the "first complete airborne computer to have its logic functions mechanized exclusively with integrated circuits". It used 2,098 <a href="https://www.computerhistory.org/siliconengine/aerospace-systems-are-first-the-applications-for-ics-in-computers/">Fairchild Micrologic</a> integrated circuits, the first commercial IC family. These integrated circuits were very simple, such as a three-input NOR gate, a flip flop, or a half adder. MAGIC I was a compact computer weighing about 35 pounds with a volume of .64 cubic feet. It used 90 watts of power. It was a serial computer, operating on one bit at a time, which made it slow but reduced the hardware requirements. It used 24-bit words, as they determined that 24 bits provided sufficient accuracy. It had 4K words of core memory storage. Instructions were 12 bits, with two instructions per word. An addition operation took 70µs.</p> <p><a href="http://static.righto.com/images/magic/magic-2.jpg"><img alt="Diagram of MAGIC I computer. From MAGIC: An advanced computer for spaceborne guidance systems." class="hilite" height="312" src="http://static.righto.com/images/magic/magic-2-w500.jpg" title="Diagram of MAGIC I computer. From MAGIC: An advanced computer for spaceborne guidance systems." width="500" /></a><div class="cite">Diagram of MAGIC I computer. From <a href="MAGIC.pdf">MAGIC: An advanced computer for spaceborne guidance systems</a>.</div></p> <h2>MAGIC II</h2> <p><a href="http://bitsavers.org/pdf/ac_delco/magic/Organization_Of_MAGIC_II_Nov63.pdf">MAGIC II</a> (1965) was a serial 24-bit computer <!-- built for ASN-47 LAINS (Low-Altitude Inertial Navigation System) --> used in the P-3A and F-8 aircraft. It weighed 35 pounds, had a volume of 0.5 cubic feet, and used 90 watts. Storage was 4K words of ROM and 256 words of magnetic core. It was constructed from about 1300 simple integrated circuits: buffers, counter adapters, double gates, half adders, and half shift. It took 38µs to add. Its simple instruction set (below) had 22 instructions. Like the MAGIC I, instructions were 12 bits, with two instructions per word.</p> <p><a href="http://static.righto.com/images/magic/magic-2-instructions.jpg"><img alt="Instruction set of the MAGIC II computer. From "Organization of MAGIC II"." class="hilite" height="473" src="http://static.righto.com/images/magic/magic-2-instructions-w450.jpg" title="Instruction set of the MAGIC II computer. From "Organization of MAGIC II"." width="450" /></a><div class="cite">Instruction set of the MAGIC II computer. From "Organization of MAGIC II".</div></p> <h2>Magic III</h2> <p>Magic III (1963-) was a family ranging from simple serial computers to high-performance parallel computers. (The Magic name appears to have lost the all-caps starting with Magic III.) <!-- details https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19690025249.pdf --> These computers covered a wide variety of architectures, word sizes, and instruction sets. They ranged from slow serial computers that processed one bit at a time to parallel computers that processed a word at a time (as most computers do, not to be confused with parallel processing).</p> <p>Magic 301 (1963, serial, 16-bit), It was used in the KT-70 missile guidance system in the P-3C, A-7, and F-105 aircraft, as well as the L-1011 guidance system and the <a href="https://en.wikipedia.org/wiki/AGM-69_SRAM">SRAM</a> nuclear short-range attack missile. It weighed 5.2 pounds, was 0.1 cubic feet, and used 39 watts. Addition took 24µs. The computer was very compact: 4.9"×3.2"×8.8". It had 1792 8-bit words, expandable to 2048 words. <!-- scout --> Instructions were 8 bits while data words were 16 bits. <!-- KT-70 https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19720018867.pdf --></p> <p><a href="https://archive.org/details/bitsavers_acdelcomagputerFamilyFeb67_2429947/page/n7/mode/2up">Magic 311</a> (1967, serial, 12-bit instructions, 24-bit data with two parity bits): It had core memory holding 6144 words of 12 bits plus parity. (It could be manufactured with ROM memory by omitting cores in the core memory to represent 0 bits.) Its instruction set had 14 instructions and it took 19.5 us to perform an add. It was used in the Delco <a href="https://books.google.com/books?id=UtgDAAAAMBAJ&ppis=_c&lpg=PA108&pg=PA108#v=onepage&q&f=false">Carousel IV</a> inertial measurement unit (IMU) used on the 707 and 747 aircraft. The computer was 0.44 cubic feet, weighed 22 pounds and used 110 watts. Its addition time was 19.5µs.</p> <p>Magic 321 (serial, 15-bit instructions, 31-bit data plus parity). It had 4K blocks of core up to 32K and ran with a 3.072 MHz clock. It had 22 instructions in its instruction set and weighed 23 pounds.</p> <p>Magic 331 (parallel, 31-bit plus parity) used 15-bit instruction. It had a 1 MHz clock and up to 32K memory. It had 23 instructions in its instruction set and weighed 23 pounds. 670 of these computers were built.</p> <p>The Magic 341 (1971) was a 16-bit computer, built from MOS integrated circuits. It was considered for the Space Shuttle, which ended up using IBM's AP-101 computer instead. It had 2K to 64K words of magnetic core or MOS memory. It was used in the HH-60 helicopter. It had weighed 10 pounds a volume of .12 cubic feet (4"×7"×15") and took 5µs for an addition. It had 16 instructions in its instruction set.</p> <p>The Magic 351 (1970) was a 19-bit computer using MSI TTL, with 24 bits as an option. It weighed 22 pounds, was 0.42 cubic feet, and used 120 watts. It was used in the C-5B cargo plane. It had 61 instructions in its instruction set.</p> <p>The Magic 352 (early 1970s) had 24-bit words (plus a parity bit), with a 16 kiloword core memory. It had 57 instructions and did an add/subtract in 6 microseconds (<a href="https://www.sciencedirect.com/science/article/pii/S147466701767486X">details</a>). It had six index registers. The Carousel IV and Magic 351 computer were turned into a military navigation system called the Carousel V, using the Magic 352 missile guidance computer (MGC) (the computer in this blog post). For space use, this system was called the Universal Space Guidance System (USGS), and the Titan IIIC rocket switched from Univac to the USGS, first flying on December 13, 1973 (<a href="https://archive.org/details/DTIC_ADA040475">details</a>). After its use on the Titan III, the USGS system was retrofitted onto Titan II missile, replacing the ASC-15 (<a href="https://books.google.com/books?id=0ZjeIfgG2AoC&ppis=_c&lpg=PA296&ots=gpCZKa8Zl5&dq=USGS%20Titan%20%22hawk%22&pg=PA65#v=onepage&q&f=false">details</a>), in a project was called RIVET HAWK (1975-1976).</p> <p><a href="http://static.righto.com/images/magic/magic-352.jpg"><img alt="Magic 352, from Steve Jurvetson's collection." class="hilite" height="292" src="http://static.righto.com/images/magic/magic-352-w400.jpg" title="Magic 352, from Steve Jurvetson's collection." width="400" /></a><div class="cite">Magic 352, from <a href="https://www.flickr.com/photos/jurvetson/albums/72157623704246792">Steve Jurvetson's collection</a>.</div></p> <p>The Magic 362 was used in Navy ATIGS and the F-16 fire control computer (FCC). It had 32K×16 bit semiconductor memory (24K ROM, 8k RAM). The Magic 362 and later computers supported the 16-bit <a href="https://en.wikipedia.org/wiki/MIL-STD-1750A">MIL-STD-1750A</a> instruction set; to reduce costs and complexity, the military standardized on this instruction set from 1980 to 1996. This instruction set (described <a href="http://www.xgc.com/pdf/mil-std-1750a-1.7.pdf">here</a>) is fairly extensive, with many addressing modes and floating-point support.</p> <p>Magic 372 (1982) performed 666 KIPS (thousand instructions per second). It was implemented from Am2901 bit slices along with SSI and MSI chips. It was used in <a href="https://aviation.stackexchange.com/a/81652">F-16 C/D</a> and LANTIRN.</p> <h2>Magic IV</h2> <p>The Magic IV series was introduced around 1974, switching to an all-LSI design. It used 32K×16 bit semiconductor memory and took a 28VDC power supply It was used in the KC-135 tanker.</p> <h2>Magic V</h2> <p>The Magic V series was introduced around 1982, using a VLSI design that put the computer on 12 chips on a single board. The M572 was an extension of the M372. It had a 16-bit design and 192K of RAM, using under 5 watts. It was used on the <a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=220499">C-17A cargo airplane</a> for the mission computer and displays.</p> <p><a href="http://static.righto.com/images/magic/magic-v.jpg"><img alt="The Delco Magic V "computer-on-a-card" used VLSI chips. Photo from Delco ad, July 1986." class="hilite" height="206" src="http://static.righto.com/images/magic/magic-v-w250.jpg" title="The Delco Magic V "computer-on-a-card" used VLSI chips. Photo from Delco ad, July 1986." width="250" /></a><div class="cite">The Delco Magic V "computer-on-a-card" used VLSI chips. Photo from <a href="https://books.google.com/books?id=D949AQAAIAAJ&pg=PA82">Delco ad</a>, July 1986.</div></p> <h2>Notes</h2> <p>Some references on the Magic family are <a href="https://archive.org/details/bitsavers_acdelcomagputerFamilyFeb67_2429947/mode/2up">here</a>, <a href="https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19720018867.pdf">here</a>, <a href="http://www.aconit.org/histoire/iga_boucher/pdf/Vol_A_0-300.pdf">here</a>, <a href="http://bitsavers.org/pdf/ac_delco/magic/">here</a>, <a href="https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19740025187.pdf">here</a>, and <a href="http://bitsavers.trailing-edge.com/pdf/datamation/19700715.pdf">here</a>.</p> <p>It's difficult to sort out the permutations of Delco, AC Spark Plug, AC Electronics, AC Delco, and so forth. AC Spark Plug started in 1908 and became a division of General Motors in 1927. It was named after Albert Champion who also started Champion spark plugs. AC Spark Plug's Milwaukee manufacturing facility became AC Electronics in 1965, with a focus on inertial navigation (<a href="http://web.mit.edu/digitalapollo/Documents/Chapter5/acelectronics.pdf">details</a>). Meanwhile, Dayton Engineering Laboratories (Delco) was founded in 1909, and acquired by General Motors in 1918. GM's defense systems laboratory was started in 1962 and merged into Delco Systems Operations in Goleta (where this Titan guidance computer was built). In 1970, the Delco Radio Division and AC Electronics Division of General Motors Corporation were consolidated into a new Delco Electronics Division. In 1985, GM purchased Hughes Aircraft and merged it with Delco to form Hughes Electronics, which was sold to Raytheon in 1997.</p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://www.blogger.com/comment/fullpage/post/6264947694886887540/5982044501007304418' onclick=''> 10 comments: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/6264947694886887540/5982044501007304418' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://www.blogger.com/post-edit.g?blogID=6264947694886887540&postID=5982044501007304418&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=5982044501007304418&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=5982044501007304418&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=5982044501007304418&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=5982044501007304418&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=5982044501007304418&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href='http://www.righto.com/search/label/aerospace' rel='tag'>aerospace</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='http://static.righto.com/images/soyuz-chip/die-w500.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='2600121294301165851' itemprop='postId'/> <a name='2600121294301165851'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='http://www.righto.com/2020/03/looking-inside-vintage-soviet-ttl-logic.html'>Looking inside a vintage Soviet TTL logic integrated circuit</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-2600121294301165851' itemprop='description articleBody'> <p>This blog post examines a 1980s chip used in a Soyuz space clock. The microscope photo below shows the tiny silicon die inside the package, with a nice, geometric layout. The silicon appears pinkish or purplish in this photo, while the metal wiring layer on top is white. Around the edge of the chip, the bond wires (black) connect pads on the chip to the chip's pins. The tiny structures on the chip are resistors and transistors.</p> <p><a href="http://static.righto.com/images/soyuz-chip/die.jpg"><img alt="Die photo of the Soviet 134袥袗8 (134LA8) NAND gate integrated circuit. (Click any photo for a larger image.)" class="hilite" height="497" src="http://static.righto.com/images/soyuz-chip/die-w500.jpg" title="Die photo of the Soviet 134袥袗8 (134LA8) NAND gate integrated circuit. (Click any photo for a larger image.)" width="500" /></a><div class="cite">Die photo of the Soviet 134袥袗8 (134LA8) NAND gate integrated circuit. (Click any photo for a larger image.)</div></p> <p>The chip is used in the clock shown below. We recently obtained this digital clock that flew on a Soyuz space mission.<span id="fnref:mission"><a class="ref" href="#fn:mission">1</a></span> The clock displays the time on the upper LED digits and provides a stopwatch on the lower LEDs. Its alarm feature activates an external circuit at a preset time. I expected that this clock would have a single clock chip inside, but the clock is surprisingly complicated, with over 100 integrated circuits on ten circuit boards. (See my <a href="http://www.righto.com/2020/01/inside-digital-clock-from-soyuz.html">previous blog post</a> for more information about the clock.)</p> <p><a href="http://static.righto.com/images/soyuz-chip/soyuz-clock-opened.jpg"><img alt="Space clock from Soyuz with the cover removed." class="hilite" height="424" src="http://static.righto.com/images/soyuz-chip/soyuz-clock-opened-w500.jpg" title="Space clock from Soyuz with the cover removed." width="500" /></a><div class="cite">Space clock from Soyuz with the cover removed.</div></p> <p>The clock's circuit boards can be opened like a book to reveal the integrated circuits and other components, thanks to the flexible wiring harnesses that connect the boards. The integrated circuits are mostly 14-pin "flat packs" in metal packages, surface-mounted on the printed circuit boards. I wanted to know more about these integrated circuits, so I opened one up,<span id="fnref:ebay"><a class="ref" href="#fn:ebay">2</a></span> took photos, and reverse-engineered the chip's circuitry. <!-- (Black epoxy DIP (Dual Inline Package) integrated circuits were standard in commercial US electronics at the time, but American aerospace electronics often used flat packs like these.) --></p> <p><a href="http://static.righto.com/images/soyuz-chip/book.jpg"><img alt="The wiring bundles are arranged so the boards can swing apart. The quartz crystal that controls the clock's timing is visible in the upper center. The clock's power supply is on the boards at the right, with multiple round inductors." class="hilite" height="543" src="http://static.righto.com/images/soyuz-chip/book-w600.jpg" title="The wiring bundles are arranged so the boards can swing apart. The quartz crystal that controls the clock's timing is visible in the upper center. The clock's power supply is on the boards at the right, with multiple round inductors." width="600" /></a><div class="cite">The wiring bundles are arranged so the boards can swing apart. The quartz crystal that controls the clock's timing is visible in the upper center. The clock's power supply is on the boards at the right, with multiple round inductors.</div></p> <h3>Soviet integrated circuits</h3> <p>The clock is built from TTL integrated circuits, a type of digital logic that was popular in the 1970s through the 1990s because it was reliable, inexpensive, and easy to use. (If you've done hobbyist digital electronics, you probably know the <a href="https://en.wikipedia.org/wiki/7400-series_integrated_circuits">7400-series</a> of TTL chips.) A basic TTL chip contained just a few logic gates, such as 4 NAND gates or 6 inverters, while a more complex TTL chip implemented a functional unit such as a 4-bit counter. Eventually, TTL lost out to CMOS chips (the chips in modern computers), which use much less power and are much denser.</p> <p>The photo below shows a chip with its metal lid removed. The tiny silicon die is visible in the middle, with bond wires connecting the die to the pins. This integrated circuit is very small; the ceramic package is 9.5mm×6.5mm, considerably smaller than a fingernail. To open up a chip like this, I normally put it in a vise and then tap the seam with a chisel. However, in this case, the chip decapped itself—while I was looking for a hammer, the top suddenly popped off due to the pressure from the vise.</p> <p><a href="http://static.righto.com/images/soyuz-chip/decap.jpg"><img alt="The integrated circuit with its metal lid removed, showing the tiny silicon die inside." class="hilite" height="369" src="http://static.righto.com/images/soyuz-chip/decap-w300.jpg" title="The integrated circuit with its metal lid removed, showing the tiny silicon die inside." width="300" /></a><div class="cite">The integrated circuit with its metal lid removed, showing the tiny silicon die inside.</div></p> <p>The chip I'm examining has the Cyrillic part number 134袥袗8 (134LA8)<span id="fnref:system"><a class="ref" href="#fn:system">6</a></span>. It implements four open-collector NAND gates, as shown below.<span id="fnref:databook"><a class="ref" href="#fn:databook">4</a></span> The NAND gate is a standard logic gate, outputting a 0 if both inputs are 1, and otherwise outputting a 1. An <a href="https://en.wikipedia.org/wiki/Open_collector">open-collector</a> output is slightly different from a standard output. It will pull the output pin low for a 0, but for a 1 it just leaves the output floating ("high impedance").<span id="fnref:usage"><a class="ref" href="#fn:usage">5</a></span> An external pull-up resistor is required to pull the output high for a 1. The clock uses three of these chips: one in the quartz crystal oscillator circuit, and another functioning as inverters in another part of the clock.<span id="fnref:inverter"><a class="ref" href="#fn:inverter">3</a></span></p> <p><a href="http://static.righto.com/images/soyuz-chip/chip-pins.png"><img alt="Logic diagram of the Soviet 134袥袗8 (134LA8) integrated circuit, with pin numbers." class="hilite" height="262" src="http://static.righto.com/images/soyuz-chip/chip-pins-w250.png" title="Logic diagram of the Soviet 134袥袗8 (134LA8) integrated circuit, with pin numbers." width="250" /></a><div class="cite">Logic diagram of the Soviet 134袥袗8 (134LA8) integrated circuit, with pin numbers.</div></p> <p>The Soviet Union lagged about 9 years behind the US in integrated circuit development.<span id="fnref:chip"><a class="ref" href="#fn:chip">7</a></span> The lag would have been much larger, except the Soviet Union copied many Western integrated circuits. As a result, most of the Soviet TTL chips have Western equivalents.<span id="fnref2:databook"><a class="ref" href="#fn:databook">4</a></span> However, the 134袥袗8 chip that I examined is different from Western chips<span id="fnref:7401"><a class="ref" href="#fn:7401">8</a></span> with two unusual features. First, to reduce the number of external resistors, this chip includes two pull-up resistors on the chip that can be wired up as desired. Second, the chip shares two NAND gate inputs, which frees up the two pins used by the resistors. Thus, even though the Soviet Union was copying integrated circuits, they were also creatively designing their own chips.</p> <h2>Integrated circuit components</h2> <p>Under the microscope, the transistors and resistors of the integrated circuit are visible. The silicon die appears in shades of pink, purple, and green, depending on how different regions of the chip have been "doped". By doping the silicon with impurities, the silicon takes on different semiconductor properties, making N-type and P-type silicon. On top of the silicon, the white lines are metal traces that wire together the components on the silicon layer.</p> <p>The photo below shows how a resistor appears on the silicon die. A resistor is formed by doping silicon to form a high-resistance path, the reddish line below. The longer the path, the higher the resistance, so the resistors typically zig-zag back and forth to create the desired resistance. The resistor is connected to the metal layer at both ends, while another metal passes over the resistor shown below.</p> <p><a href="http://static.righto.com/images/soyuz-chip/resistor.jpg"><img alt="A resistor on the integrated circuit die." class="hilite" height="230" src="http://static.righto.com/images/soyuz-chip/resistor-w300.jpg" title="A resistor on the integrated circuit die." width="300" /></a><div class="cite">A resistor on the integrated circuit die.</div></p> <p>This chip, like other TTL chips, uses bipolar NPN transistors. These transistors have N-type silicon for the emitter, P-type silicon for the base, and N-type silicon for the collector. On the IC, the transistors are constructed by doping the silicon to form layers with different properties. At the bottom of the stack, the collector forms the bulk of the transistor, doped to form N-type silicon (the large green area below). On top of the collector, a thin region of P-type silicon forms the base; this is the reddish region in the middle. Finally, a small square N-type emitter is formed on top of the base. These layers form the N-P-N structure of the transistor. Note that the metal wiring to the collector and base is off to the side, away from the main body of the transistor.</p> <p><a href="http://static.righto.com/images/soyuz-chip/input-transistor-labeled.jpg"><img alt="An input transistor on the integrated circuit die. The transistor is surrounded by an isolation ring (dark color) to separate it from the other transistors." class="hilite" height="245" src="http://static.righto.com/images/soyuz-chip/input-transistor-labeled-w300.jpg" title="An input transistor on the integrated circuit die. The transistor is surrounded by an isolation ring (dark color) to separate it from the other transistors." width="300" /></a><div class="cite">An input transistor on the integrated circuit die. The transistor is surrounded by an isolation ring (dark color) to separate it from the other transistors.</div></p> <p>TTL circuits typically used transistors with multiple emitters, one for each input, and this can be seen above. A multiple-emitter transistor may seem strange, but it is straightforward to build one on an integrated circuit. The transistor above has two emitters wired up. Close examination shows there are four emitters, but the two lower unused emitters are shorted to the base.</p> <p>The output transistors on the chip produce the external signal from the chip, so they must support much higher current than the other transistors. As a result, they are much larger than the other transistors. As before, the transistor has a large N-type collector region (green), with a base on top (pink), and then emitter on top of the base. The output transistor has long contacts between the metal layer and the silicon, rather than the small square contacts of the previous transistor. The emitter (wired in a "U" shape) is also much larger. These changes allow more current to flow through the transistor. In the photo below, the transistor on the left has no metal layer, so its silicon features are more visible.<span id="fnref:unused"><a class="ref" href="#fn:unused">9</a></span> The transistor on the right shows the metal wiring.</p> <p><a href="http://static.righto.com/images/soyuz-chip/output-transistor-labeled.jpg"><img alt="Two output transistors on the integrated circuit die. The one on the left is unused, while the one on the right is wired into the circuit by the metal layer." class="hilite" height="304" src="http://static.righto.com/images/soyuz-chip/output-transistor-labeled-w600.jpg" title="Two output transistors on the integrated circuit die. The one on the left is unused, while the one on the right is wired into the circuit by the metal layer." width="600" /></a><div class="cite">Two output transistors on the integrated circuit die. The one on the left is unused, while the one on the right is wired into the circuit by the metal layer.</div></p> <h2>How a TTL NAND gate works</h2> <p>The schematic below shows one of the open-collector NAND gates in the chip. In this paragraph, I'll give a brief explanation of the circuit; you can skip this if you want.<span id="fnref:detailed"><a class="ref" href="#fn:detailed">10</a></span> To understand the circuit, first assume that an input is 0. The current through resistor R1 and the base of transistor Q1 will flow out through the transistor's emitter and the low input. Transistor Q2 will be off, so R3 pulls Q3's base low, turning Q3 off. Thus, the output will float (i.e. open-collector 1 output). On the other hand, suppose both inputs are 1. Now the current through R1 can't pass through an input so it will flow out the collector of Q1 (i.e. backward) and into Q2's base, turning on Q2. Q2 will pull Q3's base high, turning on Q3 and pulling the output low. Thus, the circuit implements a NAND gate, outputting 0 if both inputs are high. Note that Q1 isn't acting like a normal transistor, but instead is "current-steering", directing the current from R1 in one direction or the other.</p> <p><a href="http://static.righto.com/images/soyuz-chip/ttl.png"><img alt="Schematic of one gate in the integrated circuit. This is an open-collector TTL NAND gate." class="hilite" height="301" src="http://static.righto.com/images/soyuz-chip/ttl-w300.png" title="Schematic of one gate in the integrated circuit. This is an open-collector TTL NAND gate." width="300" /></a><div class="cite">Schematic of one gate in the integrated circuit. This is an open-collector TTL NAND gate.</div></p> <p>The diagram below shows the components for one of the NAND gates, labeled to match the schematic. (The three other NAND gates on the chip are similar.) The wiring of the gate is simple compared to most integrated circuits; you can follow the metal traces (white) and match up the wiring with the schematic. Note the winding path from the ground pad to Q3. Q1 is a two-emitter transistor while Q3 is a large output transistor. Two unused transistors are below Q2.</p> <p><a href="http://static.righto.com/images/soyuz-chip/die-labeled.jpg"><img alt="The die, showing the components in a gate. Components are labeled (blue) for one of the NAND gates, while pins are labeled in red. The pull-up resistors are above and below the Vcc wire." class="hilite" height="354" src="http://static.righto.com/images/soyuz-chip/die-labeled-w700.jpg" title="The die, showing the components in a gate. Components are labeled (blue) for one of the NAND gates, while pins are labeled in red. The pull-up resistors are above and below the Vcc wire." width="700" /></a><div class="cite">The die, showing the components in a gate. Components are labeled (blue) for one of the NAND gates, while pins are labeled in red. The pull-up resistors are above and below the Vcc wire.</div></p> <h2>Conclusion</h2> <p>This Soviet chip from 1984 is simple enough that the circuitry can be easily traced out, illustrating how a TTL NAND gate is constructed. The downside of simple chips, however, is that the Soyuz clock required over 100 chips to implement basic clock functionality. Even at the time, single chips implemented wristwatches and alarm clocks. Now, modern chips can contain billions of transistors, providing an extraordinary amount of functionality, but making the chip impossible to understand visually.</p> <p>My <a href="http://www.righto.com/2020/01/inside-digital-clock-from-soyuz.html">previous blog post</a> discussed the clock's circuitry in detail and I plan to write more about the clock, so follow me <a href="https://twitter.com/kenshirriff">@kenshirriff</a> (or <a href="http://www.righto.com/feeds/posts/default">on RSS</a>) for details. Until then, you can watch <a href="https://www.patreon.com/curiousmarc">CuriousMarc's</a> video showing the disassembly of the space clock:</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/JBIhzEZkWEA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <h2>Notes and References</h2> <div class="footnote"> <ol> <li id="fn:mission"> <p><a href="https://youtube.com/CuriousMarc">CuriousMarc</a> obtained the clock from an auction and it was advertised as flown to space, but we don't know which mission it was flown on. The date codes on the components inside the clock are mostly from 1983, with one from 1984, so the clock was probably manufactured in 1984. The Russian name for the clock is "袘芯褉褌芯胁褘械 效邪褋褘 袣芯褋屑懈褔械褋泻懈械" (Onboard Space Clock), which is abbreviated as "袘效袣". <a class="footnote-backref" href="#fnref:mission" title="Jump back to footnote 1 in the text">↩</a></p> </li> <li id="fn:ebay"> <p>Don't worry; I didn't destroy any of the chips in the clock. We bought duplicate chips on eBay for reverse-engineering. I was surprised that most of these 1980s-era chips are not too hard to obtain. <a class="footnote-backref" href="#fnref:ebay" title="Jump back to footnote 2 in the text">↩</a></p> </li> <li id="fn:inverter"> <p>I don't see any obvious reason why the 134袥袗8 chip was used instead of an inverter chip. Surprisingly, even though the 7404 hex inverter chip was extremely common in US designs, the clock doesn't use any inverter chips at all. <a class="footnote-backref" href="#fnref:inverter" title="Jump back to footnote 3 in the text">↩</a></p> </li> <li id="fn:databook"> <p>For more information on Russian integrated circuits, including the ones used in the clock, see the databook <a href="https://www.elec.ru/files/2019/09/25/Integralnye_mikroskhemy_i_ikh_zarubezhnye_analogi_AiwZ.PDF">袠薪褌械谐褉邪谢褜薪褘械 屑懈泻褉芯褋褏械屑褘 懈 懈褏 蟹邪褉褍斜械卸薪褘械 邪薪邪谢芯谐懈</a> (Integrated circuits and their foreign counterparts). (The title makes it explicit that they were copying foreign chips.) Be warned that the databook's description of the 134袥袗8 has a few typos. <a class="footnote-backref" href="#fnref:databook" title="Jump back to footnote 4 in the text">↩</a><a class="footnote-backref" href="#fnref2:databook" title="Jump back to footnote 4 in the text">↩</a></p> </li> <li id="fn:usage"> <p>One reason to use open-collector gates is to get an AND gate "for free". Connecting outputs together produces a <a href="https://en.wikipedia.org/wiki/Wired_logic_connection">wired-AND</a>; if any output is a 0, the tied-together output is a 0. (Tying together NAND gates is equivalent to <a href="https://en.wikipedia.org/wiki/AND-OR-Invert">AND-OR-INVERT</a> logic.)</p> <p>Open-collector outputs can also be used on a bus, where multiple devices or boards can write signals to a bus line (as in the Xerox Alto) without electrical conflict. This use is obsolete, though; <a href="https://en.wikipedia.org/wiki/Three-state_logic">tri-state outputs</a> provide much better performance. <a class="footnote-backref" href="#fnref:usage" title="Jump back to footnote 5 in the text">↩</a></p> </li> <li id="fn:system"> <p>One nice thing about Russian ICs is that the part numbers are assigned according to a <a href="https://en.wikipedia.org/wiki/Soviet_integrated_circuit_designation">rational system</a>, unlike the essentially random numbering of American integrated circuits. Two letters in the part number indicate the function of the chip, such as a logic gate, counter, flip flop, or decoder. For example, consider the label "螖134 袥A8A". The series number, 134, indicates the chip is a low-power TTL chip. The "袥" (L) indicates a logic chip (袥芯谐懈褔械褋泻懈械), with "A" indicating the NAND gate subcategory. Finally, "8" indicates a specific type of NAND chip in the 袥A category. As with American chips, the "0684" date code on the chip indicates that it was made in the 6th week of 1984. <a class="footnote-backref" href="#fnref:system" title="Jump back to footnote 6 in the text">↩</a></p> </li> <li id="fn:chip"> <p>Two CIA reports (<a href="https://www.cia.gov/library/readingroom/docs/DOC_0000499603.pdf">1974</a> and <a href="https://www.cia.gov/library/readingroom/docs/DOC_0000499603.pdf">1986</a>) provide information on the lag between Soviet IC technology and Western technology. "Microcomputing in the Soviet Union and Eastern Europe", ABACUS, 1985, discusses how the Soviet Union copied American microprocessors, especially Intel ones. <a class="footnote-backref" href="#fnref:chip" title="Jump back to footnote 7 in the text">↩</a></p> </li> <li id="fn:7401"> <p>The 7400 series includes several quad open-collector NAND gate chips, such as the 7401, 7403, 7426, 7438, and 7439. These are all different from the Soviet chip. A die photo of the 74S01 is <a href="https://project5474.org/index.php?title=74LS01_TI_8610">here</a>; I think the Soviet chip has a much nicer layout. <a class="footnote-backref" href="#fnref:7401" title="Jump back to footnote 8 in the text">↩</a></p> </li> <li id="fn:unused"> <p>The integrated circuit has a few unused transistors. In addition, the input transistors have 4 emitters, but only two of them are used. This is probably so the same silicon die can be used to manufacture multiple integrated circuits by changing the metal layer. For instance, the 4-emitter transistors could be used for 3- or 4-input NAND gates. Alternatively, the unused transistors could be used to create a hex inverter chip. <a class="footnote-backref" href="#fnref:unused" title="Jump back to footnote 9 in the text">↩</a></p> </li> <li id="fn:detailed"> <p>For a detailed explanation of how TTL gates work, see <a href="https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/DIGI_3.html">this page</a>. <a class="footnote-backref" href="#fnref:detailed" title="Jump back to footnote 10 in the text">↩</a></p> </li> </ol> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://www.blogger.com/comment/fullpage/post/6264947694886887540/2600121294301165851' onclick=''> 14 comments: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/6264947694886887540/2600121294301165851' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://www.blogger.com/post-edit.g?blogID=6264947694886887540&postID=2600121294301165851&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=2600121294301165851&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=2600121294301165851&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=2600121294301165851&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=2600121294301165851&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=6264947694886887540&postID=2600121294301165851&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href='http://www.righto.com/search/label/electronics' rel='tag'>electronics</a>, <a href='http://www.righto.com/search/label/reverse-engineering' rel='tag'>reverse-engineering</a>, <a href='http://www.righto.com/search/label/space' rel='tag'>space</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='http://www.righto.com/search?updated-max=2020-06-20T09:00:00-07:00&max-results=7&reverse-paginate=true' id='Blog1_blog-pager-newer-link' title='Newer Posts'>Newer Posts</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='http://www.righto.com/search?updated-max=2020-03-16T08:59:00-07:00&max-results=7' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a> </span> <a class='home-link' href='http://www.righto.com/'>Home</a> </div> <div class='clear'></div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget HTML' data-version='1' id='HTML2'> <div class='widget-content'> <style> @import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500,700'); .form-preview { display: flex; flex-direction: column; justify-content: center; margin-top: 30px; padding: clamp(17px, 5%, 40px) clamp(17px, 7%, 50px); max-width: 350px; min-height: 200px; border-radius: 6px; box-shadow: 0 5px 25px rgba(34, 60, 47, 0.25); } .form-preview, .form-preview *{ box-sizing: border-box; } .form-preview .preview-heading { width: 100%; } .form-preview .preview-heading h5{ margin-top: 0; margin-bottom: 0; } .form-preview .preview-input-field { margin-top: 20px; width: 100%; } .form-preview .preview-input-field input { width: 100%; height: 40px; border-radius: 6px; border: 2px solid #e9e8e8; background-color: #fff; outline: none; } .form-preview .preview-input-field input::placeholder, .form-preview .preview-input-field input { opacity: 0.5; color: #000; font-family: "Montserrat"; font-size: 14px; font-weight: 500; line-height: 20px; text-align: center; } .form-preview .preview-submit-button { margin-top: 10px; width: 100%; } .form-preview .preview-submit-button button { width: 100%; height: 40px; border: 0; border-radius: 6px; line-height: 0px; } .form-preview .preview-submit-button button:hover { cursor: pointer; } </style><form data-v-4c58e686="" action="https://api.follow.it/subscription-form/U3NBTmZKVkI1YVpCa000a0RCZHFiQ3FYMko1cWRTZTN6K3hJdWM2QWxJbE1uVXdXUHZZVzJVQzVLZGh5Y0RCVXB2d2JSTzBobGhuY0FsZnlHbVdFZ2VTN2Q4Vy84RnIxUTgzVlcrbXNIR0Y0aW93d3REM2J6VS9RL0gxWURnV1d8ZWN0YStwUWdWWUFiOTIyWDVGWjdYYVdGZEVNcC9qODZacjlwWXRIcEJQRT0=/8" method="post"><div data-v-4c58e686="" class="form-preview" style="background-color: rgb(255, 255, 255); border-style: solid; border-width: 1px; border-color: rgb(204, 204, 204); position: relative;"><div data-v-4c58e686="" class="preview-heading"><h5 data-v-4c58e686="" style="font-family: Montserrat; font-weight: bold; color: rgb(0, 0, 0); font-size: 12px; text-align: center;">Get new posts by email:</h5></div> <div data-v-4c58e686="" class="preview-input-field"><input data-v-4c58e686="" type="email" name="email" placeholder="Enter your email" spellcheck="false" /></div> <div data-v-4c58e686="" class="preview-submit-button"><button data-v-4c58e686="" type="submit" style="font-family: Montserrat; font-weight: bold; color: rgb(255, 255, 255); font-size: 12px; text-align: center; background-color: rgb(0, 0, 0);">Subscribe</button></div></div></form> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML3'> <h2 class='title'>About the site</h2> <div class='widget-content'> <a href="https://www.righto.com/p/index.html">Contact info and site index</a> </div> <div class='clear'></div> </div><div class='widget PopularPosts' data-version='1' id='PopularPosts1'> <h2>Popular Posts</h2> <div class='widget-content popular-posts'> <ul> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uYm0eIOdpLSpTwNkM2VHZNrJJQioG_drOB0g7wNl8769z3dSJGaLpgnc5Ph11Xs6zxgYx0dreFy_OiM6VHdKL_tNtW2tEA9oFHOBKojijDegzvnAgHpPpQgut8xktcTHA=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2025/03/mother-of-all-demos-usb-keyset-interface.html'>A USB interface to the "Mother of All Demos" keyset</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2025/03/pentium-microcde-rom-circuitry.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tRkTiYmTEkYysfD2qpEBr_16ZLpiSh7x2J37TI3WcagRWvMytAnfW2ah6HwaupjzsPTnb77uCk6fCgPHd4J3WUU74dQgym3hiCLyb6SKiBd2xcLtRdrH-LbRyluHZbNHVK4gbMBRRXHFF0hERBYjE=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2025/03/pentium-microcde-rom-circuitry.html'>Notes on the Pentium's microcode circuitry</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2024/05/blog-post.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t9RbSx6ThRISqlt67vI-potCqxV4h7oX-xHsZrgy_XVrjd2Pr0lhpeipqsaFzS2gvWxw_fSbysQDnhn2PxaJTti4hqP8UKogwxo5JWSVEkScyQqToUz-zAO3ft8clqQrgwVxuy1Q6Htk5ELdFx-ymv=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2024/05/blog-post.html'>Inside a vintage aerospace navigation computer of uncertain purpose</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2025/03/pentium-multiplier-adder-reverse-engineered.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vjyQK7lLPrDNd223iCyZNGH4RReUqRSsvwHAblzwix2WBwihXQ5ihlMzPBflWjdQ6q1NGBva4ThNu8fZOkLIxwWEv8hJJSZm1jNs_PV3tjVSM-gclnxJZ6id672qWSp7D7pCZYfpF8vzKw=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2025/03/pentium-multiplier-adder-reverse-engineered.html'>The Pentium contains a complicated circuit to multiply by three</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_suWfHB4K4hv04jU1It3ZSCYZciT0g2i7sYt1et_LFHjJklK2zSAgxHH0CKcWhS8NGsaGsUc8dztmenrn1v_l_mqK5IxQ8GOOaOW7CLc2AAvRY=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html'>A Multi-Protocol Infrared Remote Library for the Arduino</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-apple-is.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ts3U9P3x84iGU9MeuMYBMrmAJlU8CByPMJgRRER5xg3dbnGa6huiR1AAnJNLMoVeO8h8yRSO0_pvr8RzSq6Rd2bnupsVvvzlP-zfg7bSRAd4G-VoK5wxpiSoeglhQ=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-apple-is.html'>A dozen USB chargers in the lab: Apple is very good, but not quite the best</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2012/05/apple-iphone-charger-teardown-quality.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_u39Zx3eUkkcZoVKaRWYrKI5oy8aaIpVvklXsyY_mHyYDRfs5jOO64hlSZ-bEc4di1GZJHXTRi3RwYQ4kX7_Y6OnsNzmsGgSpKAaj94JfaRFPCB2Q-xvOMTOr81ObSCRV1Fm7iDKdr35Wo-sySTWtalrI8=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2012/05/apple-iphone-charger-teardown-quality.html'>Apple iPhone charger teardown: quality in a tiny expensive package</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href='http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html' target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vV4Aj_jtgiRpRiVpROCQQQk13NZhjiRZHYYrkywIrtNoqeVqrsfGmPlvoe6pojZOQyG2CMz2UClNYm88WaJ4s6H9ed-9PoN1tx_B6XsUUDZRb-_DVGfwLYfZU-iJTmxmRO=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href='http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html'>Mining Bitcoin with pencil and paper: 0.67 hashes per day</a></div> </div> <div style='clear: both;'></div> </li> </ul> <div class='clear'></div> </div> </div><div class='widget BlogSearch' data-version='1' id='BlogSearch1'> <h2 class='title'>Search This Blog</h2> <div class='widget-content'> <div id='BlogSearch1_form'> <form action='http://www.righto.com/search' class='gsc-search-box' target='_top'> <table cellpadding='0' cellspacing='0' class='gsc-search-box'> <tbody> <tr> <td class='gsc-input'> <input autocomplete='off' class='gsc-input' name='q' size='10' title='search' type='text' value=''/> </td> <td class='gsc-search-button'> <input class='gsc-search-button' title='search' type='submit' value='Search'/> </td> </tr> </tbody> </table> </form> </div> </div> <div class='clear'></div> </div><div class='widget Label' data-version='1' id='Label1'> <h2>Labels</h2> <div class='widget-content cloud-label-widget-content'> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/386'>386</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/6502'>6502</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/8008'>8008</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/8085'>8085</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/8086'>8086</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/8087'>8087</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/8088'>8088</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/aerospace'>aerospace</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/alto'>alto</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/analog'>analog</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/Apollo'>Apollo</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/apple'>apple</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/arc'>arc</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/arduino'>arduino</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/arm'>arm</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/beaglebone'>beaglebone</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/bitcoin'>bitcoin</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/c%23'>c#</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/cadc'>cadc</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/calculator'>calculator</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/chips'>chips</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/css'>css</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/datapoint'>datapoint</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/dx7'>dx7</a> </span> <span class='label-size label-size-5'> <a dir='ltr' href='http://www.righto.com/search/label/electronics'>electronics</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/f%23'>f#</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/fairchild'>fairchild</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/fpga'>fpga</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/fractals'>fractals</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/genome'>genome</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/globus'>globus</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/haskell'>haskell</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/HP'>HP</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/html5'>html5</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/ibm'>ibm</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/ibm1401'>ibm1401</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/ibm360'>ibm360</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/intel'>intel</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/ipv6'>ipv6</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/ir'>ir</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/java'>java</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/javascript'>javascript</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/math'>math</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/microcode'>microcode</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/oscilloscope'>oscilloscope</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/Pentium'>Pentium</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/photo'>photo</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/power%20supply'>power supply</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/random'>random</a> </span> <span class='label-size label-size-5'> <a dir='ltr' href='http://www.righto.com/search/label/reverse-engineering'>reverse-engineering</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/sheevaplug'>sheevaplug</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/snark'>snark</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href='http://www.righto.com/search/label/space'>space</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/spanish'>spanish</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/synth'>synth</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href='http://www.righto.com/search/label/teardown'>teardown</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/theory'>theory</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href='http://www.righto.com/search/label/unicode'>unicode</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href='http://www.righto.com/search/label/Z-80'>Z-80</a> </span> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Archive</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2025/'> 2025 </a> <span class='post-count' dir='ltr'>(8)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2025/03/'> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2025/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2025/01/'> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/'> 2024 </a> <span class='post-count' dir='ltr'>(21)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/10/'> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/09/'> September </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2024/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/'> 2023 </a> <span class='post-count' dir='ltr'>(35)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/12/'> December </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/03/'> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/02/'> February </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2023/01/'> January </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/'> 2022 </a> <span class='post-count' dir='ltr'>(18)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/04/'> April </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2022/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/'> 2021 </a> <span class='post-count' dir='ltr'>(26)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/12/'> December </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/03/'> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/02/'> February </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2021/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/'> 2020 </a> <span class='post-count' dir='ltr'>(33)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/10/'> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/09/'> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/08/'> August </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/06/'> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/05/'> May </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/03/'> March </a> <span class='post-count' dir='ltr'>(5)</span> <ul class='posts'> <li><a href='http://www.righto.com/2020/03/repairing-vintage-40-kilovolt-xenon.html'>Repairing a vintage 40-kilovolt xenon lamp igniter</a></li> <li><a href='http://www.righto.com/2020/03/inside-titan-missile-guidance-computer.html'>Inside a Titan missile guidance computer</a></li> <li><a href='http://www.righto.com/2020/03/the-delco-magic-line-of-aerospace.html'>The Delco Magic line of aerospace computers</a></li> <li><a href='http://www.righto.com/2020/03/looking-inside-vintage-soviet-ttl-logic.html'>Looking inside a vintage Soviet TTL logic integrat...</a></li> <li><a href='http://www.righto.com/2020/03/the-core-memory-inside-saturn-v-rockets.html'>The core memory inside a Saturn V rocket's computer</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2020/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/'> 2019 </a> <span class='post-count' dir='ltr'>(18)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/11/'> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/10/'> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/09/'> September </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/07/'> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2019/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/'> 2018 </a> <span class='post-count' dir='ltr'>(17)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/09/'> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/03/'> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2018/01/'> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/'> 2017 </a> <span class='post-count' dir='ltr'>(21)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/12/'> December </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/04/'> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2017/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/'> 2016 </a> <span class='post-count' dir='ltr'>(34)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/10/'> October </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/09/'> September </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/08/'> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/06/'> June </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/02/'> February </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2016/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/'> 2015 </a> <span class='post-count' dir='ltr'>(12)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/11/'> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2015/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/'> 2014 </a> <span class='post-count' dir='ltr'>(13)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/10/'> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/09/'> September </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2014/02/'> February </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/'> 2013 </a> <span class='post-count' dir='ltr'>(24)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/11/'> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/09/'> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/08/'> August </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/07/'> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/06/'> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/03/'> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/02/'> February </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2013/01/'> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/'> 2012 </a> <span class='post-count' dir='ltr'>(10)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/12/'> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/11/'> November </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/10/'> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/05/'> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2012/02/'> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/'> 2011 </a> <span class='post-count' dir='ltr'>(11)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/07/'> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/03/'> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2011/02/'> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/'> 2010 </a> <span class='post-count' dir='ltr'>(22)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/11/'> November </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/10/'> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/08/'> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/05/'> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/04/'> April </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/03/'> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2010/01/'> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/'> 2009 </a> <span class='post-count' dir='ltr'>(22)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/12/'> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/11/'> November </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/09/'> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/08/'> August </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/07/'> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/06/'> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/04/'> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/03/'> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/02/'> February </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2009/01/'> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/'> 2008 </a> <span class='post-count' dir='ltr'>(27)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/07/'> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/06/'> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/05/'> May </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/04/'> April </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/03/'> March </a> <span class='post-count' dir='ltr'>(10)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://www.righto.com/2008/02/'> February </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2806328968-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY44khSru6qBoHfQXCahtcFDL0LpCQ:1744048078159';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6264947694886887540','//www.righto.com/2020/03/','6264947694886887540'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6264947694886887540', 'title': 'Ken Shirriff\x27s blog', 'url': 'http://www.righto.com/2020/03/', 'canonicalUrl': 'http://www.righto.com/2020/03/', 'homepageUrl': 'http://www.righto.com/', 'searchUrl': 'http://www.righto.com/search', 'canonicalHomepageUrl': 'http://www.righto.com/', 'blogspotFaviconUrl': 'http://www.righto.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': false, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-3782444-1', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Ken Shirriff\x26#39;s blog - Atom\x22 href\x3d\x22http://www.righto.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Ken Shirriff\x26#39;s blog - RSS\x22 href\x3d\x22http://www.righto.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Ken Shirriff\x26#39;s blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6264947694886887540/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/2c423cb85ff27b65', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': 'March 2020', 'pageTitle': 'Ken Shirriff\x27s blog: March 2020'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Ken Shirriff\x27s blog', 'description': 'Computer history, restoring vintage computers, IC reverse engineering, and whatever', 'url': 'http://www.righto.com/2020/03/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2020, 'month': 3, 'rangeMessage': 'Showing posts from March, 2020'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'sidebar-right-1', document.getElementById('HTML2'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML3', 'sidebar-right-1', document.getElementById('HTML3'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'sidebar-right-1', document.getElementById('PopularPosts1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'sidebar-right-1', document.getElementById('BlogSearch1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar-right-1', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>