Herramientas de usuario

Herramientas del sitio


de:hardware:perifericos:kempston_joystick_clones

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
de:hardware:perifericos:kempston_joystick_clones [2026/05/15 08:05] jesusde:hardware:perifericos:kempston_joystick_clones [2026/05/25 16:12] (actual) jesus
Línea 3: Línea 3:
 <html> <html>
 <style> <style>
-  /* --- RETRO CRT VISUAL ENGINE --- */+  /* --- CRT RETRO VISUAL ENGINE --- */
   .pcw-monitor-ultra { background-color: #000b00; border: 12px solid #2a2a2a; border-radius: 15px; padding: 25px; margin: 25px 0; font-family: 'Courier New', Courier, monospace; position: relative; overflow: hidden; box-shadow: inset 0 0 60px rgba(0,255,0,0.15), 0 10px 30px rgba(0,0,0,0.7); }   .pcw-monitor-ultra { background-color: #000b00; border: 12px solid #2a2a2a; border-radius: 15px; padding: 25px; margin: 25px 0; font-family: 'Courier New', Courier, monospace; position: relative; overflow: hidden; box-shadow: inset 0 0 60px rgba(0,255,0,0.15), 0 10px 30px rgba(0,0,0,0.7); }
   .pcw-monitor-ultra::after { content: " "; position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.15) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03)); background-size: 100% 3px, 2px 100%; z-index: 2; pointer-events: none; animation: flickering 0.15s infinite; }   .pcw-monitor-ultra::after { content: " "; position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.15) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03)); background-size: 100% 3px, 2px 100%; z-index: 2; pointer-events: none; animation: flickering 0.15s infinite; }
Línea 13: Línea 13:
   .content-body { position: relative; z-index: 3; color: #00ff00; line-height: 1.6; text-align: justify; }   .content-body { position: relative; z-index: 3; color: #00ff00; line-height: 1.6; text-align: justify; }
   .content-body b, .content-body strong { color: #00ff00; font-weight: bold; }   .content-body b, .content-body strong { color: #00ff00; font-weight: bold; }
 +  .content-body ul { list-style: square; margin-top: 10px; padding-left: 20px; }
 +  .content-body ul li { color: #00ff00; }
   .pcw-subtitle-box { background-color: #00ff00; color: #000b00 !important; padding: 5px 12px; font-weight: bold; display: inline-block; margin: 20px 0 15px 0; text-transform: uppercase; position: relative; z-index: 3; font-family: 'Courier New', Courier, monospace; }   .pcw-subtitle-box { background-color: #00ff00; color: #000b00 !important; padding: 5px 12px; font-weight: bold; display: inline-block; margin: 20px 0 15px 0; text-transform: uppercase; position: relative; z-index: 3; font-family: 'Courier New', Courier, monospace; }
      
-  /* --- GALLERIES AND CARDS --- */ +  /* --- GALERIEN UND KARTEN --- */ 
-  .drive-grid-container { display: flex; flex-direction: column; gap: 20px; margin: 25px 0; position: relative; z-index: 3; align-items: center; justify-content: center; width: 100%; }+  .drive-grid-container { display: flex; flex-direction: column; gap: 20px; margin: 25px 0; position: relative; z-index: 3; align-items: center; justify-content: center; }
   .drive-card { border: 1px solid #004400; background: rgba(0, 15, 0, 0.6); padding: 20px; display: flex; flex-direction: column; gap: 15px; transition: 0.2s; align-items: center; width: 100%; max-width: 900px; box-sizing: border-box; }   .drive-card { border: 1px solid #004400; background: rgba(0, 15, 0, 0.6); padding: 20px; display: flex; flex-direction: column; gap: 15px; transition: 0.2s; align-items: center; width: 100%; max-width: 900px; box-sizing: border-box; }
   .drive-card:hover { border-color: #00ff00; background: rgba(0, 30, 0, 0.8); }   .drive-card:hover { border-color: #00ff00; background: rgba(0, 30, 0, 0.8); }
      
-  /* --- FORCED IMAGES IN A SINGLE HORIZONTAL ROW --- */+  /* --- AUSRICHTUNG VON BILDERN IN EINER REIHE --- */
   .gallery-four-inline { display: flex; gap: 12px; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; width: 100%; }   .gallery-four-inline { display: flex; gap: 12px; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; width: 100%; }
   .gallery-four-inline .img-frame { flex: 1; min-width: 0; }   .gallery-four-inline .img-frame { flex: 1; min-width: 0; }
   .gallery-four-inline .img-frame img { max-width: 100%; height: auto; max-height: 160px; }   .gallery-four-inline .img-frame img { max-width: 100%; height: auto; max-height: 160px; }
  
-  /* --- GENERAL IMAGE FRAMES --- */+  /* --- ALLGEMEINE RAHMEN --- */
   .img-frame { border: 2px solid #00ff00; padding: 6px; background: #000; text-align: center; display: inline-flex; flex-direction: column; align-items: center; box-sizing: border-box; transition: 0.3s ease; }   .img-frame { border: 2px solid #00ff00; padding: 6px; background: #000; text-align: center; display: inline-flex; flex-direction: column; align-items: center; box-sizing: border-box; transition: 0.3s ease; }
   .img-frame:hover { transform: scale(1.05); border-color: #00ff00; box-shadow: 0 0 15px rgba(0, 255, 0, 0.4); }   .img-frame:hover { transform: scale(1.05); border-color: #00ff00; box-shadow: 0 0 15px rgba(0, 255, 0, 0.4); }
Línea 31: Línea 33:
   .img-label { font-size: 0.72em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 100%; }   .img-label { font-size: 0.72em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 100%; }
      
-  /* --- LIGHTBOX MODAL SETUP: STRICT NATIVE REAL SIZE --- */+  /* --- MODAL DE LIGHTBOX MIT BEGRENZUNGS-BYPASS FÜR REALE GRÖSSE --- */
   .modal-pcw { display: none; position: fixed; z-index: 9999; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 10, 0, 0.95); overflow: auto; }   .modal-pcw { display: none; position: fixed; z-index: 9999; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 10, 0, 0.95); overflow: auto; }
   .modal-pcw:target { display: block; text-align: center; }   .modal-pcw:target { display: block; text-align: center; }
   .close-overlay { display: inline-block; min-width: 100%; min-height: 100%; padding: 40px; box-sizing: border-box; text-decoration: none !important; cursor: zoom-out; vertical-align: middle; }   .close-overlay { display: inline-block; min-width: 100%; min-height: 100%; padding: 40px; box-sizing: border-box; text-decoration: none !important; cursor: zoom-out; vertical-align: middle; }
   .modal-content { border: 4px solid #00ff00; box-shadow: 0 0 50px rgba(0, 255, 0, 0.5); margin: 5vh auto; display: inline-block; max-width: none !important; max-height: none !important; height: auto !important; }   .modal-content { border: 4px solid #00ff00; box-shadow: 0 0 50px rgba(0, 255, 0, 0.5); margin: 5vh auto; display: inline-block; max-width: none !important; max-height: none !important; height: auto !important; }
 +
 +  /* Technische Tabellen */
 +  .tech-table { width: 100%; border-collapse: collapse; margin: 15px 0; background: rgba(0, 20, 0, 0.4); z-index: 3; position: relative; }
 +  .tech-table th, .tech-table td { border: 1px solid #004400; padding: 8px; text-align: left; font-family: 'Courier New', Courier, monospace; font-size: 0.9em; color: #00ff00; }
 +  .tech-table th { background: rgba(0, 60, 0, 0.6); color: #00ff00; font-weight: bold; text-transform: uppercase; }
 </style> </style>
  
-<!-- INTERACTIVE MODAL LIGHTBOX LAYERS -->+<!-- INTERAKTIVE LIGHTBOX-LAYER -->
 <div id="c1" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Top.jpg"></a></div> <div id="c1" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Top.jpg"></a></div>
 <div id="c2" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Bottom.jpg"></a></div> <div id="c2" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Bottom.jpg"></a></div>
Línea 48: Línea 55:
      
   <div class="content-body">   <div class="content-body">
-    <p>Kopien oder Nachbauten des offiziellen </html>[[de:Kempston Joystick]]<html>-Interfaces.</p>+    <p>Kopien oder Klone des offiziellen Interfaces </html>[[de:hardware:perifericos:kempston_joystick]]<html>.</p>
   </div>   </div>
  
Línea 55: Línea 62:
   <div class="content-body" style="margin-bottom: -10px;">   <div class="content-body" style="margin-bottom: -10px;">
     <ul>     <ul>
-      <li><strong>Hersteller / Herkunft:</strong> Unbekannt</li>+      <li><strong>Hersteller / Herkunft:</strong> Siren Software (Manchester, Vereinigtes Königreich) [Identifiziert durch PCB-Hardware-Erhaltungsanalyse]</li>
     </ul>     </ul>
   </div>   </div>
Línea 61: Línea 68:
   <div class="drive-grid-container">   <div class="drive-grid-container">
     <div class="drive-card">     <div class="drive-card">
 +      <!-- VIER BILDER IN EINER REIHE BIS ZUR LIGHTBOX-ERWEITERUNG -->
       <div class="gallery-four-inline">       <div class="gallery-four-inline">
         <div class="img-frame"><a href="#c1"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Top.jpg"></a><span class="img-label">Gehäuse Oben</span></div>         <div class="img-frame"><a href="#c1"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Top.jpg"></a><span class="img-label">Gehäuse Oben</span></div>
         <div class="img-frame"><a href="#c2"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Bottom.jpg"></a><span class="img-label">Gehäuse Unten</span></div>         <div class="img-frame"><a href="#c2"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_Bottom.jpg"></a><span class="img-label">Gehäuse Unten</span></div>
-        <div class="img-frame"><a href="#c3"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_PCB_Bottom.jpg"></a><span class="img-label">Platine Unterseite</span></div> +        <div class="img-frame"><a href="#c3"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_PCB_Bottom.jpg"></a><span class="img-label">Platine Unten</span></div> 
-        <div class="img-frame"><a href="#c4"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_PCB_Top.jpg"></a><span class="img-label">Platine Oberseite</span></div>+        <div class="img-frame"><a href="#c4"><img src="/lib/exe/fetch.php?media=hardware:perifericos:KempstonJoystickInterfaceClone_01_PCB_Top.jpg"></a><span class="img-label">Platine Oben</span></div>
       </div>       </div>
     </div>     </div>
 +  </div>
 +  <div class="pcw-subtitle-box">Beschreibung, Kontext und Erhaltungsgeschichte</div>
 +  <div class="content-body">
 +    <p>Das auf dieser Seite abgebildete Klon-Modell entspricht exakt dem **„Siren Software Joystick Interface“**, das in den späten 1980er Jahren im Vereinigten Königreich von dem in Manchester ansässigen Hardware- und Softwarehaus **Siren Software** (geleitet von Philip und Michael Davenport) aktiv vermarktet wurde. Das Peripheriegerät war damals außerordentlich populär, da es in einer auffälligen, leuchtend grünen Verpackung mit weißer Aufschrift ausgeliefert wurde, was es zum am weitesten verbreiteten Kempston-kompatiblen Klon für die Amstrad PCW 8256- und 8512-Reihe machte.</p>
 +    <p>Da Amstrad ab Werk auf Gamecontroller-Anschlüsse verzichtete, um die professionellen Produktionskosten zu senken, füllte Siren Software diese Marktlücke mit einem kostengünstigen und robusten Interface, das direkt in den seitlichen 50-poligen Erweiterungsbus gesteckt wurde. Sein großer Wettbewerbsvorteil war das rein elektronische <em>Plug-and-Play</em>-Design: Es benötigte keinerlei Software oder residente Treiber innerhalb des CP/M-Betriebssystems. Darüber hinaus implementierte der Hersteller einen genialen physischen Hardware-Hack, indem er <strong>zwei parallel in Spiegelkonfiguration verdrahtete DE-9-Anschlüsse</strong> in das Gehäuse integrierte. Dies ermöglichte den gleichzeitigen Anschluss von zwei Joysticks für kooperative Mehrspieler-Spiele (wie <em>Match Day II</em>), die sich die gleiche Datenbusadresse elektrisch parallel teilten.</p>
   </div>   </div>
  
 +  <div class="pcw-subtitle-box">Elektronische Architektur und Mapping des I/O-Ports 09Fh</div>
 +  <div class="content-body">
 +    <p>Auf der Ebene der traditionellen Logikbausteine der TTL-Serie (74xx), die auf der oberen und unteren Platine sichtbar sind, fungiert das Interface als direktes elektronisches Gateway zum Zilog Z80-Mikroprozessor:</p>
 +    <ul>
 +      <li><strong>I/O-Port-Mapping:</strong> Die digitale Logik des Adressdecoders überwacht die Steuerleitungen des PCW und wird exklusiv aktiv, wenn sie die standardmäßige feste Kempston-Ein-/Ausgabeadresse liest: <code>09Fh</code> (entspricht <code>159</code> im Dezimalformat).</li>
 +      <li><strong>Active-High-Logik (1):</strong> Im Gegensatz zu anderen Joystick-Standards auf dieser Plattform (wie Cascade oder Spectravideo, die mit inverser Active-Low-Logik arbeiten), geben der Kempston-Standard und dieser Klon von Siren Software eine <strong>binäre '1'</strong> aus, wenn eine physische Aktion ausgeführt wird. Im Ruhezustand gibt der Port <code>09Fh</code> ein sauberes <code>00h</code>-Byte zurück. Der Tri-State-Treiber der Platine öffnet den Kanal und legt den Status der mechanischen Schalter direkt auf den PCW-Datenbus, sobald die Software den Lesebefehl <code>IN A, (09Fh)</code> ausführt.</li>
 +    </ul>
 +
 +    <p><strong>Bit-Mapping-Matrix auf Port 09Fh:</strong></p>
 +    <table class="tech-table">
 +      <thead>
 +        <tr>
 +          <th>Bus-Bit</th>
 +          <th>Physischer Active-High-Zustand (1)</th>
 +          <th>Zugewiesene Joystick-Funktion (Atari-Standard)</th>
 +          <th>Physischer Pin DE-9-Anschluss</th>
 +        </tr>
 +      </thead>
 +      <tbody>
 +        <tr>
 +          <td><strong>Bit 7</strong></td>
 +          <td>0 (Fest)</td>
 +          <td>Ungenutzte Leitung / Reserviert</td>
 +          <td>—</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 6</strong></td>
 +          <td>0 (Fest)</td>
 +          <td>Ungenutzte Leitung / Reserviert</td>
 +          <td>—</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 5</strong></td>
 +          <td>0 (Fest)</td>
 +          <td>Ungenutzte Leitung / Reserviert</td>
 +          <td>—</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 4</strong></td>
 +          <td>1</td>
 +          <td>Hauptfeuerknopf (<strong>FIRE</strong>) gedrückt</td>
 +          <td>Pin 6</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 3</strong></td>
 +          <td>1</td>
 +          <td>Joystick-Hebel-Richtung <strong>OBEN</strong> (Up) aktiv</td>
 +          <td>Pin 1</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 2</strong></td>
 +          <td>1</td>
 +          <td>Joystick-Hebel-Richtung <strong>UNTEN</strong> (Down) aktiv</td>
 +          <td>Pin 2</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 1</strong></td>
 +          <td>1</td>
 +          <td>Joystick-Hebel-Richtung <strong>LINKS</strong> (Left) aktiv</td>
 +          <td>Pin 3</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 0</strong></td>
 +          <td>1</td>
 +          <td>Joystick-Hebel-Richtung <strong>RECHTS</strong> (Right) aktiv</td>
 +          <td>Pin 4</td>
 +        </tr>
 +      </tbody>
 +    </table>
 +  </div>
 +
 +  <div class="pcw-subtitle-box">Software-Unterstützung und Emulation zur digitalen Erhaltung</div>
 +  <div class="content-body">
 +    <p>Da es sich um den am weitesten verbreiteten Steuerungsstandard handelte, integrierten praktisch alle kommerziellen Action-Videospiele, die für das CP/M Plus des PCW geschrieben wurden, routinemäßig die direkte Abfrage des Port-Registers <code>09Fh</code> in ihre Steuerungsauswahlmenüs. Heute wird dieses Hardware-Verhalten in Emulatoren zur digitalen Erhaltung wie <strong>CP/M Box (Habisoft)</strong> und <strong>Joyce (John Elliott)</strong> vollständig virtuell unterstützt und im offiziellen Amstrad-PCW-Core der <strong>MiSTer FPGA</strong>-Plattform originalgetreu über Hardware-Logikgatter nachgebildet.</p>
 +  </div>
 </div> </div>
 </html> </html>
  
de/hardware/perifericos/kempston_joystick_clones.1778832345.txt.gz · Última modificación: por jesus