CINXE.COM

Motorola MDT9100 conversion - Trammell Hudson's Projects

<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="Collection of my projects and hacks."> <link rel="canonical" href="https://trmm.net/MDT9100/"> <link rel="icon" href="../assets/images/favicon.png"> <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.6"> <meta property="og:title" content="Motorola MDT9100 conversion"> <meta property="og:site_name" content="Trammell Hudson's Projects"> <meta property="og:url" content="https://trmm.net/MDT9100/"> <meta property="og:description" content="Replacing the i386 in a Motorolla MDT9100 police car computer with a modern single-board ARM system"> <meta property="og:image" content="https://live.staticflickr.com/4785/40754929641_e54ecd3eb8.jpg"> <title>Motorola MDT9100 conversion - Trammell Hudson's Projects</title> <link rel="stylesheet" href="../assets/stylesheets/main.558e4712.min.css"> <link rel="stylesheet" href="../assets/stylesheets/palette.2505c338.min.css"> <!-- Load fonts from Google --> <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin /> <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=IBM+Plex+Serif:300,400,400i,700%7CIBM+Plex+Sans:500,600,700%7CIBM+Plex+Mono&display=fallback" /> <style> body, input { font-family: "IBM Plex Serif", "Helvetica Neue", Helvetica, Arial, sans-serif; } pre, code, kbd { font-family: "IBM Plex Mono", "Courier New", Courier, monospace; } h1, h2, h3, h4, h5, h6 { font-family: "IBM Plex Sans", sans-serif; font-weight: 700 !important; } </style> <link rel="stylesheet" href="../extra.css"> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> </head> <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="purple"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#windows-31" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href=".." title="Trammell Hudson&#39;s Projects" class="md-header__button md-logo" aria-label="Trammell Hudson's Projects" data-md-component="logo"> <img src="../images/logo.png" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> Trammell Hudson's Projects </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Motorola MDT9100 conversion </span> </div> </div> </div> <label class="md-header__button md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class="md-search" data-md-component="search" role="dialog"> <label class="md-search__overlay" for="__search"></label> <div class="md-search__inner" role="search"> <form class="md-search__form" name="search"> <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> <label class="md-search__icon md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class="md-search__options" aria-label="Search"> <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> </form> <div class="md-search__output"> <div class="md-search__scrollwrap" data-md-scrollfix> <div class="md-search-result" data-md-component="search-result"> <div class="md-search-result__meta"> Initializing search </div> <ol class="md-search-result__list" role="presentation"></ol> </div> </div> </div> </div> </div> <div class="md-header__source"> <a href="https://github.com/osresearch/" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class="md-source__repository"> GitHub </div> </a> </div> </nav> </header> <div class="md-container" data-md-component="container"> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href=".." title="Trammell Hudson&#39;s Projects" class="md-nav__button md-logo" aria-label="Trammell Hudson's Projects" data-md-component="logo"> <img src="../images/logo.png" alt="logo"> </a> Trammell Hudson's Projects </label> <div class="md-nav__source"> <a href="https://github.com/osresearch/" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class="md-source__repository"> GitHub </div> </a> </div> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " data-md-toggle="__nav_1" type="checkbox" id="__nav_1" > <label class="md-nav__link" for="__nav_1" tabindex="0" aria-expanded="false"> Categories <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Categories" data-md-level="1"> <label class="md-nav__title" for="__nav_1"> <span class="md-nav__icon md-icon"></span> Categories </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../Category%3ARetrocomputing/" class="md-nav__link"> Retrocomputing </a> </li> <li class="md-nav__item"> <a href="../Category%3AVector_display/" class="md-nav__link"> Vector display </a> </li> <li class="md-nav__item"> <a href="../Category%3ARobots/" class="md-nav__link"> Robots </a> </li> <li class="md-nav__item"> <a href="../Category%3AClocks/" class="md-nav__link"> Clocks </a> </li> <li class="md-nav__item"> <a href="../Category%3A3D_Printing/" class="md-nav__link"> 3D Printing </a> </li> <li class="md-nav__item"> <a href="../Category%3ALaser_cutter/" class="md-nav__link"> Laser cutter </a> </li> <li class="md-nav__item"> <a href="../Category%3ATeensy/" class="md-nav__link"> Teensy </a> </li> <li class="md-nav__item"> <a href="../Category%3AMac/" class="md-nav__link"> Mac </a> </li> <li class="md-nav__item"> <a href="../Category%3APhotography/" class="md-nav__link"> Photography </a> </li> <li class="md-nav__item"> <a href="../Category%3AHobbies/" class="md-nav__link"> Hobbies </a> </li> <li class="md-nav__item"> <a href="../Category%3ALED/" class="md-nav__link"> LED </a> </li> <li class="md-nav__item"> <a href="../Category%3ALEDscape/" class="md-nav__link"> LEDscape </a> </li> <li class="md-nav__item"> <a href="../Category%3AReverse_engineering/" class="md-nav__link"> Reverse engineering </a> </li> <li class="md-nav__item"> <a href="../Category%3ATalks/" class="md-nav__link"> Talks </a> </li> <li class="md-nav__item"> <a href="../Category%3AHacks/" class="md-nav__link"> Hacks </a> </li> <li class="md-nav__item"> <a href="../Category%3ASecurity/" class="md-nav__link"> Security </a> </li> <li class="md-nav__item"> <a href="../Category%3AAircraft/" class="md-nav__link"> Aircraft </a> </li> <li class="md-nav__item"> <a href="../Category%3AArt/" class="md-nav__link"> Art </a> </li> <li class="md-nav__item"> <a href="../Category%3ABiking/" class="md-nav__link"> Biking </a> </li> <li class="md-nav__item"> <a href="../Category%3ALED/" class="md-nav__link"> Blinky </a> </li> <li class="md-nav__item"> <a href="../Category%3ABurning_Man/" class="md-nav__link"> Burning Man </a> </li> <li class="md-nav__item"> <a href="../Category%3AClasses/" class="md-nav__link"> Classes </a> </li> <li class="md-nav__item"> <a href="../Category%3ACoffee/" class="md-nav__link"> Coffee </a> </li> <li class="md-nav__item"> <a href="../Category%3AESP/" class="md-nav__link"> ESP </a> </li> <li class="md-nav__item"> <a href="../Category%3AFont/" class="md-nav__link"> Font </a> </li> <li class="md-nav__item"> <a href="../Category%3AGames/" class="md-nav__link"> Games </a> </li> <li class="md-nav__item"> <a href="../Category%3AInteractive_Show/" class="md-nav__link"> Interactive Show </a> </li> <li class="md-nav__item"> <a href="../Category%3ABeagleBone/" class="md-nav__link"> BeagleBone </a> </li> <li class="md-nav__item"> <a href="../Category%3APRU/" class="md-nav__link"> PRU </a> </li> <li class="md-nav__item"> <a href="../Category%3AMakerfaire/" class="md-nav__link"> Makerfaire </a> </li> <li class="md-nav__item"> <a href="../Category%3ANYCR/" class="md-nav__link"> NYCR </a> </li> <li class="md-nav__item"> <a href="../Category%3AOctober_First/" class="md-nav__link"> October First </a> </li> <li class="md-nav__item"> <a href="../Category%3AOscilloscope/" class="md-nav__link"> Oscilloscope </a> </li> <li class="md-nav__item"> <a href="../Category%3AROM/" class="md-nav__link"> ROM </a> </li> <li class="md-nav__item"> <a href="../Category%3ARadio/" class="md-nav__link"> Radio </a> </li> <li class="md-nav__item"> <a href="../Category%3ARaspberry_Pi/" class="md-nav__link"> Raspberry Pi </a> </li> <li class="md-nav__item"> <a href="../Category%3AShopbot/" class="md-nav__link"> Shopbot </a> </li> <li class="md-nav__item"> <a href="../Category%3ASoftware/" class="md-nav__link"> Software </a> </li> <li class="md-nav__item"> <a href="../Category%3ASparkCore/" class="md-nav__link"> SparkCore </a> </li> <li class="md-nav__item"> <a href="../Category%3AThingiverse/" class="md-nav__link"> Thingiverse </a> </li> <li class="md-nav__item"> <a href="../Category%3AUSB_Devices/" class="md-nav__link"> USB Devices </a> </li> <li class="md-nav__item"> <a href="../Category%3AVideo/" class="md-nav__link"> Video </a> </li> <li class="md-nav__item"> <a href="../Category%3AWearables/" class="md-nav__link"> Wearables </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " data-md-toggle="__nav_2" type="checkbox" id="__nav_2" > <label class="md-nav__link" for="__nav_2" tabindex="0" aria-expanded="false"> Chronological <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Chronological" data-md-level="1"> <label class="md-nav__title" for="__nav_2"> <span class="md-nav__icon md-icon"></span> Chronological </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../Category%3A2010/" class="md-nav__link"> 2010 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2011/" class="md-nav__link"> 2011 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2012/" class="md-nav__link"> 2012 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2013/" class="md-nav__link"> 2013 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2014/" class="md-nav__link"> 2014 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2015/" class="md-nav__link"> 2015 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2016/" class="md-nav__link"> 2016 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2017/" class="md-nav__link"> 2017 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2018/" class="md-nav__link"> 2018 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2019/" class="md-nav__link"> 2019 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2020/" class="md-nav__link"> 2020 </a> </li> <li class="md-nav__item"> <a href="../Category%3A2021/" class="md-nav__link"> 2021 </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " data-md-toggle="__nav_3" type="checkbox" id="__nav_3" > <label class="md-nav__link" for="__nav_3" tabindex="0" aria-expanded="false"> About <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="About" data-md-level="1"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> About </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../About/" class="md-nav__link"> About Me </a> </li> <li class="md-nav__item"> <a href="../PGP/" class="md-nav__link"> Contact </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#windows-31" class="md-nav__link"> Windows 3.1 </a> </li> <li class="md-nav__item"> <a href="#powering-the-mdt9100" class="md-nav__link"> Powering the MDT9100 </a> </li> <li class="md-nav__item"> <a href="#beaglebone-black-setup" class="md-nav__link"> BeagleBone Black setup </a> </li> <li class="md-nav__item"> <a href="#ribbon-cable" class="md-nav__link"> Ribbon cable </a> </li> <li class="md-nav__item"> <a href="#beaglebone-lvds-setup" class="md-nav__link"> BeagleBone LVDS setup </a> </li> <li class="md-nav__item"> <a href="#keyboard-interface" class="md-nav__link"> Keyboard interface </a> </li> <li class="md-nav__item"> <a href="#applications" class="md-nav__link"> Applications </a> </li> <li class="md-nav__item"> <a href="#radios" class="md-nav__link"> Radios </a> </li> <li class="md-nav__item"> <a href="#more-info" class="md-nav__link"> More info </a> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <h1>Motorola MDT9100 conversion</h1> <p><a href="https://www.flickr.com/photos/osr/38578636920/lightbox"><img src="https://live.staticflickr.com/4724/38578636920_4db611b508_b.jpg" srcset="https://live.staticflickr.com/4724/38578636920_4db611b508_b.jpg 1024w, https://live.staticflickr.com/4724/38578636920_4db611b508.jpg 400w" /></a></p> <p>Several Motorola MDT-9100T "Mobile Data Terminals" came up on eBay and their retro-future design was too neat to pass up. The stylish housing combined with an aperture-less amber CRT looks like something slipped from the <em>Fallout</em> or <em>BladeRunner</em> universe into our own. Some of us at <a href="/NYC_Resistor">NYC Resistor</a> bought them and are repurposing them.</p> <h3 id="windows-31">Windows 3.1</h3> <p><a href="https://www.flickr.com/photos/osr/25517116447/lightbox"><img src="https://live.staticflickr.com/4631/25517116447_a8cb5668d2_b.jpg" srcset="https://live.staticflickr.com/4631/25517116447_a8cb5668d2_b.jpg 1024w, https://live.staticflickr.com/4631/25517116447_a8cb5668d2.jpg 400w" /></a> The original system had an i386SX running Windows 3.1 in a locked-down kiosk mode that would only allow the radio application to run. phooky figured out how to get a DOS prompt and used the installed <a href="https://en.wikipedia.org/wiki/LapLink">LapLink</a> tool to transfer some 1990s demo scene programs to his. I wanted to make mine into a more modern computer, while preserving the amber CRT and keyboard.</p> <table class="gallery"> <tbody markdown='1'> <tr> <td class="gallery-image col-1" width="50.0%"><a href="https://www.flickr.com/photos/osr/25846495497/lightbox"><img src="https://live.staticflickr.com/4777/25846495497_753e49b128.jpg" srcset="https://live.staticflickr.com/4777/25846495497_753e49b128_b.jpg 1024w, https://live.staticflickr.com/4777/25846495497_753e49b128.jpg 400w" /></a></td> <td class="gallery-image col-2" width="50.0%"><a href="https://www.flickr.com/photos/osr/25846495567/lightbox"><img src="https://live.staticflickr.com/4774/25846495567_9d44b7a537.jpg" srcset="https://live.staticflickr.com/4774/25846495567_9d44b7a537_b.jpg 1024w, https://live.staticflickr.com/4774/25846495567_9d44b7a537.jpg 400w" /></a></td> </tr> <tr markdown='1' class='gallery-caption-row'> <td class="gallery-caption col-1" width="50.0%"></td> <td class="gallery-caption col-2" width="50.0%"></td> <p></tr> </tbody></p> </table> <p>The BIOS setup screen can be reached with the "<code>HOME</code>" key during the boot and is a nostalgia trip. "Boot Sector Virus Protection" is such a throw back. There is also a debug mode to get a command prompt by hitting Left-Shift + Alt during the <code>mirror_c Scanning</code> message (which might not be visible since the CRT takes some time to warm up).</p> <p>Among the funny bits of <a href="http://www.cryptomuseum.com/crypto/motorola/mdt9100/index.htm">trivia about the MDT-9100</a>:</p> <blockquote> <p>Although Motorola advertised the MDT-9100 as suitable for secure data communication, the standard version was in fact highly insecure <a href="...">...</a> According to Motorola, a 'special code' was used, but the code appeared to be nothing more than plain ASCII. The data protcol was known as the MDT-4800 protocol and used bit-interleaving as a means to correct transmission errors, and to obscure the data stream. When hackers discovered the properties of the protocol, several PC programs appeared that allowed the general public to monitor police conversations with nothing more than a scanner, a PC and a simple interface</p> </blockquote> <h3 id="powering-the-mdt9100">Powering the MDT9100</h3> <p><a href="https://www.flickr.com/photos/osr/25517025997/lightbox"><img src="https://live.staticflickr.com/4705/25517025997_eb62129fd3_b.jpg" srcset="https://live.staticflickr.com/4705/25517025997_eb62129fd3_b.jpg 1024w, https://live.staticflickr.com/4705/25517025997_eb62129fd3.jpg 400w" /></a> There is a +12V connector on the bottom and the system draws about 1.7 amps when it is running. The shielded one on the terminal is ground, the unshielded is positive (this cable end would have the opposite, preventing accidental shorts to ground if the connector was unplugged). There is also a 12V connector on the back, but it is only for the radio and can be left disconnected. I think <a href="https://www.amazon.com/Hopkins-47965-2-Pole-Flat-Extension/dp/B0002Q80RW">this two pole towing connector</a> is the right one; I carefully used aligator clips.</p> <h3 id="beaglebone-black-setup">BeagleBone Black setup</h3> <p><a href="https://www.flickr.com/photos/osr/40754929641/lightbox"><img src="https://live.staticflickr.com/4785/40754929641_e54ecd3eb8_b.jpg" srcset="https://live.staticflickr.com/4785/40754929641_e54ecd3eb8_b.jpg 1024w, https://live.staticflickr.com/4785/40754929641_e54ecd3eb8.jpg 400w" /></a></p> <p>In order to replace the i386 with a BeagleBone Black it was necessary to build an adapter board that plugs into the ribbon cable, deduce the VGA timings and write a Device Tree overlay (DTBO) to configure the LVDS framing for the special screen, and design a USB HID keyboard interface for the keyboard and function keys.</p> <p><a href="https://www.flickr.com/photos/osr/26882550718/lightbox"><img src="https://live.staticflickr.com/4785/26882550718_f28d98b978_b.jpg" srcset="https://live.staticflickr.com/4785/26882550718_f28d98b978_b.jpg 1024w, https://live.staticflickr.com/4785/26882550718_f28d98b978.jpg 400w" /></a> My first version is built on a BBB Prototyping Cape board. I had the bright idea of using it upside down so that the Teensy and 0.1" headers were better aligned, but this was a mistake -- there are many pins that are not mirrored on the proto cape and this resulted in having to cut away quite a few of the header pins to avoid boot mode problems or worse.</p> <p>This is a good candidate for a real PCB with a proper DAC for the video. Maybe later...</p> <h3 id="ribbon-cable">Ribbon cable</h3> <p><a href="https://www.flickr.com/photos/osr/38907944660/lightbox"><img src="https://live.staticflickr.com/4797/38907944660_84fda988a9_b.jpg" srcset="https://live.staticflickr.com/4797/38907944660_84fda988a9_b.jpg 1024w, https://live.staticflickr.com/4797/38907944660_84fda988a9.jpg 400w" /></a> The i386 connects to the keyboard and CRT through a 0.1" 16x2 header. The +12V power and ground are doubled up on the right hand side.</p> <table> <thead> <tr> <th></th> <th>Function</th> <th>Function</th> <th></th> </tr> </thead> <tbody> <tr> <td>Keyboard</td> <td>GND</td> <td>Caps lock LED</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Col 9</td> <td>Col 8</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Col 7</td> <td>Col 6</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Col 5</td> <td>Col 4</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Col 3</td> <td>Col 2</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Col 1</td> <td>Col 0</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Row 0</td> <td>Row 1</td> <td></td> </tr> <tr> <td>Keyboard</td> <td>Row 2</td> <td>Row 3</td> <td>CRT</td> </tr> <tr> <td>Keyboard</td> <td>Row 4</td> <td>Row 5</td> <td>CRT</td> </tr> <tr> <td>Keyboard</td> <td>Row 6</td> <td>Row 7</td> <td>CRT</td> </tr> <tr> <td></td> <td>Fn Col 10</td> <td>Fn Col</td> <td>CRT</td> </tr> <tr> <td></td> <td>Fn Col 12</td> <td>CRT status LED (2.2K)</td> <td>CRT</td> </tr> <tr> <td></td> <td>Monitor enable</td> <td>Send Lamp?</td> <td>CRT</td> </tr> <tr> <td></td> <td><strong>+12V</strong></td> <td><strong>+12V</strong></td> <td>CRT</td> </tr> <tr> <td></td> <td>!Hsync</td> <td>!Vsync</td> <td>CRT</td> </tr> <tr> <td></td> <td><strong>GND</strong></td> <td><strong>GND</strong></td> <td>CRT</td> </tr> </tbody> </table> <h3 id="beaglebone-lvds-setup">BeagleBone LVDS setup</h3> <table class="gallery"> <tbody markdown='1'> <tr> <td class="gallery-image col-1" width="50.0%"><a href="https://www.flickr.com/photos/osr/40730146401/lightbox"><img src="https://live.staticflickr.com/4798/40730146401_7bb6d8d34c.jpg" srcset="https://live.staticflickr.com/4798/40730146401_7bb6d8d34c_b.jpg 1024w, https://live.staticflickr.com/4798/40730146401_7bb6d8d34c.jpg 400w" /></a></td> <td class="gallery-image col-2" width="50.0%"><a href="https://www.flickr.com/photos/osr/40717844421/lightbox"><img src="https://live.staticflickr.com/4797/40717844421_99d3247a43.jpg" srcset="https://live.staticflickr.com/4797/40717844421_99d3247a43_b.jpg 1024w, https://live.staticflickr.com/4797/40717844421_99d3247a43.jpg 400w" /></a></td> </tr> <tr markdown='1' class='gallery-caption-row'> <td class="gallery-caption col-1" width="50.0%"></td> <td class="gallery-caption col-2" width="50.0%"></td> <p></tr> </tbody></p> </table> <p>The video is 0-1 V analog on the coax cable and I probed the ribbon cables with the oscilloscope. the horizontal sync pulses are active-low, 31.4KHz and the vertical sync pulses are also active-low for two frames and every 60Hz. This directly matches <a href="https://en.wikipedia.org/wiki/Video_Graphics_Array#Signal_timings">VGA 640x480@60Hz</a> (confirmed by <a href="http://tinyvga.com/vga-timing/640x480@60Hz">tinyvga</a>) with a 25.175 MHz dot clock.</p> <table class="gallery"> <tbody markdown='1'> <tr> <td class="gallery-image col-1" width="50.0%"><a href="https://www.flickr.com/photos/osr/26863417978/lightbox"><img src="https://live.staticflickr.com/4789/26863417978_0fd5bc4fe9.jpg" srcset="https://live.staticflickr.com/4789/26863417978_0fd5bc4fe9_b.jpg 1024w, https://live.staticflickr.com/4789/26863417978_0fd5bc4fe9.jpg 400w" /></a></td> <td class="gallery-image col-2" width="50.0%"><a href="https://www.flickr.com/photos/osr/39840874265/lightbox"><img src="https://live.staticflickr.com/4801/39840874265_899946213e.jpg" srcset="https://live.staticflickr.com/4801/39840874265_899946213e_b.jpg 1024w, https://live.staticflickr.com/4801/39840874265_899946213e.jpg 400w" /></a></td> </tr> <tr markdown='1' class='gallery-caption-row'> <td class="gallery-caption col-1" width="50.0%"></td> <td class="gallery-caption col-2" width="50.0%"></td> <p></tr> </tbody></p> </table> <p>Based on my previous success with using the BeagleBone Black to drive a <a href="/Mac-SE_video">MacSE monochrome CRT</a>, I thought I could use the LVDS framing hardware to do the same for the MDT9100. This required revisiting the Device Tree hackery and dealing with the lack of documentation plus the unhelpful error messages from loading the DTB files. Here's the key part of the <code>display-timings</code> section of the <a href="https://github.com/osresearch/mdt9100/blob/master/MDT9100-TILCDC-00A0.dts"><code>MDT9100-TILCDC-00A0.dts</code></a> file:</p> <pre><code> display-timings { native-mode = &lt;&amp;timing0&gt;; timing0: 640x480@60 { hactive = &lt;640&gt;; vactive = &lt;480&gt;; hback-porch = &lt;48&gt;; // in pixels hfront-porch = &lt;16&gt;; // in pixels hsync-len = &lt;96&gt;; // in pixels vback-porch = &lt;33&gt;; // in pixels vfront-porch = &lt;10&gt;; // in pixels vsync-len = &lt;2&gt;; // in lines clock-frequency = &lt;25200000&gt;; // should be 25175000 hsync-active = &lt;0x0&gt;; // active low vsync-active = &lt;0x0&gt;; // active low linux,phandle = &lt;0x4&gt;; phandle = &lt;0x4&gt;; }; }; </code></pre> <p>There is something wrong with the <code>clock-frequency</code> field -- if it is set to the exact value for VGA the hardware outputs at 1Hz rather than 60Hz. No clue why that is happening, but the 25.2MHz is close enough for the non-multisync CRT.</p> <table class="gallery"> <tbody markdown='1'> <tr> <td class="gallery-image col-1" width="50.0%"><a href="https://www.flickr.com/photos/osr/39992408785/lightbox"><img src="https://live.staticflickr.com/792/39992408785_d7370f9c13.jpg" srcset="https://live.staticflickr.com/792/39992408785_d7370f9c13_b.jpg 1024w, https://live.staticflickr.com/792/39992408785_d7370f9c13.jpg 400w" /></a></td> <td class="gallery-image col-2" width="50.0%"><a href="https://www.flickr.com/photos/osr/27012525898/lightbox"><img src="https://live.staticflickr.com/801/27012525898_a9ddeddb85.jpg" srcset="https://live.staticflickr.com/801/27012525898_a9ddeddb85_b.jpg 1024w, https://live.staticflickr.com/801/27012525898_a9ddeddb85.jpg 400w" /></a></td> </tr> <tr markdown='1' class='gallery-caption-row'> <td class="gallery-caption col-1" width="50.0%"></td> <td class="gallery-caption col-2" width="50.0%"></td> <p></tr> </tbody></p> </table> <p>Using a 5-bit <a href="https://en.wikipedia.org/wiki/Resistor_ladder#R–2R_resistor_ladder_network_(digital_to_analog_conversion)">R2R resistor ladder</a> (similar to my first <a href="/Vector_display">Vector display</a>), the top bits of the green channel of the LCD output (<code>LCD6</code>-<code>LCD10</code>) can be merged into an analog value for feeding into the CRT. This <em>works</em>, although it isn't the most linear. Using the <code>LCD15</code> pins were problematic -- there seems to be a problem with the BBB's boot mode pins that would cause a hang if the R2R ladder was installed at boot time. The green channel doesn't seem to have this problem.</p> <p><a href="https://www.flickr.com/photos/osr/25887973127/lightbox"><img src="https://live.staticflickr.com/4779/25887973127_23c32b4393_b.jpg" srcset="https://live.staticflickr.com/4779/25887973127_23c32b4393_b.jpg 1024w, https://live.staticflickr.com/4779/25887973127_23c32b4393.jpg 400w" /></a> One of the units had a bad flyback transformer and finding a replacement transformer has been unsuccessful so far, so it might be replaced with an actual LCD. Until then this one has provided additional parts to the other units.</p> <h3 id="keyboard-interface">Keyboard interface</h3> <p><a href="https://www.flickr.com/photos/osr/40707759262/lightbox"><img src="https://live.staticflickr.com/4798/40707759262_54a93fe024_b.jpg" srcset="https://live.staticflickr.com/4798/40707759262_54a93fe024_b.jpg 1024w, https://live.staticflickr.com/4798/40707759262_54a93fe024.jpg 400w" /></a></p> <p>The qwerty section is on the left half of the ribbon cable, the function keys are on the CRT section. The function keys have not yet been mapped. Probing the twenty pins going to the qwerty section revealed a 10 column by 8 row matrix, with diodes on each key. Oddly the anodes of each diode connect to the rows, which requires pull-down resistors in the interface.. Pin 19 is the Caps Lock LED and pin 20 is the ground for the LED (but is otherwise unused).</p> <p>The matrix layout is:</p> <table> <thead> <tr> <th>0</th> <th>1</th> <th>2</th> <th>3</th> <th>4</th> <th>5</th> <th>6</th> <th>7</th> </tr> </thead> <tbody> <tr> <td>Row 0</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> </tr> <tr> <td>Col <strong>0</strong></td> <td>Esc</td> <td>Home</td> <td>Numlock</td> <td>PrtScr</td> <td>ScrLck</td> <td>Pause</td> <td>Insert</td> </tr> <tr> <td><strong>1</strong></td> <td><strong>?</strong></td> <td><strong>?</strong></td> <td><strong>?</strong></td> <td><strong>?</strong></td> <td><strong>?</strong></td> <td><strong>?</strong></td> <td><strong>?</strong></td> </tr> <tr> <td><strong>2</strong></td> <td>Main</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td><strong>3</strong></td> <td>8</td> <td>9</td> <td>0</td> <td>-</td> <td>=</td> <td>Backspace</td> <td>Page Up</td> </tr> <tr> <td><strong>4</strong></td> <td>Q</td> <td>W</td> <td>E</td> <td>R</td> <td>T</td> <td>Y</td> <td>U</td> </tr> <tr> <td><strong>5</strong></td> <td>O</td> <td>P</td> <td>[</td> <td>]</td> <td>Page Down</td> <td>CapsLock</td> <td>A</td> </tr> <tr> <td><strong>6</strong></td> <td>D</td> <td>F</td> <td>G</td> <td>H</td> <td>J</td> <td>K</td> <td>L</td> </tr> <tr> <td><strong>7</strong></td> <td>"</td> <td>Left Shift</td> <td>Z</td> <td>X</td> <td>C</td> <td>V</td> <td>B</td> </tr> <tr> <td><strong>8</strong></td> <td>M</td> <td>,</td> <td>.</td> <td>/</td> <td>Right Shift</td> <td>Up</td> <td>End</td> </tr> <tr> <td>9</td> <td>Alt</td> <td>SPACE</td> <td>~</td> <td>\</td> <td>Left</td> <td>Down</td> <td>Right</td> </tr> <tr> <td>10</td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> <td>F11</td> <td>F8</td> <td>F5</td> </tr> <tr> <td>11</td> <td>?</td> <td>?</td> <td>?</td> <td>F1</td> <td>F12</td> <td>F9</td> <td>F6</td> </tr> <tr> <td>12</td> <td>?</td> <td>?</td> <td>?</td> <td>F2</td> <td>Send</td> <td>F10</td> <td>F7</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table> <p>Six of the rows are shared with the function key section and <a href="https://github.com/osresearch/mdt9100/pull/15">@phooky mapped the additional five pins</a> going to the CRT section (columns 10-12, the large emergency lamp, a smaller RED LED).</p> <p>There is a row/matrix keyboard driver built with a Teensy 3.2 in the <a href="https://github.com/osresearch/mdt9100/blob/master/mdtkey/mdtkey.ino"><code>mdtkey.ino</code></a> file that makes the keyboard and function keypad appear as if it is a normal USB HID keyboard.</p> <h3 id="applications">Applications</h3> <p><a href="https://www.flickr.com/photos/osr/39073030870/lightbox"><img src="https://live.staticflickr.com/813/39073030870_5727d83c8b_b.jpg" srcset="https://live.staticflickr.com/813/39073030870_5727d83c8b_b.jpg 1024w, https://live.staticflickr.com/813/39073030870_5727d83c8b.jpg 400w" /></a> Everyone compares it to the <em>Fallout</em> <a href="https://en.wikipedia.org/wiki/Pipboy">Pipboy</a>, so I added a video playback of the <a href="https://www.youtube.com/watch?v=FZcCp_bwikg&amp;t=5s">Fallout 4 second screen app</a>. The <a href="https://learn.adafruit.com/raspberry-pi-pipboy-3000/overview">PypBoy 3000</a> software also runs on the BBB with the installation of the PyGame and a few other packages.</p> <p><a href="https://www.flickr.com/photos/osr/40885712301/lightbox"><img src="https://live.staticflickr.com/4788/40885712301_76a4318406_b.jpg" srcset="https://live.staticflickr.com/4788/40885712301_76a4318406_b.jpg 1024w, https://live.staticflickr.com/4788/40885712301_76a4318406.jpg 400w" /></a> Running <em>Doom</em> is the modern definition of <a href="https://en.wikipedia.org/wiki/Turing equivalence">Turing equivalence</a> and the prdoom packages install on the BBB with no problems.</p> <p><a href="https://www.flickr.com/photos/osr/40825042232/lightbox"><img src="https://live.staticflickr.com/4778/40825042232_e96384a712_b.jpg" srcset="https://live.staticflickr.com/4778/40825042232_e96384a712_b.jpg 1024w, https://live.staticflickr.com/4778/40825042232_e96384a712.jpg 400w" /></a> If anyone has any <em>Robocop</em> "Omni Consumer Products" themed applications, let me know!</p> <h3 id="radios">Radios</h3> <p><a href="https://www.flickr.com/photos/osr/25517012867/lightbox"><img src="https://live.staticflickr.com/4664/25517012867_58562e4550_b.jpg" srcset="https://live.staticflickr.com/4664/25517012867_58562e4550_b.jpg 1024w, https://live.staticflickr.com/4664/25517012867_58562e4550.jpg 400w" /></a></p> <p>I haven't had time to hack on the radios at all. I'm assume they are serial connected of some sort, although even with my <a href="/Category:Radio">amateur-extra rating</a> I'm not sure I can use them. If anyone wants to try them out, get in touch with me!</p> <h3 id="more-info">More info</h3> <p><a href="https://www.flickr.com/photos/osr/27012509338/lightbox"><img src="https://live.staticflickr.com/4785/27012509338_ee2435af69_b.jpg" srcset="https://live.staticflickr.com/4785/27012509338_ee2435af69_b.jpg 1024w, https://live.staticflickr.com/4785/27012509338_ee2435af69.jpg 400w" /></a></p> <ul> <li> <p><a href="https://github.com/osresearch/mdt9100"><code>github.com/osresearch/mdt9100</code></a> - Source for the beaglebone black DTS and Teensy keyboard interface</p> </li> <li> <p><a href="https://www.flickr.com/photos/osr/albums/72157690678915602">My flickr album</a></p> </li> <li><a href="https://www.flickr.com/photos/phooky/albums/72157692938701844">phooky's album</a>, with many good photos of the i386 board</li> <li><a href="http://www.cryptomuseum.com/crypto/motorola/mdt9100/index.htm">CryptoMuseum article on the MDT-9100</a></li> <li><a href="https://hackaday.com/2018/03/17/from-cop-car-data-terminal-to-retro-computer/">Hackaday "From cop data terminal to retro computer"</a></li> </ul> <p><a href="/Category:2018"><span style='color:white; background-color:red'>2018</a> <a href="/Category:Hacks"><span style='color:white; background-color:red'>Hacks</a> <a href="/Category:BeagleBone"><span style='color:white; background-color:red'>BeagleBone</a> <a href="/Category:Retrocomputing"><span style='color:white; background-color:red'>Retrocomputing</a></p> <hr> <div class="md-source-file"> <small> Last update: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">November 8, 2020</span> </small> </div> </article> </div> </div> </main> <footer class="md-footer"> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> <div class="md-social"> <a href="https://twitter.com/qrs" target="_blank" rel="noopener" title="twitter.com" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> </a> <a href="https://flickr.com/osr" target="_blank" rel="noopener" title="flickr.com" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"/></svg> </a> <a href="https://github.com/osresearch" target="_blank" rel="noopener" title="github.com" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </a> <a href="https://social.v.st/@th" target="_blank" rel="noopener" title="social.v.st" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg> </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10