| Próxima revisión | Revisión previa |
| en:hardware:gate_array [2026/04/26 06:35] – creado jesus | en:hardware:gate_array [2026/05/12 18:43] (actual) – jesus |
|---|
| ~~NOTOC~~ | ~~NOTOC~~ |
| ===== GATE ARRAY ===== | |
| |
| ---- | <html> |
| | <style> |
| | /* --- ULTRA RETRO CRT 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); |
| | } |
| |
| <WRAP justify> | .pcw-monitor-ultra::after { |
| The Amstrad PCW 40028 (or Gate Array) is a custom-designed chip (ASIC) fundamental to the architecture of the PCW8256, 8512, and 9512 computer family. This component integrated multiple functions into a single package to drastically reduce manufacturing costs and motherboard complexity. | 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; |
| | } |
| |
| Below is the detailed technical information and available references: | @keyframes flickering { 0% { opacity: 0.98; } 100% { opacity: 1; } } |
| |
| **__Main Functions of the Gate Array (40028)__** | .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; |
| | } |
| |
| This chip acts as the logical "heart" of the system, managing the following critical areas: | .pcw-title-ultra { |
| | font-size: 1.6em; |
| | font-weight: bold; |
| | margin-bottom: 25px; |
| | display: block; |
| | } |
| |
| * **Video Controller:** It generates the signal for the high-resolution monochrome monitor (720x256 pixels) and manages the **Roller RAM**, a 512-byte memory section that allows for fast screen scrolling. | .pcw-title-ultra::after { content: "_"; animation: cursor-blink 1s infinite; } |
| | @keyframes cursor-blink { 0%, 100% { opacity: 0; } 50% { opacity: 1; } } |
| |
| * **Memory Management (Bank Switching):** It allows the 8-bit Z80 processor to access more than 64 KB of RAM through memory bank switching, supporting up to 512 KB in models such as the 8512. | .content-body { position: relative; z-index: 3; color: #00ff00; line-height: 1.6; text-align: justify; } |
| | |
| | /* Active Retro Link */ |
| | .pcw-link { color: #00ff00; font-weight: bold; text-decoration: underline !important; } |
| | .pcw-link:hover { background: #00ff00; color: #000 !important; } |
| |
| * **Floppy Disk and Printer Controller:** It integrates the logic to handle 3-inch drives (or 3.5" in later models) and communication with Amstrad-specific dot matrix or daisy-wheel printers. | .content-body ul li { color: #00ff00; margin-bottom: 10px; } |
| | .content-body b, .content-body strong { font-weight: bold; text-decoration: underline; } |
| |
| * **Interrupt Logic:** It manages the timing and signals necessary for the coordinated operation of the hardware. | /* Viewer container */ |
| | .osd-container { |
| | border: 2px solid #00ff00; |
| | background: #000; |
| | margin: 20px 0; |
| | position: relative; |
| | z-index: 3; |
| | } |
| | </style> |
| |
| **__Manufacturing Details__** | <!-- BLOCK 1: FULL TECHNICAL DESCRIPTION --> |
| | <div class="pcw-monitor-ultra"> |
| | <div class="pcw-title-ultra retro-text-green"> A> GATE ARRAY (40028) </div> |
| | <div class="content-body"> |
| | <p>The Amstrad PCW 40028 (or Gate Array) is a custom-designed chip (ASIC) fundamental to the architecture of the PCW8256, 8512, and 9512 computer family. This component integrated multiple functions into a single package to drastically reduce manufacturing costs and motherboard complexity.</p> |
| | |
| | <p>Below is the technical information and available references:</p> |
| |
| * **Design:** It was commissioned by Amstrad to MEJ Electronics, the same firm that developed the Amstrad CPC 464 hardware. | <p><strong>Main Functions of the Gate Array (40028)</strong></p> |
| | <p>This chip acts as the logical "heart" of the system, managing the following critical areas:</p> |
| |
| * **Variants:** Although the 40028 is the most common in the 8000/9000 series, minor variants exist depending on the motherboard revision (such as the 40010 used in CPC models, which shares similar design principles). | <ul> |
| | <li><strong>Video Controller:</strong> Generates the signal for the high-resolution monochrome monitor (720x256 pixels) and manages the <strong>Roller RAM</strong>, a 512-byte memory section that allows fast screen scrolling.</li> |
| | <li><strong>Memory Management (Bank Switching):</strong> Allows the Z80 processor (8-bit) to access more than 64 KB of RAM through memory bank switching, supporting up to 512 KB in models like the 8512.</li> |
| | <li><strong>Floppy Drive and Printer Controller:</strong> Integrates the logic to handle 3-inch drives (or 3.5" in later models) and communication with Amstrad-specific dot matrix or daisy-wheel printers.</li> |
| | <li><strong>Interrupt Logic:</strong> Manages the timing and signals necessary for coordinated hardware operation.</li> |
| | </ul> |
| |
| * **Packaging:** It is generally presented as an SMD chip (surface mount) in modern revisions or as a large-sized chip on early boards. | <p><strong>Manufacturing Details</strong></p> |
| | <ul> |
| | <li><strong>Design:</strong> Commissioned by Amstrad to MEJ Electronics, the same firm that developed the Amstrad CPC 464 hardware.</li> |
| | <li><strong>Variants:</strong> Although the 40028 is the most common in the 8000/9000 series, minor variants exist depending on the motherboard revision (such as the 40010 used in CPC models, which shares similar design principles).</li> |
| | <li><strong>Packaging:</strong> Generally presented as an SMD chip (surface mount) in later revisions or as a large DIP chip on early boards.</li> |
| | </ul> |
| |
| The Gate Array is the integrated circuit responsible for most of the PCW's functions. | <p>The Gate Array is the integrated circuit responsible for most of the PCW's functions.</p> |
| |
| To delve deeper into the programming of this chip, it is recommended to consult the [[en:hardware_guide|Amstrad PCW Hardware Reference]], which explains how to manipulate the Gate Array registers through I/O ports (such as port &F5 for the Roller RAM). | <p>To further explore the programming of this chip, it is recommended to consult the <a href="doku.php?id=en:hardware_guide" class="pcw-link">Amstrad PCW Hardware Reference</a>, which explains how to manipulate the Gate Array registers through I/O ports (such as port &F5 for the Roller RAM).</p> |
| </WRAP> | </div> |
| ---- | </div> |
| |
| <HTML> | <!-- BLOCK 2: MICRO-PHOTOGRAPHY --> |
| <script type="text/javascript" src='zooms/40028/openseadragon/openseadragon.js'></script> | <div class="pcw-monitor-ultra"> |
| <div> | <div class="pcw-title-ultra retro-text-green"> A> VISUAL REFERENCE (DIE SHOT) </div> |
| Amstrad PCW 40028 ASIC (Metal layer). | |
| </div> | <div class="content-body"> |
| <div id="contentDiv" style="background:black;height:800px"></div> | <p>Amstrad PCW 40028 ASIC (Metal layer).</p> |
| <script type="text/javascript"> | </div> |
| |
| var viewer = OpenSeadragon({ | <div class="osd-container"> |
| debugMode: false, | <div id="contentDiv" style="background:black; height:800px; width:100%;"></div> |
| id: "contentDiv", | </div> |
| prefixUrl: "zooms/40028/openseadragon/images/", | |
| tileSources: "zooms/40028/40028_Metal.dzi", | |
| showNavigator: true | |
| }); | |
| |
| </script> | <script type="text/javascript" src="/zooms/40028/openseadragon/openseadragon.js"></script> |
| | <script type="text/javascript"> |
| </HTML> | var intOSD = setInterval(function() { |
| | if (typeof OpenSeadragon !== 'undefined') { |
| ---- | clearInterval(intOSD); |
| | OpenSeadragon({ |
| | id: "contentDiv", |
| | prefixUrl: "/zooms/40028/openseadragon/images/", |
| | tileSources: "/zooms/40028/40028_DZI/40028_Metal.dzi", |
| | showNavigator: true, |
| | navigatorPosition: "TOP_RIGHT", |
| | debugMode: false |
| | }); |
| | } |
| | }, 500); |
| | </script> |
| | </div> |
| | </html> |
| |