<!DOCTYPE html>
<html lang="en" data-content_root="../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>2. Amiga joysticks — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css?v=3918102e" />
<script src="../../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="3. Apple Touchpad Driver (appletouch)" href="appletouch.html" />
<link rel="prev" title="1. ALPS Touchpad Protocol" href="alps.html" />
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../../index.html">
<img class="logo" src="../../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../subsystem-apis.html#human-interfaces">Human interfaces</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="../index.html">Input Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../hid/index.html">Human Interface Devices (HID)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../sound/index.html">Sound Subsystem Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../gpu/index.html">GPU Driver Developer’s Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../fb/index.html">Frame Buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../leds/index.html">LEDs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/input/devices/amijoy.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="amiga-joysticks">
<h1><span class="section-number">2. </span>Amiga joysticks<a class="headerlink" href="#amiga-joysticks" title="Link to this heading">¶</a></h1>
<section id="pinouts">
<h2><span class="section-number">2.1. </span>Pinouts<a class="headerlink" href="#pinouts" title="Link to this heading">¶</a></h2>
<section id="amiga-4-joystick-parallel-port-extension">
<h3><span class="section-number">2.1.1. </span>Amiga 4-joystick parallel port extension<a class="headerlink" href="#amiga-4-joystick-parallel-port-extension" title="Link to this heading">¶</a></h3>
<p>Parallel port pins:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Pin</p></th>
<th class="head"><p>Meaning</p></th>
<th class="head"><p>Pin</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>2</p></td>
<td><p>Up1</p></td>
<td><p>6</p></td>
<td><p>Up2</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>Down1</p></td>
<td><p>7</p></td>
<td><p>Down2</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>Left1</p></td>
<td><p>8</p></td>
<td><p>Left2</p></td>
</tr>
<tr class="row-odd"><td><p>5</p></td>
<td><p>Right1</p></td>
<td><p>9</p></td>
<td><p>Right2</p></td>
</tr>
<tr class="row-even"><td><p>13</p></td>
<td><p>Fire1</p></td>
<td><p>11</p></td>
<td><p>Fire2</p></td>
</tr>
<tr class="row-odd"><td><p>19</p></td>
<td><p>Gnd1</p></td>
<td><p>18</p></td>
<td><p>Gnd2</p></td>
</tr>
</tbody>
</table>
</section>
<section id="amiga-digital-joystick">
<h3><span class="section-number">2.1.2. </span>Amiga digital joystick<a class="headerlink" href="#amiga-digital-joystick" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Pin</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1</p></td>
<td><p>Up</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>Down</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>Left</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>Right</p></td>
</tr>
<tr class="row-even"><td><p>5</p></td>
<td><p>n/c</p></td>
</tr>
<tr class="row-odd"><td><p>6</p></td>
<td><p>Fire button</p></td>
</tr>
<tr class="row-even"><td><p>7</p></td>
<td><p>+5V (50mA)</p></td>
</tr>
<tr class="row-odd"><td><p>8</p></td>
<td><p>Gnd</p></td>
</tr>
<tr class="row-even"><td><p>9</p></td>
<td><p>Thumb button</p></td>
</tr>
</tbody>
</table>
</section>
<section id="amiga-mouse">
<h3><span class="section-number">2.1.3. </span>Amiga mouse<a class="headerlink" href="#amiga-mouse" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Pin</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1</p></td>
<td><p>V-pulse</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>H-pulse</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>VQ-pulse</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>HQ-pulse</p></td>
</tr>
<tr class="row-even"><td><p>5</p></td>
<td><p>Middle button</p></td>
</tr>
<tr class="row-odd"><td><p>6</p></td>
<td><p>Left button</p></td>
</tr>
<tr class="row-even"><td><p>7</p></td>
<td><p>+5V (50mA)</p></td>
</tr>
<tr class="row-odd"><td><p>8</p></td>
<td><p>Gnd</p></td>
</tr>
<tr class="row-even"><td><p>9</p></td>
<td><p>Right button</p></td>
</tr>
</tbody>
</table>
</section>
<section id="amiga-analog-joystick">
<h3><span class="section-number">2.1.4. </span>Amiga analog joystick<a class="headerlink" href="#amiga-analog-joystick" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Pin</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1</p></td>
<td><p>Top button</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>Top2 button</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>Trigger button</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>Thumb button</p></td>
</tr>
<tr class="row-even"><td><p>5</p></td>
<td><p>Analog X</p></td>
</tr>
<tr class="row-odd"><td><p>6</p></td>
<td><p>n/c</p></td>
</tr>
<tr class="row-even"><td><p>7</p></td>
<td><p>+5V (50mA)</p></td>
</tr>
<tr class="row-odd"><td><p>8</p></td>
<td><p>Gnd</p></td>
</tr>
<tr class="row-even"><td><p>9</p></td>
<td><p>Analog Y</p></td>
</tr>
</tbody>
</table>
</section>
<section id="amiga-lightpen">
<h3><span class="section-number">2.1.5. </span>Amiga lightpen<a class="headerlink" href="#amiga-lightpen" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Pin</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1</p></td>
<td><p>n/c</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>n/c</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>n/c</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>n/c</p></td>
</tr>
<tr class="row-even"><td><p>5</p></td>
<td><p>Touch button</p></td>
</tr>
<tr class="row-odd"><td><p>6</p></td>
<td><p>/Beamtrigger</p></td>
</tr>
<tr class="row-even"><td><p>7</p></td>
<td><p>+5V (50mA)</p></td>
</tr>
<tr class="row-odd"><td><p>8</p></td>
<td><p>Gnd</p></td>
</tr>
<tr class="row-even"><td><p>9</p></td>
<td><p>Stylus button</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="register-addresses">
<h2><span class="section-number">2.2. </span>Register addresses<a class="headerlink" href="#register-addresses" title="Link to this heading">¶</a></h2>
<section id="joy0dat-joy1dat">
<h3><span class="section-number">2.2.1. </span>JOY0DAT/JOY1DAT<a class="headerlink" href="#joy0dat-joy1dat" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>NAME</p></th>
<th class="head"><p>rev</p></th>
<th class="head"><p>ADDR</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>chip</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>JOY0DAT</p></td>
<td></td>
<td><p>00A</p></td>
<td><p>R</p></td>
<td><p>Denise</p></td>
<td><p>Joystick-mouse 0 data (left vert., horiz.)</p></td>
</tr>
<tr class="row-odd"><td><p>JOY1DAT</p></td>
<td></td>
<td><p>00C</p></td>
<td><p>R</p></td>
<td><p>Denise</p></td>
<td><p>Joystick-mouse 1 data (right vert., horiz.)</p></td>
</tr>
</tbody>
</table>
<blockquote>
<div><p>These addresses each read a 16 bit register. These in turn
are loaded from the MDAT serial stream and are clocked in on
the rising edge of SCLK. MLD output is used to parallel load
the external parallel-to-serial converter. This in turn is
loaded with the 4 quadrature inputs from each of two game
controller ports (8 total) plus 8 miscellaneous control bits
which are new for LISA and can be read in upper 8 bits of
LISAID.</p>
<p>Register bits are as follows:</p>
<ul class="simple">
<li><p>Mouse counter usage (pins 1,3 =Yclock, pins 2,4 =Xclock)</p></li>
</ul>
</div></blockquote>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>BIT#</p></th>
<th class="head"><p>15</p></th>
<th class="head"><p>14</p></th>
<th class="head"><p>13</p></th>
<th class="head"><p>12</p></th>
<th class="head"><p>11</p></th>
<th class="head"><p>10</p></th>
<th class="head"><p>09</p></th>
<th class="head"><p>08</p></th>
<th class="head"><p>07</p></th>
<th class="head"><p>06</p></th>
<th class="head"><p>05</p></th>
<th class="head"><p>04</p></th>
<th class="head"><p>03</p></th>
<th class="head"><p>02</p></th>
<th class="head"><p>01</p></th>
<th class="head"><p>00</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>JOY0DAT</p></td>
<td><p>Y7</p></td>
<td><p>Y6</p></td>
<td><p>Y5</p></td>
<td><p>Y4</p></td>
<td><p>Y3</p></td>
<td><p>Y2</p></td>
<td><p>Y1</p></td>
<td><p>Y0</p></td>
<td><p>X7</p></td>
<td><p>X6</p></td>
<td><p>X5</p></td>
<td><p>X4</p></td>
<td><p>X3</p></td>
<td><p>X2</p></td>
<td><p>X1</p></td>
<td><p>X0</p></td>
</tr>
<tr class="row-odd"><td><p>JOY1DAT</p></td>
<td><p>Y7</p></td>
<td><p>Y6</p></td>
<td><p>Y5</p></td>
<td><p>Y4</p></td>
<td><p>Y3</p></td>
<td><p>Y2</p></td>
<td><p>Y1</p></td>
<td><p>Y0</p></td>
<td><p>X7</p></td>
<td><p>X6</p></td>
<td><p>X5</p></td>
<td><p>X4</p></td>
<td><p>X3</p></td>
<td><p>X2</p></td>
<td><p>X1</p></td>
<td><p>X0</p></td>
</tr>
</tbody>
</table>
<blockquote>
<div><p>0=LEFT CONTROLLER PAIR, 1=RIGHT CONTROLLER PAIR.
(4 counters total). The bit usage for both left and right
addresses is shown below. Each 6 bit counter (Y7-Y2,X7-X2) is
clocked by 2 of the signals input from the mouse serial
stream. Starting with first bit received:</p>
<blockquote>
<div><table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Serial</p></th>
<th class="head"><p>Bit Name</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>0</p></td>
<td><p>M0H</p></td>
<td><p>JOY0DAT Horizontal Clock</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>M0HQ</p></td>
<td><p>JOY0DAT Horizontal Clock (quadrature)</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>M0V</p></td>
<td><p>JOY0DAT Vertical Clock</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>M0VQ</p></td>
<td><p>JOY0DAT Vertical Clock (quadrature)</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>M1V</p></td>
<td><p>JOY1DAT Horizontal Clock</p></td>
</tr>
<tr class="row-odd"><td><p>5</p></td>
<td><p>M1VQ</p></td>
<td><p>JOY1DAT Horizontal Clock (quadrature)</p></td>
</tr>
<tr class="row-even"><td><p>6</p></td>
<td><p>M1V</p></td>
<td><p>JOY1DAT Vertical Clock</p></td>
</tr>
<tr class="row-odd"><td><p>7</p></td>
<td><p>M1VQ</p></td>
<td><p>JOY1DAT Vertical Clock (quadrature)</p></td>
</tr>
</tbody>
</table>
<p>Bits 1 and 0 of each counter (Y1-Y0,X1-X0) may be
read to determine the state of the related input signal pair.
This allows these pins to double as joystick switch inputs.
Joystick switch closures can be deciphered as follows:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Directions</p></th>
<th class="head"><p>Pin#</p></th>
<th class="head"><p>Counter bits</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Forward</p></td>
<td><p>1</p></td>
<td><p>Y1 xor Y0 (BIT#09 xor BIT#08)</p></td>
</tr>
<tr class="row-odd"><td><p>Left</p></td>
<td><p>3</p></td>
<td><p>Y1</p></td>
</tr>
<tr class="row-even"><td><p>Back</p></td>
<td><p>2</p></td>
<td><p>X1 xor X0 (BIT#01 xor BIT#00)</p></td>
</tr>
<tr class="row-odd"><td><p>Right</p></td>
<td><p>4</p></td>
<td><p>X1</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
</div></blockquote>
</section>
<section id="joytest">
<h3><span class="section-number">2.2.2. </span>JOYTEST<a class="headerlink" href="#joytest" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>NAME</p></th>
<th class="head"><p>rev</p></th>
<th class="head"><p>ADDR</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>chip</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>JOYTEST</p></td>
<td></td>
<td><p>036</p></td>
<td><p>W</p></td>
<td><p>Denise</p></td>
<td><p>Write to all 4 joystick-mouse counters at once.</p></td>
</tr>
</tbody>
</table>
<blockquote>
<div><p>Mouse counter write test data:</p>
</div></blockquote>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>BIT#</p></th>
<th class="head"><p>15</p></th>
<th class="head"><p>14</p></th>
<th class="head"><p>13</p></th>
<th class="head"><p>12</p></th>
<th class="head"><p>11</p></th>
<th class="head"><p>10</p></th>
<th class="head"><p>09</p></th>
<th class="head"><p>08</p></th>
<th class="head"><p>07</p></th>
<th class="head"><p>06</p></th>
<th class="head"><p>05</p></th>
<th class="head"><p>04</p></th>
<th class="head"><p>03</p></th>
<th class="head"><p>02</p></th>
<th class="head"><p>01</p></th>
<th class="head"><p>00</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>JOYxDAT</p></td>
<td><p>Y7</p></td>
<td><p>Y6</p></td>
<td><p>Y5</p></td>
<td><p>Y4</p></td>
<td><p>Y3</p></td>
<td><p>Y2</p></td>
<td><p>xx</p></td>
<td><p>xx</p></td>
<td><p>X7</p></td>
<td><p>X6</p></td>
<td><p>X5</p></td>
<td><p>X4</p></td>
<td><p>X3</p></td>
<td><p>X2</p></td>
<td><p>xx</p></td>
<td><p>xx</p></td>
</tr>
<tr class="row-odd"><td><p>JOYxDAT</p></td>
<td><p>Y7</p></td>
<td><p>Y6</p></td>
<td><p>Y5</p></td>
<td><p>Y4</p></td>
<td><p>Y3</p></td>
<td><p>Y2</p></td>
<td><p>xx</p></td>
<td><p>xx</p></td>
<td><p>X7</p></td>
<td><p>X6</p></td>
<td><p>X5</p></td>
<td><p>X4</p></td>
<td><p>X3</p></td>
<td><p>X2</p></td>
<td><p>xx</p></td>
<td><p>xx</p></td>
</tr>
</tbody>
</table>
</section>
<section id="pot0dat-pot1dat">
<h3><span class="section-number">2.2.3. </span>POT0DAT/POT1DAT<a class="headerlink" href="#pot0dat-pot1dat" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>NAME</p></th>
<th class="head"><p>rev</p></th>
<th class="head"><p>ADDR</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>chip</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>POT0DAT</p></td>
<td><p>h</p></td>
<td><p>012</p></td>
<td><p>R</p></td>
<td><p>Paula</p></td>
<td><p>Pot counter data left pair (vert., horiz.)</p></td>
</tr>
<tr class="row-odd"><td><p>POT1DAT</p></td>
<td><p>h</p></td>
<td><p>014</p></td>
<td><p>R</p></td>
<td><p>Paula</p></td>
<td><p>Pot counter data right pair (vert., horiz.)</p></td>
</tr>
</tbody>
</table>
<blockquote>
<div><p>These addresses each read a pair of 8 bit pot counters.
(4 counters total). The bit assignment for both
addresses is shown below. The counters are stopped by signals
from 2 controller connectors (left-right) with 2 pins each.</p>
</div></blockquote>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>BIT#</p></th>
<th class="head"><p>15</p></th>
<th class="head"><p>14</p></th>
<th class="head"><p>13</p></th>
<th class="head"><p>12</p></th>
<th class="head"><p>11</p></th>
<th class="head"><p>10</p></th>
<th class="head"><p>09</p></th>
<th class="head"><p>08</p></th>
<th class="head"><p>07</p></th>
<th class="head"><p>06</p></th>
<th class="head"><p>05</p></th>
<th class="head"><p>04</p></th>
<th class="head"><p>03</p></th>
<th class="head"><p>02</p></th>
<th class="head"><p>01</p></th>
<th class="head"><p>00</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>RIGHT</p></td>
<td><p>Y7</p></td>
<td><p>Y6</p></td>
<td><p>Y5</p></td>
<td><p>Y4</p></td>
<td><p>Y3</p></td>
<td><p>Y2</p></td>
<td><p>Y1</p></td>
<td><p>Y0</p></td>
<td><p>X7</p></td>
<td><p>X6</p></td>
<td><p>X5</p></td>
<td><p>X4</p></td>
<td><p>X3</p></td>
<td><p>X2</p></td>
<td><p>X1</p></td>
<td><p>X0</p></td>
</tr>
<tr class="row-odd"><td><p>LEFT</p></td>
<td><p>Y7</p></td>
<td><p>Y6</p></td>
<td><p>Y5</p></td>
<td><p>Y4</p></td>
<td><p>Y3</p></td>
<td><p>Y2</p></td>
<td><p>Y1</p></td>
<td><p>Y0</p></td>
<td><p>X7</p></td>
<td><p>X6</p></td>
<td><p>X5</p></td>
<td><p>X4</p></td>
<td><p>X3</p></td>
<td><p>X2</p></td>
<td><p>X1</p></td>
<td><p>X0</p></td>
</tr>
</tbody>
</table>
<blockquote>
<div><table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head" colspan="4"><p>CONNECTORS</p></th>
<th class="head"><p>PAULA</p></th>
</tr>
<tr class="row-even"><th class="head"><p>Loc.</p></th>
<th class="head"><p>Dir.</p></th>
<th class="head"><p>Sym</p></th>
<th class="head"><p>pin</p></th>
<th class="head"><p>pin</p></th>
</tr>
</thead>
<tbody>
<tr class="row-odd"><td><p>RIGHT</p></td>
<td><p>Y</p></td>
<td><p>RX</p></td>
<td><p>9</p></td>
<td><p>33</p></td>
</tr>
<tr class="row-even"><td><p>RIGHT</p></td>
<td><p>X</p></td>
<td><p>RX</p></td>
<td><p>5</p></td>
<td><p>32</p></td>
</tr>
<tr class="row-odd"><td><p>LEFT</p></td>
<td><p>Y</p></td>
<td><p>LY</p></td>
<td><p>9</p></td>
<td><p>36</p></td>
</tr>
<tr class="row-even"><td><p>LEFT</p></td>
<td><p>X</p></td>
<td><p>LX</p></td>
<td><p>5</p></td>
<td><p>35</p></td>
</tr>
</tbody>
</table>
<p>With normal (NTSC or PAL) horiz. line rate, the pots will
give a full scale (FF) reading with about 500k ohm in one
frame time. With proportionally faster horiz. line times,
the counters will count proportionally faster.
This should be noted when doing variable beam displays.</p>
</div></blockquote>
</section>
<section id="potgo">
<h3><span class="section-number">2.2.4. </span>POTGO<a class="headerlink" href="#potgo" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>NAME</p></th>
<th class="head"><p>rev</p></th>
<th class="head"><p>ADDR</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>chip</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>POTGO</p></td>
<td></td>
<td><p>034</p></td>
<td><p>W</p></td>
<td><p>Paula</p></td>
<td><p>Pot port (4 bit) bi-direction and data, and pot
counter start.</p></td>
</tr>
</tbody>
</table>
</section>
<section id="potinp">
<h3><span class="section-number">2.2.5. </span>POTINP<a class="headerlink" href="#potinp" title="Link to this heading">¶</a></h3>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>NAME</p></th>
<th class="head"><p>rev</p></th>
<th class="head"><p>ADDR</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>chip</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>POTINP</p></td>
<td></td>
<td><p>016</p></td>
<td><p>R</p></td>
<td><p>Paula</p></td>
<td><p>Pot pin data read</p></td>
</tr>
</tbody>
</table>
<blockquote>
<div><p>This register controls a 4 bit bi-direction I/O port
that shares the same 4 pins as the 4 pot counters above.</p>
<blockquote>
<div><table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>BIT#</p></th>
<th class="head"><p>FUNCTION</p></th>
<th class="head"><p>DESCRIPTION</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>15</p></td>
<td><p>OUTRY</p></td>
<td><p>Output enable for Paula pin 33</p></td>
</tr>
<tr class="row-odd"><td><p>14</p></td>
<td><p>DATRY</p></td>
<td><p>I/O data Paula pin 33</p></td>
</tr>
<tr class="row-even"><td><p>13</p></td>
<td><p>OUTRX</p></td>
<td><p>Output enable for Paula pin 32</p></td>
</tr>
<tr class="row-odd"><td><p>12</p></td>
<td><p>DATRX</p></td>
<td><p>I/O data Paula pin 32</p></td>
</tr>
<tr class="row-even"><td><p>11</p></td>
<td><p>OUTLY</p></td>
<td><p>Out put enable for Paula pin 36</p></td>
</tr>
<tr class="row-odd"><td><p>10</p></td>
<td><p>DATLY</p></td>
<td><p>I/O data Paula pin 36</p></td>
</tr>
<tr class="row-even"><td><p>09</p></td>
<td><p>OUTLX</p></td>
<td><p>Output enable for Paula pin 35</p></td>
</tr>
<tr class="row-odd"><td><p>08</p></td>
<td><p>DATLX</p></td>
<td><p>I/O data Paula pin 35</p></td>
</tr>
<tr class="row-even"><td><p>07-01</p></td>
<td><p>X</p></td>
<td><p>Not used</p></td>
</tr>
<tr class="row-odd"><td><p>00</p></td>
<td><p>START</p></td>
<td><p>Start pots (dump capacitors, start counters)</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
</div></blockquote>
</section>
</section>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../../_sources/input/devices/amijoy.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>