| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
| de:hardware:perifericos:ct_scanner [2026/05/13 17:48] – jesus | de:hardware:perifericos:ct_scanner [2026/05/25 08:22] (actual) – jesus |
|---|
| ~~NOTOC~~ | ~~NOTOC~~ |
| | ====== CT Scanner ====== |
| |
| <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.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; } |
| .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; } |
| | |
| /* --- CENTERED GALLERY WITH LARGE IMAGES --- */ | /* --- ZENTRIERTE GALERIE MIT GROSSEN BILDERN --- */ |
| .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 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 { 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; } |
| | |
| | /* Technische Tabellenlayouts */ |
| | .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 LAYER (LIGHTBOX) --> | <!-- CAPA DE MODALES INTERACTIVOS (LIGHTBOX) --> |
| <div id="pifront" 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_Top.jpg"></a></div> | <div id="pifront" 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_Top.jpg"></a></div> |
| <div id="piback" 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_Bottom.jpg"></a></div> | <div id="piback" 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_Bottom.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="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"> |
| | |
| <div class="content-body"> | <div class="content-body"> |
| <p>Der CT Scanner von </html>[[..:..:companias:Cirtech|Cirtech]]<html> ist ein Bilderfassungsgerät, das an eine Schnittstelle im Erweiterungsanschluss des PCW angeschlossen wird.</p> | <p>Der CT Scanner von </html>[[..:..:companias:Cirtech|Cirtech]]<html> ist ein Bilderfassungsgerät, das an ein Interface angeschlossen wird, welches wiederum auf den Erweiterungsport des PCW gesteckt wird.</p> |
| </div> | </div> |
| |
| <div class="drive-card"> | <div class="drive-card"> |
| <div class="drive-gallery"> | <div class="drive-gallery"> |
| <div class="img-frame"><a href="#pifront"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_Top.jpg"></a><span class="img-label">Interface Oberseite</span></div> | <div class="img-frame"><a href="#pifront"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_Top.jpg"></a><span class="img-label">Interface Oben</span></div> |
| <div class="img-frame"><a href="#piback"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_Bottom.jpg"></a><span class="img-label">Interface Unterseite</span></div> | <div class="img-frame"><a href="#piback"><img src="/lib/exe/fetch.php?media=hardware:perifericos:Cirtech_CT_Scanner_v1.6_Interface_Bottom.jpg"></a><span class="img-label">Interface Unten</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">Interface Platine Oben</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">Interface PCB Oben</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">Interface Platine Unten</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">Interface PCB Unten</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 Oberseite</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 Oben</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 Unterseite</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 Unten</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">Scanner Platine</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">Scanner PCB</span></div> |
| </div> | </div> |
| </div> | </div> |
| | </div> |
| | <div class="pcw-subtitle-box">Beschreibung, Kontext und Erhaltungsgeschichte</div> |
| | <div class="content-body"> |
| | <p>Entwickelt, hergestellt und ab **1987** im Vereinigten Königreich von der renommierten schottischen Firma **Cirtech** (unter der Leitung des Ingenieurs Ian Leyland) vermarktet, repräsentiert der <strong>CT Scanner</strong> (mit der Hardware-Revision v1.6 als ausgereiftem Produktionsstandard) eine der brillantesten und begehrtesten peripheren Software- und Hardwarelösungen im Amstrad-PCW-Ökosystem. In einer Zeit, in der traditionelle Flachbett-Flachbettscanner unerschwingliche Preise hatten, die den Preis des Computers selbst leicht verdoppelten, entwickelte Cirtech ein hybrides Hardware-Kit, das in der Lage war, den werkseitigen Nadeldrucker des Amstrad PCW (Modelle der 8000er-Serie) in einen hochauflösenden optischen Bilddigitalisierer zu verwandeln.</p> |
| | <p>Im Gegensatz zu eigenständigen Erfassungsgeräten fehlten dem CT Scanner eigene Motoren, um den optischen Sensor zu bewegen. Stattdessen basierte das System vollständig auf der Wiederverwendung der Präzisionsservomechanik, die bereits serienmäßig im Amstrad-Drucker verbaut war. Der Benutzer entfernte die Farbbandkassette aus dem Drucker und steckte stattdessen einen kleinen optischen Lesekopf mit einer reflektierenden Fotodetektorkapsel fest.</p> |
| | <p>Nach dem Einlegen des Dokuments oder Bildes in die Walzenzuführung und dem Starten der von Cirtech mitgelieferten dedizierten Software sendete der Computer Stoßwellen von "transparenten" Druckbefehlen. Diese Befehle zwangen den Druckerschlitten zu kontinuierlichen horizontalen Abtastungen (X-Achse) und synchronen Walzenmikroprüfungen (Y-Achse). Gleichzeitig projizierte der optische Kopf einen Lichtstrahl auf das Papier und maß die reflektierte Lichtintensität, wodurch das Dokument rein mechanisch Zeile für Zeile digitalisiert wurde.</p> |
| </div> | </div> |
| |
| | <div class="pcw-subtitle-box">Hardware-Architektur und Platinenkomponenten</div> |
| | <div class="content-body"> |
| | <p>Die interne Leiterplatte (PCB) des modularen Interfaces in der Revision v1.6 demonstriert die hohen industriellen Fertigungsstandards von Cirtech und verwendet diskrete Filterkomponenten sowie optimierte Logikchips für die Erfassung analoger Signale in Echtzeit:</p> |
| | <ul> |
| | <li><strong>Präzisions-Analog-Digital-Wandler (ADC):</strong> Das Herzstück der sekundären Platine ist ein integrierter Analog-Digital-Wandler nach dem Prinzip der sukzessiven Approximation. Der Lesekopf liefert ein kontinuierliches analoges elektrisches Signal proportional zur Menge des reflektierten Lichts (wobei weißes Papier die maximale Spannung liefert und schwarze Tinte den Strahl absorbiert, wodurch die Spannung sinkt). Der ADC wandelt diesen Fluss in binäre Werte um, die für den Prozessor des PCW lesbar sind.</li> |
| | <li><strong>Steuerungslogik mit programmierbaren Logikbausteinen (PAL):</strong> Im Gegensatz zu preisgünstigen Schnittstellen von Wettbewerbern, die die CPU durch aggressive Abfrageschleifen überlasteten, integriert die PCB von Cirtech programmierbare Logikbausteine vom Typ PAL (Programmable Array Logic). Diese Chips übernehmen die ultraschnelle Dekodierung der Z80-Busadressen und stabilisieren die logischen Leitungen, die erforderlich sind, um die Datenabtastung des ADC genau in dem Moment zu koordinieren, in dem der Druckkopf jede physische Koordinate des Rasters passiert.</li> |
| | <li><strong>Signalisolierung und Operationsfilter:</strong> Die Platine integriert diskrete Operationsverstärker zur Verstärkung der subtilen Spannung, die vom Fototransistor des Kopfes gesendet wird, zusammen mit Entkopplungskondensatoren zur Filterung elektromagnetischer Störungen, die durch die starken Spulenmotoren des Druckerschlittens während der Bewegung erzeugt werden.</li> |
| | </ul> |
| | </div> |
| | <div class="pcw-subtitle-box">I/O-Port-Mapping und Low-Level-Bitlogik</div> |
| | <div class="content-body"> |
| | <p>Für die direkte Kommunikation mit der Zilog Z80-CPU des Amstrad PCW decodiert die PAL-Logikmatrix des Cirtech-Interfaces einen spezifischen Portbereich auf dem oberen Hardware-Bus. Dies ermöglicht es der Software, die digitalisierten Helligkeitsdaten des ADC in Echtzeit abzurufen:</p> |
| | <ul> |
| | <li><strong>Bilddaten-Leseport:</strong> Das Ausführen eines Port-Eingabebefehls (<code>IN A, (C)</code>), der auf die von der Cirtech-PAL zugewiesene Adresse abzielt, zwingt den ADC, sofort den binären Helligkeitszustand des Pixels auszugeben, auf den der optische Lesekopf in diesem Moment zeigt.</li> |
| | <li><strong>Schwellenwert- und Dithering-Logik:</strong> Da die native Videohardware des Amstrad PCW 8256/8512 strukturell auf ein reines Monochrom-Layout beschränkt ist (Pixel sind auf der Ebene des gemappten Video-RAMs entweder komplett an oder aus), führte die Cirtech-Software eine fortschrittliche algorithmische Verarbeitung durch. Wenn das vom ADC gelesene Byte einen mittleren Schwellenwert überschritt, wurde es als weiß gespeichert, andernfalls als schwarz. Um Graustufen (beim Scannen von Fotos) zu simulieren, führte die Software Fehlerdiffusions- oder Matrix-Dithering-Algorithmen aus, bei denen dichte schwarze Pixelhaufen in dunklen Bereichen und verstreute Punkte in hellen Feldern verteilt wurden.</li> |
| | </ul> |
| | </div> |
| | |
| | <div class="pcw-subtitle-box">Software-Integration und Erfassungsmodi</div> |
| | <div class="content-body"> |
| | <p>Das kommerzielle Kit wurde mit einer 3-Zoll-Disketten ausgeliefert, die eine hochentwickelte Dienstprogramm-Software enthielt, die exklusiv für die CP/M Plus-Betriebssystemumgebung des PCW entwickelt wurde:</p> |
| | <ul> |
| | <li><strong>Scan-Auflösung:</strong> Die horizontale Auflösung (X-Achse) wurde durch die softwareseitige Abtastfrequenz bestimmt, die mit der Geschwindigkeit des Druckerschlittens synchronisiert war, wodurch Dichten von bis zu 200 Punkten pro Zoll (DPI) erreicht wurden. Die vertikale Auflösung (Y-Achse) hing direkt von den Schritten des Amstrad-Walzenvorschubmotors ab, was hochpräzise, zeilenweise Abtastungen im Mikroschrittverfahren ermöglichte.</li> |
| | <li><strong>Dateiformate und Bearbeitungswerkzeuge:</strong> Die Software verfügte über eine Echtzeit-Monitoranzeige, die das gescannte Bild progressiv von unten nach oben aufbaute, während sich die Walze vorwärts bewegte. Digitale Bilder konnten zugeschnitten, in der Polarität invertiert (Negativ/Positiv) und in proprietären Grafikformaten gespeichert werden. Diese Dateien konnten dann direkt in Desktop-Publishing-Suiten importiert oder für Textverarbeitungsprogramme konvertiert werden, was die Druckfähigkeiten des Computers im Büro drastisch erweiterte.</li> |
| | </ul> |
| | </div> |
| </div> | </div> |
| </html> | </html> |
| |