Herramientas de usuario

Herramientas del sitio


hardware:perifericos:ct_scanner

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:ct_scanner [2026/05/13 17:46] – creado jesushardware:perifericos:ct_scanner [2026/05/25 08:16] (actual) jesus
Línea 6: Línea 6:
   /* --- MOTOR VISUAL RETRO CRT --- */   /* --- MOTOR VISUAL RETRO CRT --- */
   .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.1s 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 { 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; }
Línea 14: Línea 14:
   .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; }
      
   /* --- GALERÍA CENTRADA CON IMÁGENES GRANDES --- */   /* --- GALERÍA CENTRADA CON IMÁGENES GRANDES --- */
-  .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-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-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; }+  .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); }
   .drive-gallery { display: flex; gap: 20px; flex-direction: row; flex-wrap: wrap; justify-content: center; width: 100%; }   .drive-gallery { display: flex; gap: 20px; flex-direction: row; flex-wrap: wrap; justify-content: center; width: 100%; }
   .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); }
-  .img-frame img { max-width: 280px; height: auto; object-fit: contain; cursor: pointer; background-color: #000; }+  .img-frame img { max-width: 140px; height: auto; object-fit: contain; cursor: pointer; background-color: #000; }
   .img-label { font-size: 0.75em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; }   .img-label { font-size: 0.75em; color: #00aa00; margin-top: 8px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; }
      
 +  /* --- MODAL DE LIGHTBOX CON INTERRUPCIÓN DE LÍMITES PARA TAMAÑO REAL --- */
   .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 { 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; }+  .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; } 
 + 
 +  /* Tablas técnicas */ 
 +  .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>
  
Línea 37: Línea 45:
 <div id="pipcbfront" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Top.jpg"></a></div> <div id="pipcbfront" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Top.jpg"></a></div>
 <div id="pipcbback" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Bottom.jpg"></a></div> <div id="pipcbback" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Bottom.jpg"></a></div>
-<div id="pdevfront" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Top.jpg"></a></div> +<div id="pfront" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Top.jpg"></a></div> 
-<div id="pdevback" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Bottom.jpg"></a></div> +<div id="pback" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Bottom.jpg"></a></div> 
-<div id="pdevpcb" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_PCB_Top.jpg"></a></div>+<div id="ppcb" class="modal-pcw"><a href="#close" class="close-overlay"><img class="modal-content" src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_PCB_Top.jpg"></a></div>
  
 <div class="pcw-monitor-ultra"> <div class="pcw-monitor-ultra">
Línea 57: Línea 65:
         <div class="img-frame"><a href="#pipcbfront"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Top.jpg"></a><span class="img-label">PCB Interface Sup.</span></div>         <div class="img-frame"><a href="#pipcbfront"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Top.jpg"></a><span class="img-label">PCB Interface Sup.</span></div>
         <div class="img-frame"><a href="#pipcbback"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Bottom.jpg"></a><span class="img-label">PCB Interface Inf.</span></div>         <div class="img-frame"><a href="#pipcbback"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_PCB_Bottom.jpg"></a><span class="img-label">PCB Interface Inf.</span></div>
-        <div class="img-frame"><a href="#pdevfront"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Top.jpg"></a><span class="img-label">Scanner Superior</span></div> +        <div class="img-frame"><a href="#pfront"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Top.jpg"></a><span class="img-label">Scanner Superior</span></div> 
-        <div class="img-frame"><a href="#pdevback"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Bottom.jpg"></a><span class="img-label">Scanner Inferior</span></div> +        <div class="img-frame"><a href="#pback"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Bottom.jpg"></a><span class="img-label">Scanner Inferior</span></div> 
-        <div class="img-frame"><a href="#pdevpcb"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_PCB_Top.jpg"></a><span class="img-label">PCB Scanner</span></div>+        <div class="img-frame"><a href="#ppcb"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_PCB_Top.jpg"></a><span class="img-label">PCB Scanner</span></div>
       </div>       </div>
     </div>     </div>
 +  </div>
 +  <div class="pcw-subtitle-box">Descripción, Contexto e Historia de Preservación</div>
 +  <div class="content-body">
 +    <p>Diseñado, fabricado y comercializado en el Reino Unido a partir de **1987** por la reputada firma escocesa **Cirtech** (liderada por el ingeniero Ian Leyland), el <strong>CT Scanner</strong> (con la revisión de hardware v1.6 consolidada como el estándar de producción más maduro) representa una de las soluciones de ingeniería periférica más brillantes y cotizadas del ecosistema Amstrad PCW. En una época en la que los escáneres planos de sobremesa tradicionales tenían precios prohibitivos que duplicaban el coste del propio ordenador, Cirtech desarrolló un kit de hardware híbrido capaz de transformar la propia impresora matricial nativa del Amstrad PCW (modelos de la serie 8000) en un digitalizador óptico de imágenes de alta resolución.</p>
 +    <p>A diferencia de los dispositivos de captura independientes, el CT Scanner carecía de motores propios para mover el sensor óptico. En su lugar, el sistema se basaba en la reutilización de la servomecánica de precisión que ya incorporaba la impresora Amstrad de serie. El usuario retiraba el cartucho de cinta entintada de la impresora y, en su lugar, encajaba a presión un pequeño cabezal óptico lector provisto de una cápsula fotodetectora reflectante.</p>
 +    <p>Al introducir el documento o imagen en el rodillo de alimentación e iniciar el software dedicado suministrado por Cirtech, el ordenador enviaba ráfagas de comandos de impresión "transparentes". Estos comandos forzaban al carro de la impresora a realizar barridos horizontales continuos (Eje X) y microavances síncronos de rodillo (Eje Y). Simultáneamente, el cabezal óptico proyectaba un haz de luz sobre el papel y medía la intensidad lumínica rebotada, digitalizando el documento línea por línea de manera puramente mecánica.</p>
   </div>   </div>
  
 +  <div class="pcw-subtitle-box">Arquitectura Interna y Componentes de la PCB</div>
 +  <div class="content-body">
 +    <p>La placa de circuito impreso (PCB) interna de la interfaz modular de la revisión v1.6 demuestra los altos estándares de fabricación industrial de Cirtech, utilizando componentes discretos de filtrado y chips de lógica lógica optimizada para la adquisición de señales analógicas en tiempo real:</p>
 +    <ul>
 +      <li><strong>Conversor Analógico-Digital (ADC) de Precisión:</strong> El corazón de la placa secundaria es un circuito integrado convertidor ADC de aproximaciones sucesivas. La cabeza lectora devuelve una señal eléctrica analógica continua proporcional a la cantidad de luz reflejada (donde el papel blanco devuelve la máxima tensión y la tinta negra absorbe el haz reduciendo el voltaje). El ADC convierte este flujo en valores binarios legibles por el procesador del PCW.</li>
 +      <li><strong>Lógica de Control con Matrices de Puertas Programables (PAL):</strong> A diferencia de los interfaces económicos de competidores que saturaban la CPU mediante bucles de lectura agresivos, la PCB de Cirtech incorpora integrados lógicos programables de tipo PAL (Programmable Array Logic). Estos chips se encargan de la decodificación ultra-rápida de las direcciones del bus del Z80 y estabilizan las líneas lógicas necesarias para coordinar el muestreo de datos del ADC justo en el instante en que el cabezal de impresión pasa por cada punto físico de la rejilla.</li>
 +      <li><strong>Aislamiento de Señal y Filtros Operacionales:</strong> La placa integra amplificadores operacionales discretos para amplificar el sutil voltaje enviado por el fototransistor del cabezal, junto con condensadores de desacoplo para filtrar el ruido electromagnético generado por los potentes motores de bobina del carro de la impresora en pleno movimiento.</li>
 +    </ul>
 +  </div>
 +  <div class="pcw-subtitle-box">Mapeo de Puertos de Entrada/Salida (I/O) y Lógica de Bits</div>
 +  <div class="content-body">
 +    <p>Para la comunicación directa con la CPU Zilog Z80 del Amstrad PCW, la matriz lógica PAL del interfaz Cirtech decodifica un rango de puertos específico en el bus superior. Esto permite que el software lea los datos de brillo digitalizados del ADC en tiempo real:</p>
 +    <ul>
 +      <li><strong>Puerto de Lectura de Datos de Imagen:</strong> Al realizar una instrucción de lectura de puerto (<code>IN A, (C)</code>) sobre la dirección asignada por la PAL de Cirtech, el ADC vuelca directamente el estado binario del pixel apuntado en ese instante por la cabeza lectora.</li>
 +      <li><strong>Lógica de Umbralización y Tramado (Dithering):</strong> Debido a que el hardware de video nativo de los Amstrad PCW 8256/8512 está limitado estructuralmente a una pantalla monocroma pura de dos colores (píxel encendido o píxel apagado a nivel de memoria RAM mapeada), el software de Cirtech realizaba un procesamiento algorítmico avanzado. Si el byte leído del ADC superaba un umbral intermedio, se guardaba como blanco; de lo contrario, se guardaba como negro. Para simular escalas de grises (imágenes fotográficas), el programa ejecutaba algoritmos de dispersión de error o matrices de tramado por software (dithering), distribuyendo puntos negros densos en las zonas oscuras y puntos dispersos en las zonas claras.</li>
 +    </ul>
 +  </div>
 +
 +  <div class="pcw-subtitle-box">Integración a Nivel de Software y Modos de Captura</div>
 +  <div class="content-body">
 +    <p>El kit comercial se suministraba acompañado de un disquete de 3 pulgadas con software avanzado desarrollado específicamente para el entorno de disco CP/M Plus del PCW:</p>
 +    <ul>
 +      <li><strong>Resolución de Escaneo:</strong> La resolución horizontal (Eje X) estaba determinada por la frecuencia de muestreo del software en sincronía con la velocidad del carro de la impresora, logrando densidades de hasta 200 puntos por pulgada (DPI). La resolución vertical (Eje Y) dependía directamente de los pasos del motor de avance de papel del rodillo de Amstrad, permitiendo barridos de precisión micrométrica de línea por línea.</li>
 +      <li><strong>Formatos y Utilidades de Edición:</strong> El programa incluía un visor en tiempo real que iba "dibujando" la imagen de abajo hacia arriba en el monitor CRT conforme avanzaba el rodillo. Las imágenes digitalizadas podían ser recortadas, invertidas de polaridad (negativo/positivo) y salvadas en formatos propietarios de almacenamiento gráfico para ser importadas directamente en paquetes de autoedición profesionales del PCW o convertidas para su uso en procesadores de texto, expandiendo drásticamente el potencial de imprenta de oficina del ordenador.</li>
 +    </ul>
 +  </div>
 </div> </div>
 </html> </html>
  
hardware/perifericos/ct_scanner.1778694370.txt.gz · Última modificación: por jesus