Expansion Bus I/O Propagate Register: Difference between revisions

From SpecNext Wiki
Jump to: navigation, search
Ped7g (talk | contribs)
core 3.1.3 changes/refresh
updated to 78a6ee50
 
(One intermediate revision by one other user not shown)
Line 8: Line 8:
! Bit !! Description
! Bit !! Description
|-
|-
| 7-5 || Reserved, must be 0
| 7-6 || Reserved, must be 0
|-
| 5 || Propagate port 0xeff7 io cycles (hard reset = 0)
|-
|-
| 4 || (since core3.1.2) Propagate port {{PortNo|$xxFF}} I/O cycles (hard reset = 0)
| 4 || (since core3.1.2) Propagate port {{PortNo|$xxFF}} I/O cycles (hard reset = 0)
Line 18: Line 20:
| 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 11:50, 3 November 2024

Number TBRegisterNumber::$8A
Readable TBRegisterReadable::Yes
Writable TBRegisterWritable::Yes
Short Description ShortDesc::Monitoring internal I/O or adding external keyboard
Bit Description
7-6 Reserved, must be 0
5 Propagate port 0xeff7 io cycles (hard reset = 0)
4 (since core3.1.2) Propagate port {{#ask:

PortNumber::$xxFF }} ($xxFF{{#ask: PortNumber::$xxFF |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) I/O cycles (hard reset = 0)

3 Propagate port {{#ask:

PortNumber::$1FFD }} ($1FFD{{#ask: PortNumber::$1FFD |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) I/O cycles (hard reset = 0)

2 Propagate port {{#ask:

PortNumber::$DFFD }} ($DFFD{{#ask: PortNumber::$DFFD |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) I/O cycles (hard reset = 0)

1 Propagate port {{#ask:

PortNumber::$7FFD }} ($7FFD{{#ask: PortNumber::$7FFD |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) I/O cycles (hard reset = 0)

0 Propagate port {{#ask:

PortNumber::$**FE }} ($**FE{{#ask: PortNumber::$**FE |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) 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.

{{#ask: PortNumber::$**FE }} ($**FE{{#ask: PortNumber::$**FE |mainlabel=- |headers=hide |intro= /  |?NumberDec#- }}) 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)