Read error b

Time to align your Azimuth

User Tools

Site Tools


tech:amstrad:pcw:ioports

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
tech:amstrad:pcw:ioports [2026/06/19 23:52] pollitotech:amstrad:pcw:ioports [2026/06/19 23:57] (current) pollito
Line 8: Line 8:
 |85h       |Write     |Standalone Centronics (CEN) Port - Strobe                                        |Write byte to 87h then 85h then 87h to toggle STROBE                                           | |85h       |Write     |Standalone Centronics (CEN) Port - Strobe                                        |Write byte to 87h then 85h then 87h to toggle STROBE                                           |
 |87h       |Write     |Standalone Centronics (CEN) Port - Data                                          |Write data byte here as part of output sequence                                                | |87h       |Write     |Standalone Centronics (CEN) Port - Data                                          |Write data byte here as part of output sequence                                                |
-|9Fh       |Read      |Kempston Joystick Interface                                                      |Bit 4=FireBit 3=DownBit 2=UpBit 1=LeftBit 0=Right                                      | +|9Fh       |Read      |Kempston Joystick Interface                                                      |Bit 4=FireBit 3=DownBit 2=UpBit 1=LeftBit 0=Right                                      | 
-|A0h       |Read      |AMX Mouse - Vertical Movement (8255 PPI Port A)                                  |Low nibble=moves uphigh nibble=moves down                                                    | +|A0h       |Read      |AMX Mouse - Vertical Movement (8255 PPI Port A)                                  |Low nibble=moves uphigh nibble=moves down                                                    | 
-|A0h       |Read      |Multilink Network Interface - Control/Status                                     |Bit 1=byte waiting to sendBit 0=ready to receive                                             |+|A0h       |Read      |Multilink Network Interface - Control/Status                                     |Bit 1=byte waiting to sendBit 0=ready to receive                                             |
 |A0h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - SCSI Data                                 |Also used by ASD PCWHD10/20 as Data register (see A0h conflict)                                | |A0h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - SCSI Data                                 |Also used by ASD PCWHD10/20 as Data register (see A0h conflict)                                |
 |A0h       |Read/Write|ASD PCWHD10/PCWHD20 - Data Register                                              |Conflicts with Timatic and AMX Mouse                                                           | |A0h       |Read/Write|ASD PCWHD10/PCWHD20 - Data Register                                              |Conflicts with Timatic and AMX Mouse                                                           |
-|A1h       |Read      |AMX Mouse - Horizontal Movement (8255 PPI Port B)                                |Low nibble=moves righthigh nibble=moves left                                                 |+|A1h       |Read      |AMX Mouse - Horizontal Movement (8255 PPI Port B)                                |Low nibble=moves righthigh nibble=moves left                                                 |
 |A1h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Initiator Command Register                |Also used by ASD PCWHD10/20 as Error/Features                                                  | |A1h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Initiator Command Register                |Also used by ASD PCWHD10/20 as Error/Features                                                  |
 |A1h       |Read/Write|ASD PCWHD10/PCWHD20 - Error / Features                                           |Conflicts with Timatic                                                                         | |A1h       |Read/Write|ASD PCWHD10/PCWHD20 - Error / Features                                           |Conflicts with Timatic                                                                         |
-|A2h       |Read/Write|AMX Mouse - Button State & Reset (8255 PPI Port C)                               |Input: bits 0-2=button statesOutput: write FFh then 0 to reset                               |+|A2h       |Read/Write|AMX Mouse - Button State & Reset (8255 PPI Port C)                               |Input: bits 0-2=button statesOutput: write FFh then 0 to reset                               |
 |A2h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Mode Register                             |Also used by ASD PCWHD10/20 as Sector Count                                                    | |A2h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Mode Register                             |Also used by ASD PCWHD10/20 as Sector Count                                                    |
 |A2h       |Read/Write|ASD PCWHD10/PCWHD20 - Sector Count                                               |Conflicts with Timatic                                                                         | |A2h       |Read/Write|ASD PCWHD10/PCWHD20 - Sector Count                                               |Conflicts with Timatic                                                                         |
Line 28: Line 28:
 |A6h       |Read      |Electric Studio Light Pen - Position Low 8 Bits                                  |12-bit position counter low byte                                                               | |A6h       |Read      |Electric Studio Light Pen - Position Low 8 Bits                                  |12-bit position counter low byte                                                               |
 |A6h       |Read/Write|Multilink Network Interface - Data                                               |Read/write data byte                                                                           | |A6h       |Read/Write|Multilink Network Interface - Data                                               |Read/write data byte                                                                           |
-|A6h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Start DMA Target Receive / Input Data     |Not used by PCWalso used by ASD PCWHD10/20 as Drive/Head                                     |+|A6h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Start DMA Target Receive / Input Data     |Not used by PCWalso used by ASD PCWHD10/20 as Drive/Head                                     |
 |A6h       |Read/Write|ASD PCWHD10/PCWHD20 - Drive / Head                                               |Conflicts with Timatic and Light Pen and Multilink                                             | |A6h       |Read/Write|ASD PCWHD10/PCWHD20 - Drive / Head                                               |Conflicts with Timatic and Light Pen and Multilink                                             |
-|A7h       |Read      |Electric Studio Light Pen - Position High 4 Bits + Retrace Flags                 |Bits 6=V.RetraceBit 5=H.RetraceBits 3-0=high 4 bits of position                            |+|A7h       |Read      |Electric Studio Light Pen - Position High 4 Bits + Retrace Flags                 |Bits 6=V.RetraceBit 5=H.RetraceBits 3-0=high 4 bits of position                            |
 |A7h       |Read/Write|Multilink Network Interface - Data (alternate)                                   |Used alongside A6h                                                                             | |A7h       |Read/Write|Multilink Network Interface - Data (alternate)                                   |Used alongside A6h                                                                             |
-|A7h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Start DMA Initiator Receive / Reset Parity|Not used by PCWalso used by ASD PCWHD10/20 as Status/Command                                 |+|A7h       |Read/Write|Timatic Winchester / SASI (NCR 5380) - Start DMA Initiator Receive / Reset Parity|Not used by PCWalso used by ASD PCWHD10/20 as Status/Command                                 |
 |A7h       |Read/Write|ASD PCWHD10/PCWHD20 - Status / Command                                           |Conflicts with Timatic and Light Pen and Multilink                                             | |A7h       |Read/Write|ASD PCWHD10/PCWHD20 - Status / Command                                           |Conflicts with Timatic and Light Pen and Multilink                                             |
-|A8h       |Read/Write|Cirtech Gem (XTA) - Data Register                                                |XTA hard drive interfaceATA variant maps A8h-AFh                                             |+|A8h       |Read/Write|Cirtech Gem (XTA) - Data Register                                                |XTA hard drive interfaceATA variant maps A8h-AFh                                             |
 |A8h       |Read/Write|Cirtech Gem (ATA) - Data                                                         |ATA variant                                                                                    | |A8h       |Read/Write|Cirtech Gem (ATA) - Data                                                         |ATA variant                                                                                    |
 |A9h       |Read      |Cirtech Gem (XTA) - Controller Status                                            |Also: Write=Reset controller                                                                   | |A9h       |Read      |Cirtech Gem (XTA) - Controller Status                                            |Also: Write=Reset controller                                                                   |
 |A9h       |Read/Write|Cirtech Gem (ATA) - Error / Features                                             |ATA variant                                                                                    | |A9h       |Read/Write|Cirtech Gem (ATA) - Error / Features                                             |ATA variant                                                                                    |
 |A9h       |Read      |DKTronics Sound Generator - Read Selected AY-3-8912 Register                     |Read currently selected register                                                               | |A9h       |Read      |DKTronics Sound Generator - Read Selected AY-3-8912 Register                     |Read currently selected register                                                               |
-|AAh       |Read/Write|Cirtech Gem (XTA) - Controller DIP Switches / Generate Controller-Select Pulse   |Read=DIP switchesWrite=select pulse                                                          |+|AAh       |Read/Write|Cirtech Gem (XTA) - Controller DIP Switches / Generate Controller-Select Pulse   |Read=DIP switchesWrite=select pulse                                                          |
 |AAh       |Read/Write|Cirtech Gem (ATA) - Sector Count                                                 |ATA variant                                                                                    | |AAh       |Read/Write|Cirtech Gem (ATA) - Sector Count                                                 |ATA variant                                                                                    |
 |AAh       |Write     |DKTronics Sound Generator - Select AY-3-8912 Register                            |Write register number to select it                                                             | |AAh       |Write     |DKTronics Sound Generator - Select AY-3-8912 Register                            |Write register number to select it                                                             |
Line 49: Line 49:
 |AEh       |Read/Write|Cirtech Gem (ATA) - Drive / Head                                                 |ATA variant only                                                                               | |AEh       |Read/Write|Cirtech Gem (ATA) - Drive / Head                                                 |ATA variant only                                                                               |
 |AFh       |Read/Write|Cirtech Gem (ATA) - Status / Command                                             |ATA variant only                                                                               | |AFh       |Read/Write|Cirtech Gem (ATA) - Status / Command                                             |ATA variant only                                                                               |
-|D0h       |Read      |Kempston Mouse - X Position                                                      |0-255also readable at D2h                                                                    | +|D0h       |Read      |Kempston Mouse - X Position                                                      |0-255also readable at D2h                                                                    | 
-|D1h       |Read      |Kempston Mouse - Y Position                                                      |0-255also readable at D3h                                                                    |+|D1h       |Read      |Kempston Mouse - Y Position                                                      |0-255also readable at D3h                                                                    |
 |D2h       |Read      |Kempston Mouse - X Position (mirror)                                             |Same value as D0h                                                                              | |D2h       |Read      |Kempston Mouse - X Position (mirror)                                             |Same value as D0h                                                                              |
 |D3h       |Read      |Kempston Mouse - Y Position (mirror)                                             |Same value as D1h                                                                              | |D3h       |Read      |Kempston Mouse - Y Position (mirror)                                             |Same value as D1h                                                                              |
-|D4h       |Read      |Kempston Mouse - Button State                                                    |Bit 0=LeftBit 1=Right0=pressed                                                             | +|D4h       |Read      |Kempston Mouse - Button State                                                    |Bit 0=LeftBit 1=Right0=pressed                                                             | 
-|DFh       |Read      |MasterScan Optical Scanner                                                       |Bit 0: 0=light1=dark                                                                         | +|DFh       |Read      |MasterScan Optical Scanner                                                       |Bit 0: 0=light1=dark                                                                         | 
-|E0h       |Read      |Spectravideo Joystick Interface                                                  |Bit 4=RightBit 3=UpBit 2=LeftBit 1=FireBit 0=Down                                      | +|E0h       |Read      |Spectravideo Joystick Interface                                                  |Bit 4=RightBit 3=UpBit 2=LeftBit 1=FireBit 0=Down                                      | 
-|E0h       |Read      |Cascade (JoyceStick) Joystick Interface                                          |Bit 7=FireBit 4=UpBit 2=DownBit 1=RightBit 0=Leftconflicts with Spectravideo         |+|E0h       |Read      |Cascade (JoyceStick) Joystick Interface                                          |Bit 7=FireBit 4=UpBit 2=DownBit 1=RightBit 0=Leftconflicts with Spectravideo         |
 |E0h       |Read/Write|CPS8256 - DART Channel A Data                                                    |Serial/comms interface                                                                         | |E0h       |Read/Write|CPS8256 - DART Channel A Data                                                    |Serial/comms interface                                                                         |
 |E1h       |Read/Write|CPS8256 - DART Channel A Control                                                                                                                                               | |E1h       |Read/Write|CPS8256 - DART Channel A Control                                                                                                                                               |
 |E2h       |Read/Write|CPS8256 - DART Channel B Data                                                    |                                                                                               | |E2h       |Read/Write|CPS8256 - DART Channel B Data                                                    |                                                                                               |
-|E3h       |Read/Write|CPS8256 - DART Channel B Control / CEN Port Status & Control                     |Also used as CPS8256 CEN port: write 10h to select status modebit 5=printer ready            |+|E3h       |Read/Write|CPS8256 - DART Channel B Control / CEN Port Status & Control                     |Also used as CPS8256 CEN port: write 10h to select status modebit 5=printer ready            |
 |E4h       |Read/Write|CPS8256 - 8253 Counter 0                                                         |Used for baud rate setting (transmit)                                                          | |E4h       |Read/Write|CPS8256 - 8253 Counter 0                                                         |Used for baud rate setting (transmit)                                                          |
 |E5h       |Read/Write|CPS8256 - 8253 Counter 1                                                         |Used for baud rate setting (receive)                                                           | |E5h       |Read/Write|CPS8256 - 8253 Counter 1                                                         |Used for baud rate setting (receive)                                                           |
Line 71: Line 71:
 |EDh       |Read/Write|ProScan Interface - Unknown Device Select                                        |Possibly a second type of hand scanner                                                         | |EDh       |Read/Write|ProScan Interface - Unknown Device Select                                        |Possibly a second type of hand scanner                                                         |
 |EFh       |Read/Write|ProScan Interface - Upper Bound Port                                             |Upper port of ProScan range                                                                    | |EFh       |Read/Write|ProScan Interface - Upper Bound Port                                             |Upper port of ProScan range                                                                    |
-|F0h       |Write     |Memory Management - Bank Select for 0000h-3FFFh                                  |PCW paging: bit 7=1bits 6-0=block number                                                     |+|F0h       |Write     |Memory Management - Bank Select for 0000h-3FFFh                                  |PCW paging: bit 7=1bits 6-0=block number                                                     |
 |F1h       |Write     |Memory Management - Bank Select for 4000h-7FFFh                                  |PCW paging                                                                                     | |F1h       |Write     |Memory Management - Bank Select for 4000h-7FFFh                                  |PCW paging                                                                                     |
 |F2h       |Write     |Memory Management - Bank Select for 8000h-BFFFh                                  |PCW paging                                                                                     | |F2h       |Write     |Memory Management - Bank Select for 8000h-BFFFh                                  |PCW paging                                                                                     |
 |F3h       |Write     |Memory Management - Bank Select for C000h-FFFFh                                  |PCW paging                                                                                     | |F3h       |Write     |Memory Management - Bank Select for C000h-FFFFh                                  |PCW paging                                                                                     |
-|F4h       |Write     |CPC Paging Mode - Lock Register                                                  |Bits lock memory ranges from being read from alternate blocknot used by CP/M or LocoScript   | +|F4h       |Write     |CPC Paging Mode - Lock Register                                                  |Bits lock memory ranges from being read from alternate blocknot used by CP/M or LocoScript   | 
-|F4h       |Read      |Timer Counter                                                                    |Bottom 4 bits: counter incremented by timer interrupt (0-15)reading resets it                |+|F4h       |Read      |Timer Counter                                                                    |Bottom 4 bits: counter incremented by timer interrupt (0-15)reading resets it                |
 |F5h       |Write     |Video Controller - Roller-RAM Address                                            |Bits 7-0 specify block and offset / 512                                                        | |F5h       |Write     |Video Controller - Roller-RAM Address                                            |Bits 7-0 specify block and offset / 512                                                        |
 |F6h       |Write     |Video Controller - Vertical Scroll Origin                                        |Specifies which Roller-RAM line is at top of screen                                            | |F6h       |Write     |Video Controller - Vertical Scroll Origin                                        |Specifies which Roller-RAM line is at top of screen                                            |
-|F7h       |Write     |Video Controller - Display Control                                               |Bit 7=inverse videoBit 6=screen on/off                                                       | +|F7h       |Write     |Video Controller - Display Control                                               |Bit 7=inverse videoBit 6=screen on/off                                                       | 
-|F8h       |Write     |System Control Port                                                              |Multi-function: video enable/disableFDC interrupt modeboot sequence end (value 0 ends boot)| +|F8h       |Write     |System Control Port                                                              |Multi-function: video enable/disableFDC interrupt modeboot sequence end (value 0 ends boot)| 
-|F8h       |Read      |System Control Port - Status                                                     |Bit 6=frame flybackBit 5=FDC interrupt pendingBit 4=60Hz PCW flag                          | +|F8h       |Read      |System Control Port - Status                                                     |Bit 6=frame flybackBit 5=FDC interrupt pendingBit 4=60Hz PCW flag                          | 
-|F9h       |Read      |Prototype Serial Interface (IM6403 UART) - Status Register                       |Only on prototype PCWnot on production hardware                                              |+|F9h       |Read      |Prototype Serial Interface (IM6403 UART) - Status Register                       |Only on prototype PCWnot on production hardware                                              |
 |FCh       |Read      |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Error Status                |Returns controller error number                                                                | |FCh       |Read      |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Error Status                |Returns controller error number                                                                |
-|FCh       |Write     |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Command Port                |Used to send commands during resetalso 00FCh and 01FCh used by PCW9512                       | +|FCh       |Write     |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Command Port                |Used to send commands during resetalso 00FCh and 01FCh used by PCW9512                       | 
-|FDh       |Read      |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Printer Status              |Bit 7=bail barBit 6=command doneBit 1=busyBit 0=faultalso used by PCW9512 at 00FDh     |+|FDh       |Read      |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Printer Status              |Bit 7=bail barBit 6=command doneBit 1=busyBit 0=faultalso used by PCW9512 at 00FDh     |
 |FDh       |Write     |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Command/Data Port           |Sends printer commands during normal operation                                                 | |FDh       |Write     |PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Command/Data Port           |Sends printer commands during normal operation                                                 |
-|FEh       |Read/Write|LocoLink Parallel Transfer Interface                                             |Bit 1=Data 1 (input) / ACK (output)Bit 0=Data 0 (input) / BUSY (output)                      | +|FEh       |Read/Write|LocoLink Parallel Transfer Interface                                             |Bit 1=Data 1 (input) / ACK (output)Bit 0=Data 0 (input) / BUSY (output)                      | 
-|FEh       |Read/Write|Prototype Serial Interface (IM6403 UART) - Data Register                         |Only on prototype PCWnot on production hardwareconflicts with LocoLink                     | +|FEh       |Read/Write|Prototype Serial Interface (IM6403 UART) - Data Register                         |Only on prototype PCWnot on production hardwareconflicts with LocoLink                     | 
-|FFh       |Read/Write|PCW Linkit Parallel Transfer Interface                                           |Two-bit communication channelvalue read is binary inverse of value written by other PCW      |+|FFh       |Read/Write|PCW Linkit Parallel Transfer Interface                                           |Two-bit communication channelvalue read is binary inverse of value written by other PCW      |
  
 The above information is derived from John Elliott's excellent [[https://www.seasip.info/Unix/Joyce/hardware.pdf|PCW Hardware manual]]. Please note that the hard drive, and SCA Mark 2 Interface information have not been verified. The above information is derived from John Elliott's excellent [[https://www.seasip.info/Unix/Joyce/hardware.pdf|PCW Hardware manual]]. Please note that the hard drive, and SCA Mark 2 Interface information have not been verified.
tech/amstrad/pcw/ioports.txt · Last modified: by pollito