Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
hardware:i_o_ports [2016/05/30 13:19] ex_writer [Input/Output Ports] |
hardware:i_o_ports [2016/06/13 23:20] (current) ex_writer [Input/Output Ports] |
||
---|---|---|---|
Line 2: | Line 2: | ||
- | ^ Port Number (hex) ^ Input ^ Function ^ Output ^ Function ^ | + | ^ Port ^ Output ^ Function ^ Input ^ Function ^ |
- | | 0 | COL0R | Color Register 0 (Right) | | | | + | | 0H | COL0R | Color Register 0 (Right) | | | |
- | | 1 | COL1R | Color Register 1 | | | | + | | 1H | COL1R | Color Register 1 | | | |
- | | 2 | COL2R | Color Register 2 | | | | + | | 2H | COL2R | Color Register 2 | | | |
- | | 3 | COL3R | Color Register 3 | | | | + | | 3H | COL3R | Color Register 3 | | | |
- | | 4 | COL0L | Color Register 0 (Left) | | | | + | | 4H | COL0L | Color Register 0 (Left) | | | |
- | | 5 | COL1L | Color Register 1 | | | | + | | 5H | COL1L | Color Register 1 | | | |
- | | 6 | COL2L | Color Register 2 | | | | + | | 6H | COL2L | Color Register 2 | | | |
- | | 7 | COL3L | Color Register 3 | | | | + | | 7H | COL3L | Color Register 3 | | | |
- | | 8 | CONCM | Consumer/Commercial mode | INTST | [[magic register#intercept|Intercept]] Status Feedback | | + | | 8H | CONCM | Consumer/Commercial mode | INTST | [[hardware:magic system#intercept|Intercept]] Status Feedback | |
- | | 9 | HORCB | [[color mapping#horizontal color boundary|Horizontal Color Boundary]], [[color mapping#background color|BG Color]] | | | | + | | 9H | HORCB | [[hardware:color#frame color|Frame color]], [[hardware:color#horizontal color boundary|Horizontal Color Boundary]] | | | |
- | | A | VERBL | Vertical Blank Register | | | | + | | AH | VERBL | Vertical Blanking Line | | | |
- | | B | COLBX | Color Block Transfer | | | | + | | BH | COLBX | Color Block Transfer | | | |
- | | C | MAGIC | [[Magic Register]] | | | | + | | CH | MAGIC | [[hardware:magic system#magic register|Magic Register]] | | | |
- | | D | INFBK | Interrupt Feedback | | | | + | | DH | INFBK | Interrupt Feedback | | | |
- | | E | INMOD | Interrupt Enable and Mode | VERAF | Vertical Address Feedback | | + | | EH | INMOD | Interrupt Enable and Mode | VERAF | Vertical Address Feedback | |
- | | F | INLIN | Interrupt Line | HORAF | Horizontal Address Feedback | | + | | FH | INLIN | Interrupt Line | HORAF | Horizontal Address Feedback | |
- | | 10 | TONMO | Tone Master Oscillator | SW0 | Player 1 Control Handle | | + | | 10H | TONMO | Tone Master Oscillator | SW0 | Player 1 Control Handle | |
- | | 11 | TONEA | Tone A Frequency | SW1 | Player 2 Control Handle | | + | | 11H | TONEA | Tone A Frequency | SW1 | Player 2 Control Handle | |
- | | 12 | TONEB | Tone B Frequency | SW2 | Player 3 Control Handle | | + | | 12H | TONEB | Tone B Frequency | SW2 | Player 3 Control Handle | |
- | | 13 | TONEC | Tone C Frequency | SW3 | Player 4 Control Handle | | + | | 13H | TONEC | Tone C Frequency | SW3 | Player 4 Control Handle | |
- | | 14 | VIBRA | Vibrato/Tremolo | KEY0 | Keypad Column 0 (right) | | + | | 14H | VIBRA | Vibrato Speed/Depth | KEY0 | Keypad Column 0 (right) | |
- | | 15 | VOLAB |Tone C Volume, Noise Modulation Control | KEY1 | Keypad Column 1 | | + | | 15H | VOLC | Modulation Type (Noise/Vibrato), Tone C Volume | KEY1 | Keypad Column 1 | |
- | | 16 | VOLC | Tone A Volume, Tone B Volume | KEY2 | Keypad Column 2 | | + | | 16H | VOLAB | Tone B Volume, Tone A Volume | KEY2 | Keypad Column 2 | |
- | | 17 | VOLN | Noise Volume | KEY3 | Keypad Column 3 (left) | | + | | 17H | VOLN | Noise Volume | KEY3 | Keypad Column 3 (left) | |
- | | 18 | SNDBX | Sound Block Transfer | | | | + | | 18H | SNDBX | Sound Block Transfer | | | |
- | | 19 | XPAND | Expander Pixel Definition | | | | + | | 19H | XPAND | Expander Pixel Definition | | | |
- | | 1C | | | POT0 | Player 0 Pot | | + | | 1CH | | | POT0 | Player 0 Pot | |
- | | 1D | | | POT1 | Player 1 Pot | | + | | 1DH | | | POT1 | Player 1 Pot | |
- | | 1E | | | POT2 | Player 2 Pot | | + | | 1EH | | | POT2 | Player 2 Pot | |
- | | 1F | | | POT3 | Player 3 Pot | | + | | 1FH | | | POT3 | Player 3 Pot | |
---- | ---- | ||
- | |||
===== Port Descriptions ===== | ===== Port Descriptions ===== | ||
+ | |||
+ | <WRAP todo>Currently incomplete</WRAP> | ||
+ | ==== COL0R, 1R, 2R, 3R ($0–$3) ==== | ||
+ | |||
+ | These registers define the color (bits 3–7) and brightness (bits 0–2) of pixels that are to the right of the color boundary as defined by the register at I/O address $9. | ||
+ | |||
+ | ==== COL0L, 1L, 2L, 3L ($4–$7) ==== | ||
+ | |||
+ | These registers define the color (bits 3–7) and brightness (bits 0–2) of pixels that are to the left of the color boundary as defined by the register at I/O address $9. | ||
==== CONCM ($8) ==== | ==== CONCM ($8) ==== | ||
Select video mode (0 = low res 160x102, 1 = high res 320x204). | Select video mode (0 = low res 160x102, 1 = high res 320x204). | ||
+ | |||
+ | ==== HORCB ($9) ==== | ||
+ | |||
==== VERBL ($A) ==== | ==== VERBL ($A) ==== | ||
Line 46: | Line 57: | ||
Vertical Blank. The Address chip needs this register to determine the scan line below which Screen Refresh is no longer needed. The Data chip must duplicate this register to determine when to turn on the border color. | Vertical Blank. The Address chip needs this register to determine the scan line below which Screen Refresh is no longer needed. The Data chip must duplicate this register to determine when to turn on the border color. | ||
- | ==== INMOD ($E) ==== | + | ==== COLBX ($B) ==== |
- | Interrupt Enable and Mode/Vertical Line Feedback. On write, this register enables interrupts and determines the interrupt mode of each. On read, this register contains the vertical line number that a Light Pen Interrupt was received on. Bit 3 of the Interrupt Enable port (0x0E) when set enables line interrupts, while bit 1 of the same register enables the Light Pen interrupt. | + | A block transfer to this register will load Color registers 7 through 0 (in that order) with the data written to this address. |
- | ==== INLIN ($F) ==== | + | ==== MAGIC ($C) ==== |
+ | |||
+ | [[hardware:magic system#Magic register]] | ||
+ | |||
+ | ==== INFBK ($D) ==== | ||
+ | |||
+ | Interrupt feedback register. Upon interrupt acknowledge by the Z80, the previously-written contents of this register are driven back to the Z80 through the microcycle bus. | ||
+ | |||
+ | ==== INMOD / VERAF ($E) ==== | ||
+ | |||
+ | Interrupt Enable and Mode/Vertical Line Feedback. On write, this register enables interrupts and determines the interrupt mode of each. On read, this register contains the vertical line number that a Light Pen Interrupt was received on. Bit 3 of the Interrupt Enable port (0EH) when set enables line interrupts, while bit 1 of the same register enables the Light Pen interrupt. | ||
+ | |||
+ | ==== INLIN / HORAF ($F) ==== | ||
Interrupt Line/Horizontal Address Feedback. On write, this register sets the scan line number on which to generate a line interrupt back to the Z80. On read, this register contains the horizontal address (i.e., position in the line) that a Light Pen Interrupt was received on. | Interrupt Line/Horizontal Address Feedback. On write, this register sets the scan line number on which to generate a line interrupt back to the Z80. On read, this register contains the horizontal address (i.e., position in the line) that a Light Pen Interrupt was received on. | ||
+ | |||
+ | ==== TONMO / SW0 ($10) ==== | ||
+ | |||
+ | TONMO is the "tone" (i.e., frequency) of the [[hardware:music processor#master oscillator]]. | ||
+ | |||
+ | SW0 | ||
+ | ==== XPAND ($19) ==== | ||
+ | |||
+ | Expand register. | ||
---- | ---- | ||
- | [NM:106, 143, source listing 5] | + | [NM:106, 143, source listing 5]\\ |
Reference: [[http://www.ballyalley.com/ml/ml_source/WOW_Latest_working_copy_of_full_disassembly_022104.asm|Wizard of Wor arcade disassembly]] | Reference: [[http://www.ballyalley.com/ml/ml_source/WOW_Latest_working_copy_of_full_disassembly_022104.asm|Wizard of Wor arcade disassembly]] |