Difference between revisions of "Expansion Bus I/O Propagate Register"

From SpecNext official Wiki
Jump to: navigation, search
(core 3.1.3 changes/refresh)
(core 3.1.4 changes/refresh)
 
Line 18: Line 18:
 
| 1 || Propagate port {{PortNo|$7FFD}} I/O cycles (hard reset = 0)
 
| 1 || Propagate port {{PortNo|$7FFD}} I/O cycles (hard reset = 0)
 
|-
 
|-
| 0 || Propagate port {{PortNo|$**FE}} I/O cycles (hard reset = 0)
+
| 0 || Propagate port {{PortNo|$**FE}} I/O cycles (hard reset = 1)
 
|}
 
|}
 +
 +
core3.1.4 change: bit 0 is now set to "1" upon hard reset
  
 
If any of the bits are set, I/O cycles for the corresponding ports are propagated to the expansion bus when
 
If any of the bits are set, I/O cycles for the corresponding ports are propagated to the expansion bus when

Latest revision as of 01:12, 16 April 2020

Number $8A
Readable Yes
Writable Yes
Short Description Monitoring internal I/O or adding external keyboard
Bit Description
7-5 Reserved, must be 0
4 (since core3.1.2) Propagate port Timex Sinclair Video Mode Control ($xxFF / 255) I/O cycles (hard reset = 0)
3 Propagate port Plus 3 Memory Paging Control ($1FFD / 8189) I/O cycles (hard reset = 0)
2 Propagate port Next Memory Bank Select ($DFFD / 57341) I/O cycles (hard reset = 0)
1 Propagate port Memory Paging Control ($7FFD / 32765) I/O cycles (hard reset = 0)
0 Propagate port Keyboard ($**FE / 254) I/O cycles (hard reset = 1)

core3.1.4 change: bit 0 is now set to "1" upon hard reset

If any of the bits are set, I/O cycles for the corresponding ports are propagated to the expansion bus when the expansion bus is on.

If the internal port decode is still active, any response sent by devices on the expansion bus will be ignored.

The purpose here is to allow external peripherals to monitor changes in state inside the ZX Next.

Keyboard ($**FE / 254) is treated specially so that external keyboards can be attached. When its propagate bit is set, the value read from the bus will be mixed into keyboard reads on port $FE.

(note: Next registers with number higher than $7F are inaccessible from Copper code)