Read error b

Time to align your Azimuth

User Tools

Site Tools


tech:amstrad:pcw:ioports

I/O Ports

Port (hex)Direction Peripheral / Function Notes
00h Read/WriteFloppy Disk Controller (uPD765A) - Main Status Register FDC status register
01h Read/WriteFloppy Disk Controller (uPD765A) - Data Register FDC data register
84h Read Standalone Centronics (CEN) Port - Status Bit 0: 1=busy / 0=ready
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
9Fh Read Kempston Joystick Interface Bit 4=Fire, Bit 3=Down, Bit 2=Up, Bit 1=Left, Bit 0=Right
A0h Read AMX Mouse - Vertical Movement (8255 PPI Port A) Low nibble=moves up, high nibble=moves down
A0h Read Multilink Network Interface - Control/Status Bit 1=byte waiting to send, Bit 0=ready to receive
A0h Read/WriteTimatic Winchester / SASI (NCR 5380) - SCSI Data Also used by ASD PCWHD10/20 as Data register (see A0h conflict)
A0h Read/WriteASD PCWHD10/PCWHD20 - Data Register Conflicts with Timatic and AMX Mouse
A1h Read AMX Mouse - Horizontal Movement (8255 PPI Port B) Low nibble=moves right, high nibble=moves left
A1h Read/WriteTimatic Winchester / SASI (NCR 5380) - Initiator Command Register Also used by ASD PCWHD10/20 as Error/Features
A1h Read/WriteASD PCWHD10/PCWHD20 - Error / Features Conflicts with Timatic
A2h Read/WriteAMX Mouse - Button State & Reset (8255 PPI Port C) Input: bits 0-2=button states, Output: write FFh then 0 to reset
A2h Read/WriteTimatic Winchester / SASI (NCR 5380) - Mode Register Also used by ASD PCWHD10/20 as Sector Count
A2h Read/WriteASD PCWHD10/PCWHD20 - Sector Count Conflicts with Timatic
A3h Write AMX Mouse - PPI Mode Register Write 93h at startup for basic I/O mode
A3h Read/WriteTimatic Winchester / SASI (NCR 5380) - Target Command Register Also used by ASD PCWHD10/20 as Sector Number
A3h Read/WriteASD PCWHD10/PCWHD20 - Sector Number Conflicts with Timatic
A4h Read/WriteTimatic Winchester / SASI (NCR 5380) - SCSI Bus Status / Select Register Also used by ASD PCWHD10/20 as Cylinder Low
A4h Read/WriteASD PCWHD10/PCWHD20 - Cylinder Low Conflicts with Timatic
A5h Read/WriteTimatic Winchester / SASI (NCR 5380) - Bus and Status Register Also used by ASD PCWHD10/20 as Cylinder High
A5h Read/WriteASD PCWHD10/PCWHD20 - Cylinder High Conflicts with Timatic
A6h Read Electric Studio Light Pen - Position Low 8 Bits 12-bit position counter low byte
A6h Read/WriteMultilink Network Interface - Data Read/write data byte
A6h Read/WriteTimatic Winchester / SASI (NCR 5380) - Start DMA Target Receive / Input Data Not used by PCW, also used by ASD PCWHD10/20 as Drive/Head
A6h Read/WriteASD 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.Retrace, Bit 5=H.Retrace, Bits 3-0=high 4 bits of position
A7h Read/WriteMultilink Network Interface - Data (alternate) Used alongside A6h
A7h Read/WriteTimatic Winchester / SASI (NCR 5380) - Start DMA Initiator Receive / Reset ParityNot used by PCW, also used by ASD PCWHD10/20 as Status/Command
A7h Read/WriteASD PCWHD10/PCWHD20 - Status / Command Conflicts with Timatic and Light Pen and Multilink
A8h Read/WriteCirtech Gem (XTA) - Data Register XTA hard drive interface, ATA variant maps A8h-AFh
A8h Read/WriteCirtech Gem (ATA) - Data ATA variant
A9h Read Cirtech Gem (XTA) - Controller Status Also: Write=Reset controller
A9h Read/WriteCirtech Gem (ATA) - Error / Features ATA variant
A9h Read DKTronics Sound Generator - Read Selected AY-3-8912 Register Read currently selected register
AAh Read/WriteCirtech Gem (XTA) - Controller DIP Switches / Generate Controller-Select Pulse Read=DIP switches, Write=select pulse
AAh Read/WriteCirtech Gem (ATA) - Sector Count ATA variant
AAh Write DKTronics Sound Generator - Select AY-3-8912 Register Write register number to select it
ABh Write Cirtech Gem (XTA) - DMA and Interrupt Mask Not used on PCW
ABh Read/WriteCirtech Gem (ATA) - Sector Number ATA variant
ABh Write DKTronics Sound Generator - Write to Selected AY-3-8912 Register Write value to selected register
ACh Read/WriteCirtech Gem (ATA) - Cylinder Low ATA variant only
ADh Read/WriteCirtech Gem (ATA) - Cylinder High ATA variant only
AEh Read/WriteCirtech Gem (ATA) - Drive / Head ATA variant only
AFh Read/WriteCirtech Gem (ATA) - Status / Command ATA variant only
D0h Read Kempston Mouse - X Position 0-255, also readable at D2h
D1h Read Kempston Mouse - Y Position 0-255, also readable at D3h
D2h Read Kempston Mouse - X Position (mirror) Same value as D0h
D3h Read Kempston Mouse - Y Position (mirror) Same value as D1h
D4h Read Kempston Mouse - Button State Bit 0=Left, Bit 1=Right, 0=pressed
DFh Read MasterScan Optical Scanner Bit 0: 0=light, 1=dark
E0h Read Spectravideo Joystick Interface Bit 4=Right, Bit 3=Up, Bit 2=Left, Bit 1=Fire, Bit 0=Down
E0h Read Cascade (JoyceStick) Joystick Interface Bit 7=Fire, Bit 4=Up, Bit 2=Down, Bit 1=Right, Bit 0=Left, conflicts with Spectravideo
E0h Read/WriteCPS8256 - DART Channel A Data Serial/comms interface
E1h Read/WriteCPS8256 - DART Channel A Control
E2h Read/WriteCPS8256 - DART Channel B Data
E3h Read/WriteCPS8256 - DART Channel B Control / CEN Port Status & Control Also used as CPS8256 CEN port: write 10h to select status mode, bit 5=printer ready
E4h Read/WriteCPS8256 - 8253 Counter 0 Used for baud rate setting (transmit)
E5h Read/WriteCPS8256 - 8253 Counter 1 Used for baud rate setting (receive)
E7h Write CPS8256 - 8253 Write Mode Word Write mode byte here (e.g. 36h or 76h for baud rate)
E8h Write CPS8256 CEN Port - Data Output Write character to this port before toggling STROBE via E3h
E9h Read/WriteProScan Interface - Base Port Interface for Naksha hand scanner / fax
EAh Read/WriteProScan Interface - Fax Device Select (FX1) Select fax as image source
EBh Read/WriteProScan Interface - Fax Device Select (FX2) Select fax (second type) as image source
ECh Read/WriteProScan Interface - Hand Scanner Select Select hand scanner as image source
EDh Read/WriteProScan Interface - Unknown Device Select Possibly a second type of hand scanner
EFh Read/WriteProScan Interface - Upper Bound Port Upper port of ProScan range
F0h Write Memory Management - Bank Select for 0000h-3FFFh PCW paging: bit 7=1, bits 6-0=block number
F1h Write Memory Management - Bank Select for 4000h-7FFFh PCW paging
F2h Write Memory Management - Bank Select for 8000h-BFFFh 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 block, not used by CP/M or LocoScript
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
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 video, Bit 6=screen on/off
F8h Write System Control Port Multi-function: video enable/disable, FDC interrupt mode, boot sequence end (value 0 ends boot)
F8h Read System Control Port - Status Bit 6=frame flyback, Bit 5=FDC interrupt pending, Bit 4=60Hz PCW flag
F9h Read Prototype Serial Interface (IM6403 UART) - Status Register Only on prototype PCW, not on production hardware
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 reset, also 00FCh and 01FCh used by PCW9512
FDh Read PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Printer Status Bit 7=bail bar, Bit 6=command done, Bit 1=busy, Bit 0=fault, also used by PCW9512 at 00FDh
FDh Write PCW8256/8512/9256/10 Dot-Matrix Printer Controller - Command/Data Port Sends printer commands during normal operation
FEh Read/WriteLocoLink Parallel Transfer Interface Bit 1=Data 1 (input) / ACK (output), Bit 0=Data 0 (input) / BUSY (output)
FEh Read/WritePrototype Serial Interface (IM6403 UART) - Data Register Only on prototype PCW, not on production hardware, conflicts with LocoLink
FFh Read/WritePCW Linkit Parallel Transfer Interface Two-bit communication channel, value read is binary inverse of value written by other PCW

The above information is derived from John Elliott's excellent 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