Herramientas de usuario

Herramientas del sitio


hardware:perifericos:cascade_joystick

Diferencias

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

Enlace a la vista de comparación

Próxima revisión
Revisión previa
hardware:perifericos:cascade_joystick [2026/05/13 17:26] – creado jesushardware:perifericos:cascade_joystick [2026/05/25 06:14] (actual) jesus
Línea 4: Línea 4:
 <style> <style>
   /* --- MOTOR VISUAL RETRO CRT --- */   /* --- MOTOR VISUAL RETRO CRT --- */
-  .pcw-monitor-ultra { +  .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);
-    background-color: #000b00;  +  .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; }
-    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; +
-  } +
   @keyframes flickering { 0% { opacity: 0.98; } 100% { opacity: 1; } }   @keyframes flickering { 0% { opacity: 0.98; } 100% { opacity: 1; } }
- +  .retro-text-green { color: #00ff00 !important; font-family: 'Courier New', Courier, monospace; text-shadow: 0 0 10px rgba(0, 255, 0, 0.7), 0 0 2px rgba(0, 255, 0, 0.8); text-transform: uppercase; letter-spacing: 1px; text-decoration: none !important; } 
-  .retro-text-green { +  .pcw-title-ultra { font-size: 1.6em; font-weight: bold; margin-bottom: 25px; display: block; }
-    color: #00ff00 !important; +
-    font-family: 'Courier New', Courier, monospace; +
-    text-shadow: 0 0 10px rgba(0, 255, 0, 0.7), 0 0 2px rgba(0, 255, 0, 0.8); +
-    text-transform: uppercase; +
-    letter-spacing: 1px; +
-    text-decoration: none !important; +
-  } +
- +
-  .pcw-title-ultra { +
-    font-size: 1.6em; +
-    font-weight: bold; +
-    margin-bottom: 25px; +
-    display: block; +
-  } +
   .pcw-title-ultra::after { content: "_"; animation: cursor-blink 1s infinite; }   .pcw-title-ultra::after { content: "_"; animation: cursor-blink 1s infinite; }
   @keyframes cursor-blink { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }   @keyframes cursor-blink { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
 +  
   .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 a { color: #00ff00 !important; text-decoration: underline !important; font-weight: bold; } 
      
-  /* --- SUBTÍTULO EN CUADRO NEÓN --- */ +  /* --- GALERÍA CENTRADA CON IMÁGENES GRANDES --- */ 
-  .pcw-subtitle-box { +  .drive-grid-container { display: flex; flex-direction: column; gap: 20px; margin: 25px 0; position: relative; z-index: 3; align-items: center; justify-content: center; 
-    background-color: #00ff00; +  .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; }
-    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; +
-  } +
- +
-  /* --- REJILLA TÉCNICA REAJUSTADA AL ANCHO REAL --- */ +
-  .drive-grid-container { +
-    display: flex; +
-    flex-direction: column; +
-    gap: 20px; +
-    margin-top10px; +
-    position: relative; +
-    z-index: 3; +
-  } +
- +
-  .drive-card { +
-    border: 1px solid #004400; +
-    background: rgba(0, 15, 0, 0.6); +
-    padding: 15px; +
-    display: flex; +
-    flex-direction: column; +
-    gap: 15px; +
-    transition: 0.2s; +
-  }+
   .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); }
- +  .drive-gallery { display: flex; gap: 20px; flex-direction: row; flex-wrap: wrap; justify-content: center; width: 100%; }
-  .drive-info-header { +
-    font-size: 1.1em; +
-    border-bottom: 1px dashed #004400; +
-    padding-bottom: 8px; +
-    color: #00ff00; +
-    display: flex; +
-    align-items: center; +
-    gap: 10px; +
-    flex-wrap: wrap; +
-  } +
- +
-  .model-highlight { +
-    background-color: #00ff00; +
-    color: #000b00 !important; +
-    padding: 2px 8px; +
-    font-weight: bold; +
-    text-transform: uppercase; +
-  } +
- +
-  .drive-gallery { +
-    display: flex; +
-    gap: 12px; +
-    flex-direction: row; +
-    flex-wrap: wrap;  +
-    justify-content: flex-start; +
-    width: 100%; +
-  } +
- +
-  .img-frame { +
-    border: 2px solid #00ff00; +
-    padding: 4px; +
-    background: #000; +
-    text-align: center; +
-    display: inline-flex; +
-    flex-direction: column; +
-    align-items: center; +
-    box-sizing: border-box; +
-  } +
- +
-  .img-frame img {  +
-    max-width: 140px; +
-    height: auto; +
-    object-fit: contain;  +
-    cursor: pointer;  +
-    background-color: #000; +
-  }+
      
-  .img-label font-size: 0.68em; color: #00aa00margin-top: 6px; text-transformuppercaseword-breakbreak-word+  .img-frame border2px solid #00ff00padding: 6px; background: #000; text-aligncenterdisplayinline-flexflex-directioncolumnalign-itemscenterbox-sizingborder-boxtransition: 0.3s ease} 
- +  .img-frame:hover { transformscale(1.05)border-color: #00ff00; box-shadow: 0 0 15px rgba(0, 255, 0, 0.4); } 
-  /* --- LIGHTBOX SCROLL --- */ +  .img-frame img { max-width: 280px; height: auto; object-fit: contain; cursor: pointer; background-color: #000; } 
-  .modal-pcw { +  .img-label { font-size: 0.75em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; }
-    displaynone +
-    positionfixed +
-    z-index9999; +
-    top: 0; left: 0;  +
-    width100%; height100%; +
-    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 { +  .modal-content { max-width: 90% !important; max-height: 85vh !important; border: 4px solid #00ff00; box-shadow: 0 0 50px rgba(0, 255, 0, 0.5); margin: 5vh auto; display: inline-block; 
-    display: inline-block; + 
-    min-width: 100%; +  /* Elementos de tabla para sección técnica */ 
-    min-height: 100%; +  .tech-table { width: 100%; border-collapse: collapse; margin: 15px 0; background: rgba(0, 20, 0, 0.4); } 
-    padding: 40px;  +  .tech-table th, .tech-table td { border: 1px solid #004400; padding: 8px; text-align: left; font-family: 'Courier New', Courier, monospace; } 
-    box-sizing: border-box; +  .tech-table th { background: rgba(0, 60, 0, 0.6); color: #00ff00; }
-    text-decoration: none !important;  +
-    cursor: zoom-out; +
-    vertical-align: middle; +
-  } +
-   +
-  .modal-content { +
-    max-width: 90% !important;  +
-    max-height: 85vh !important; +
-    border: 4px solid #00ff00;  +
-    box-shadow: 0 0 50px rgba(0, 255, 0, 0.5); +
-    margin: 5vh auto;  +
-    display: inline-block; +
-  }+
 </style> </style>
  
 <!-- CAPA DE MODALES INTERACTIVOS (LIGHTBOX) --> <!-- CAPA DE MODALES INTERACTIVOS (LIGHTBOX) -->
-<div id="pjoy1" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cascade_Joystick_1.jpg"></a></div> +<div id="pjoy1" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:cascade_joystick_1.jpg"></a></div> 
-<div id="pjoy2" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cascade_Joystick_2.jpg"></a></div>+<div id="pjoy2" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:cascade_joystick_2.jpg"></a></div>
  
 <div class="pcw-monitor-ultra"> <div class="pcw-monitor-ultra">
   <div class="pcw-title-ultra retro-text-green"> A> CASCADE JOYSTICK </div>   <div class="pcw-title-ultra retro-text-green"> A> CASCADE JOYSTICK </div>
-  +
   <div class="content-body">   <div class="content-body">
-    <p>Este interface para joystick fabricado por </html>[[..:..:companias:Cascade|Cascade]]<html> es un periférico que provee al </html>[[..:..:PCW|PCW]]<html> de un Joystick para poder jugar con este ordenador.</p> +    <p>Este interface para joystick fabricado por </html>[[..:..:companias:cascade|Cascade]]<html> es un peripheral que provee al </html>[[..:..:PCW|PCW]]<html> de un Joystick para poder jugar con este ordenador.</p>
-    +
     <p>Evidentemente, para jugar con un PCW es imprescindible disponer de un ordenador PCW y de un juego. Sin embargo, siempre es interesante poder jugar los juegos con un joystick, por dos motivos: uno de ellos, la comodidad a la hora de manejar el juego, especialmente en los juegos de acción, y el otro motivo, evitar el desgaste de las teclas.</p>     <p>Evidentemente, para jugar con un PCW es imprescindible disponer de un ordenador PCW y de un juego. Sin embargo, siempre es interesante poder jugar los juegos con un joystick, por dos motivos: uno de ellos, la comodidad a la hora de manejar el juego, especialmente en los juegos de acción, y el otro motivo, evitar el desgaste de las teclas.</p>
-     
     <p>El problema que se presenta al utilizar un PCW es que este ordenador no dispone de puerto para joystick. Por este motivo es necesario el uso de un interface como el Cascade Joystick.</p>     <p>El problema que se presenta al utilizar un PCW es que este ordenador no dispone de puerto para joystick. Por este motivo es necesario el uso de un interface como el Cascade Joystick.</p>
   </div>   </div>
 +
 +  <div class="drive-grid-container">
 +    <div class="drive-card">
 +      <div class="drive-gallery">
 +        <div class="img-frame"><a href="#pjoy1"><img src="/lib/exe/fetch.php?media=hardware:perifericos:cascade_joystick_1.jpg"></a><span class="img-label">Foto 1</span></div>
 +        <div class="img-frame"><a href="#pjoy2"><img src="/lib/exe/fetch.php?media=hardware:perifericos:cascade_joystick_2.jpg"></a><span class="img-label">Foto 2</span></div>
 +      </div>
 +    </div>
 +  </div>
 +
 +  <div class="content-body">
 +    <p>El kit completo del Joystick incluye el interface, un joystick y un disquete con la versión 4.0 del juego de ajedrez Colossus Chess 2 u otro juego en otros casos como el simulador de vuelo ACE.</p>
 +    <p>Su uso no puede ser más sencillo: basta con conectar el joystick a la toma correspondiente en el interface, y luego conectar el interface al puerto de expansión del PCW (todo esto, por supuesto, con el ordenador apagado). Es importante hacerlo por este orden, porque la conexión del joystick está muy justa. Si conectamos primero el interface, encendemos el ordenador, y luego intentamos conectar el joystick al interface, observaremos que es necesario hacer fuerza, y cabe la posibilidad de dañar el conector de expansión en un descuido.</p>
 +    <p>El interface con el simulador de vuelo Tomahawk, funciona sin ningún problema. Sin embargo, algunos joystick que vienen con el kit, dan bastantes problemas, pues no disparan ni realizan el movimiento hacia abajo. Imaginamos que se trata de un problema individual del joystick. Esperemos que solo sea un problema de forma generalizada.</p>
 +    <p>Hay que reseñar un pequeño detalle: el interface no tiene un prolongador del bus de expansión, por lo que si lo conectamos como primer interface no permite conectar ninguna otra expansión.</p>
 +    
 +    <br />
 +    <hr style="border-color: #004400;" />
 +    <br />
 +
 +    <!-- --- INFORMACIÓN TÉCNICA DE PRESERVACIÓN --- -->
 +    <p><strong>[ INFORMACIÓN TÉCNICA DE PRESERVACIÓN ]</strong></p>
 +    <p>A nivel de hardware de bajo nivel para el microprocesador Zilog Z80, la interfaz Cascade Joystick responde de manera directa al direccionamiento clásico de E/S (Entrada/Salida) en una dirección específica. Sus lecturas digitales operan bajo una lógica activa en bajo (0), lo que indica que cuando un botón o dirección física cierra el contacto, su correspondiente bit se establece en 0.</p>
 +    
 +    <ul>
 +      <li><strong>Puerto de Entrada/Salida (I/O Port):</strong> <code>0E0h</code> (Correspondiente a <code>224</code> decimal).</li>
 +      <li><strong>Compatibilidad de Software y Conflictos:</strong> El juego <em>'Head over Heels'</em> de Ocean Software implementa de forma nativa la rutina de lectura fija de este puerto para la interfaz Cascade. No obstante, debido a la diferencia en la distribución de la señal, esta rutina específica de control no resulta compatible con la interfaz competidora Spectravideo.</li>
 +    </ul>
 +
 +    <p><strong>Mapeo de Bits del Puerto 0E0h (Cascade / JoyceStick):</strong></p>
 +    <table class="tech-table">
 +      <thead>
 +        <tr>
 +          <th>Bit</th>
 +          <th>Estado / Función (Valor en 0)</th>
 +        </tr>
 +      </thead>
 +      <tbody>
 +        <tr>
 +          <td><strong>Bit 7</strong></td>
 +          <td>Botón de disparo (Fire) presionado</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 6</strong></td>
 +          <td>Ignorado</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 5</strong></td>
 +          <td>Ignorado</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 4</strong></td>
 +          <td>Dirección ARRIBA (Up) activa</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 3</strong></td>
 +          <td>Ignorado</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 2</strong></td>
 +          <td>Dirección ABAJO (Down) activa</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 1</strong></td>
 +          <td>Dirección DERECHA (Right) activa</td>
 +        </tr>
 +        <tr>
 +          <td><strong>Bit 0</strong></td>
 +          <td>Dirección IZQUIERDA (Left) activa</td>
 +        </tr>
 +      </tbody>
 +    </table>
 +
 +    <p><strong>Soporte Actual en Emulación y Preservación Digital:</strong></p>
 +    <p>Las especificaciones exactas del estándar Cascade Joystick se encuentran plenamente documentadas y soportadas en los principales entornos de preservación actuales:</p>
 +    <ul>
 +      <li><strong>CP/M Box (Habisoft):</strong> El emulador de Habi implementa de forma nativa el soporte para Cascade. El sistema reconoce cualquier mando o pad estándar conectado al sistema operativo (mapeando los ejes X/Y y sus dos primeros botones) y traduce digitalmente las señales simulando el comportamiento de hardware de la interfaz original.</li>
 +      <li><strong>Joyce:</strong> Desarrollado por John Elliott, emula fielmente el comportamiento lógico del puerto <code>0E0h</code>.</li>
 +      <li><strong>MiSTer FPGA (Amstrad PCW Core):</strong> Implementa el soporte lógico de la interfaz a nivel de hardware reproducible.</li>
 +    </ul>
 +  </div>
 +</div>
 +</html>
 +
  
hardware/perifericos/cascade_joystick.1778693190.txt.gz · Última modificación: por jesus