§ Схема портов

Порты начинаются с 20h до 5Fh — гарантированно. Но есть и расширенные порты:
Arduino, процессор Atmega328P:
   | 0/8   |1/9    | 2/A    | 3/B    | 4/C    | 5/D    | 6/E    | 7/F
---+-------+-------+--------+--------+--------+--------+--------+-----
20 | ...   | ...   | ...    | PINB   | DDB    | PORTB  | PINC   | DDC
28 | PORTC | PIND  | DDD    | PORTD  | ...    | ...    | ..     | ...
30 | ...   | ...   | ...    | ...    | ...    | TIFR0  | TIFR1  | TIFR2
38 | ...   | ...   | ...    | PCIFR  | EIFR   | EIMSK  | GPIOR0 | EECR
40 | EEDR  | EEARL | EEARH  | GTCCR  | TCCR0A | TCCR0B | TCNT0  | OCR0A
48 | OCR0B | ...   | GPIOR1 | GPIOR2 | SPCR   | SPSR   | SPDR   | ...
50 | ACSR  | ...   | ...    | SMCR   | MCUSR  | MCUCR  | ...    | SPMCSR
58 | ...   | ...   | ...    | RAMPZ  | ...    | SPL    | SPH    | SREG
Свободные порты резервированы для дальнейшего использования, но я займу для них место под собственную периферию.

§ Периферия #1

20 Банк памяти
21 Статус клавиатуры
22 Статус устройств 0=keyboard hit; 5=SPI busy; 6=DRAM busy; 7=SDRAM WE
2C Курсор X
2D Курсор Y
2E Таймер (LO)
2F Таймер (HI)
30 SDRAM[ 7..0]
31 SDRAM[15..8]
32 SDRAM[23..16]
33 SDRAM[31..24]
34 SDRAM данные I/O
38 Видеорежим
39 SPI Данные
3A SPI Команды