Overview
Interrupts
TODO
Roadmap
- PS2 Keyboard
- Timer
- SPI, SD-Card
- Sound card
- Real-Time-Clock
- MIDI (via FPGA)
- Barcode Scanner (RS232 protocol)
- GPIO
- IO Break Out-Board
ISA
For further details see ISA Overview.
Mnemonic | Description |
---|---|
prefix_a16 | change addressing mode to memory mapped IO for the next instruction |
i2c_send | Send data over I2C |
i2c_recv | Receive data over I2C |
spi | send and receive for SPI communication |
Control Lines
Note: We use ~
to denote active-low control lines. All other control lines are active-high.
Parallel
~INT
: Signals CPU interrupt from IO-device.INTACK
: Signals acknowledgement from CPU to IO-device. Commences interrupt handling routine.IO/MEM_TO_DBUS
: Memory Write From BusIO/MEM_FROM_DBUS
: Memory Read From BusADDR16
: Shared with Graphics to differentiate between MMIO and normal address space. The 17th address bit, so to say.BUSREQ
: Signals CPU that IO-device wants to access data bus for read/write operation. For caseIO to CPU
: For caseCPU to IO
:
Serial (for SPI/I2C)
SPI_SEND/REC
: For sending and receiving data via SPI communication.SPI_SCLK_EN
: Enables clock of SPI device to make SPI communication possible according to SPI protocol.
IO Address Ranges
Address | Device |
---|---|
0x0000 | reserved |
0x0001 | Arduino |
0x0008-0x000f | Keyboard |
0x0100-0x01ff | Timer |
0x8000-0xffff | Graphics-Card |