Including rare hardware as well ... You can click on parts with blue background to show/hide more information.
Enterprise generally uses only 8 bit I/O addressing (full 16 bit is impossible since the highest two bits are "messed up" by Dave anyway). Enterprise bus bridge has a well designed port allocation mechanism that each cards can get a port range based on the card position or so. Unfortunately this feature was highly unknown for many people (especially in Hungary) and not so much useful without the bus bridge anyway. So it seems, that every hardware development uses some more or less fixed I/O port(s) now.
Serial card designed by Mr Meszaros. The main purpose was using serial PC mouse (the Enterprise mouse - "the rat" - was rare, expensive, uncomfortable and short-live stuff). Probably it can be used for other purposes as well, of course. Enterprise has serial port, but it's software based thus not to so nice to use if for mouse, as it needs all the CPU time.
0x00 Serial card 'Meszaros' 0x01 Serial card 'Meszaros'
A relative new implementation, to be able to connect a SID sound chip (known from Commodore-64, for example) to the Enterprise.
0x08 - 0x0F
Probably the most important and used add-on produced by the company itself, and also many clones exist.
0x10 EXDOS WD177x write command register / read status register 0x11 EXDOS WD177x track register read/writeOpps 0x12 EXDOS WD177x sector register read/write 0x13 EXDOS WD177x data register read/write 0x14 EXDOS WD177x [echo of port 0x10] write command register / read status register 0x15 EXDOS WD177x [echo of port 0x11] track register read/write 0x16 EXDOS WD177x [echo of port 0x12] sector register read/write 0x17 EXDOS WD177x [echo of port 0x13] data register read/write 0x18 EXDOS card status/control register 0x19 EXDOS card [echo of port 0x18] status/control register 0x1a EXDOS card [echo of port 0x18] status/control register 0x1b EXDOS card [echo of port 0x18] status/control register 0x1c EXDOS card [echo of port 0x18] status/control register 0x1d EXDOS card [echo of port 0x18] status/control register 0x1e EXDOS card [echo of port 0x18] status/control register 0x1f EXDOS card [echo of port 0x18] status/control register
WD177x used in EXDOS can write data in denser on higher clock as it turned out. However it is incompatible with the usual disk format, so a software switchable solution can be useful to exploit this feature. Of course it didn't exist on the original EXDOS card.
0x20 Turbo EXDOS speed switching
0x32 Z180 configuration 0x3F Z180 configuration
0x40 ZX Spectrum emulator card, high byte addressHigh byte of address is stored here when NMI is generated 0x41 ZX Spectrum emulator card, low byte addressLow byte of address is stored here when NMI is generated 0x42 ZX Spectrum emulator card, dataData bus content is stored here when NMI is generated 0x43 ZX Spectrum emulator card, operation typeType of access when NMI is generated (bit 7: 1 = attribute memory write operation, 0 = I/O operation) 0x44 Spectrum emulator, write: enable emulatorSet bit 7 to turn on the emulator.
An experiment to add some mathematical processing power :) to the system with the AMD Am9511 chip, also named as the "APU". There is not so much a standard way to use its capabilities, you need custom softwares written for it.
0x50 APU (AMD Am9511) "FPU" read data or write data 0x51 APU (AMD Am9511) "FPU" read status or write command
Zozosoft's RTC card, supported by ZT (ZozoTools) ROM (you can have real time clock above the status line with the help of 1Hz interrupt).
0x7E CMOS RTC/memory register select 0x7F CMOS RTC/memory register read/write
Nick has only four I/O ports; most parameters are described with an in-memory list called as the LPT (Line Parameter Table) including the video and colour mode, video memory addresses and the vsync itself too, even at scanline level if you want. The rest of the 0x80-0x8F port range contains "echoes" of the Nick registers above 0x83. Important: Nick ports are write-only! There is some odd behaviour that you can read the (Nick's) bus state on these I/O ports. In theory it can be used for some video effects. I can't say I can understand that very well though :)
0x80 Nick FIXBIAS (for 16 bour modes), and some other bits 0x81 Nick border color 0x82 Nick LPL (low byte of address of the LPT) 0x83 Nick LPH (high byte of address of the LPT), clocking enable, reload bits for LPT 0x84 Nick [echo of port 0x80] FIXBIAS 0x85 Nick [echo of port 0x81] border color 0x86 Nick [echo of port 0x82] LPL 0x87 Nick [echo of port 0x83] LPH 0x88 Nick [echo of port 0x80] FIXBIAS 0x89 Nick [echo of port 0x81] border color 0x8a Nick [echo of port 0x82] LPL 0x8b Nick [echo of port 0x83] LPH 0x8c Nick [echo of port 0x80] FIXBIAS 0x8d Nick [echo of port 0x81] border color 0x8e Nick [echo of port 0x82] LPL 0x8f Nick [echo of port 0x83] LPH
0xa0 Dave tone channel 0 frequency low byte 0xa1 Dave tone channel 0 frequency high nybble + params 0xa2 Dave tone channel 1 frequency low byte 0xa3 Dave tone channel 1 frequency high nybble + params 0xa4 Dave tone channel 2 frequency low byte 0xa5 Dave tone channel 2 frequency high nybble + params 0xa6 Dave noise frequency, polynominal counter + misc 0xa7 Dave sync, D/A mode, and interrupt selection 0xa8 Dave tone channel 0 left volume 0xa9 Dave tone channel 1 left volume 0xaa Dave tone channel 2 left volume 0xab Dave noise channel left volume 0xac Dave tone channel 0 right volume 0xad Dave tone channel 1 right volume 0xae Dave tone channel 2 right volume 0xaf Dave noise channel right volume 0xb0 Dave MMU reg, page 0 (0000-3FFF) selector 0xb1 Dave MMU reg, page 1 (4000-7FFF) selector 0xb2 Dave MMU reg, page 2 (8000-BFFF) selector 0xb3 Dave MMU reg, page 3 (C000-FFFF) selectorHeart of the memory management on the Enterprise
64K Z80 address space is split into 4 * 16K pages. Enterprise-128 can have max of 4Mbyte (!) memory (both of ROM/RAM, mixed etc), that address space is split into 256 * 16K segments. Any of the segment can be mapped as any of the page. 0xb4 Dave enable/reset interrupt sources/latches 0xb5 Dave active low strobe on WR0/RD0 (keyboard row select/read)On write (WR0): Bit 0-3: Select keyboard row (only rows 0-9 have keys!) Bit 4: STROBE output for printer port Bit 5: switch off tape sound Bit 6: switch REM1 on Bit 7: switch REM2 on On read (RD0): read selected keyboard row (see above, WR0, bits 0-3) 0xb6 Dave active low strobe on WR1/RD1 On write: printer port output (full 8 bits) On read: control port (joystick) 0xb7 Dave active low strobe on WR2/RD2 0xbf Dave sysconfig register (wait states, clkdiv)
Comments"strobe on" stuffs are just signals address decoded by the Dave to have enable signals for various other chips wants to implement I/O. Thus, 0xB5 is named as "Dave active low strobe on WR0/RD0" by the Dave documentation (that is low active signal RD0 when port 0xB5 is read, and WR0 when port 0xB5 is written), but that signal then is used in a specific way on the EP board, ie, mainly for keyboard handling in this case. Dave has six signals like this, read and write "favour" for three ports, namely RD0, WR0, RD1, WR1, RD2, WR2. Each of them means reading or writing ports 0xB5, 0xB6 and 0xB7.
IDE card from Zozosoft. It allows four cards to be connected, but I don't think so it was too common.
0xe0 Possible another IDE card (see ports 0xec-0xef for the layout) 0xe1 - "" - 0xe2 - "" - 0xe3 - "" - 0xe4 Possible another IDE card (see ports 0xec-0xef for the layout) 0xe5 - "" - 0xe6 - "" - 0xe7 - "" - 0xe8 Possible another IDE card (see ports 0xec-0xef for the layout) 0xe9 - "" - 0xea - "" - 0xeb - "" - 0xec IDE data register low byte 0xed IDE data register high byteIDE has 16 bit data bus, thus we need two 8 bit data bus port to represent it for the Z80. 0xee IDE command register port 1Command (write) / status (read) register for connector #1. Lower 6 bits can be read back. High two bits when read: INT and PDIAG signals of the IDE bus. 0xef IDE command register port 0Command (write) / status (read) register for connector #0. Lower 6 bits can be read back. High two bits when read: INT and PDIAG signals of the IDE bus. Command ports for the two connectors. Lower 6 bits can be read back. More on IDE card
I have not so much idea, it's some kind of solution to play digitalized samples in a better quality than Dave can do (6 bits).4 x 8bit DAC, probably to support 4 channel "MOD like" file playing (DTM files?). It's stereo, 2-2 channels for left and right.
0xf0 External DAC write 0xf1 External DAC write 0xf2 External DAC write 0xf3 External DAC write
See information about the Spectrum emulator above in the list. These ports are used in ZX Spectrum.
0xfe Spectrum emulator 0xff Spectrum emulator