§ Схема портов
Порты начинаются с 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 Команды