# 11. Карта портов

## 11.1 Системные порты Z84C15 (внутренние)

Эти адреса изменить невозможно — находятся вне ППЛМ [IvanMak.txt:869–870].

| Порт | Назначение | Доступ |
|------|-----------|--------|
| `#10` | SIO A data / CTC channel 0 | R/W |
| `#11` | SIO A control / CTC channel 1 | R/W |
| `#12` | SIO B data / CTC channel 2 | R/W |
| `#13` | SIO B control / CTC channel 3 | R/W |
| `#14` | PIO A data | R/W |
| `#15` | PIO A control | R/W |
| `#16` | PIO B data | R/W |
| `#17` | PIO B control | R/W |
| `#18` | SIO data channel A (клавиатура) | R/W |
| `#19` | SIO control channel A (статус клавиатуры) | R/W |
| `#1A` | SIO data channel B (мышь) | R/W |
| `#1B` | SIO control channel B (мышь) | R/W |
| `#1E` | PIO B бит 0 — IRQ от ISA | R |
| `#1F` | PIO B + джойстик (Kempston) | R/W |
| `#EE` | CTC channel 2 (альтернативный) | R/W |
| `#EF` | CTC channel 3 (альтернативный) | R/W |
| `#F0` | CTC channel 0 (альтернативный) | R/W |
| `#F1` | CTC channel 1 (альтернативный) | R/W |
| `#F4` | CTC — альтернативный доступ | |

## 11.2 Управление памятью

| Порт | Назначение | Источник |
|------|-----------|----------|
| `#7FFD` | Основной: W3 page (0–2), RAM/ROM select, lock | IvanMak.txt:1343 |
| `#1FFD` | Расширенный: W0 page (0–2), turbo, extended RAM, VRAM segment | IvanMak.txt:1345 |
| `#DFFD` | W1 page select (Pentagon-512) | IvanMak.txt:1346 |
| `#EFF7` | W2 page select (Pentagon-512) | IvanMak.txt:1346 |
| `#82` | W0 page (PAGE0) — всегда доступен | IvanMak.txt:1348 |
| `#A2` | W1 page (PAGE1) — всегда доступен | IvanMak.txt:1348 |
| `#C2` | W2 page (PAGE2) — всегда доступен | IvanMak.txt:1348 |
| `#E2` | W3 page (PAGE3) — всегда доступен | IvanMak.txt:1348 |

## 11.3 Видео

| Порт | Назначение | Источник |
|------|-----------|----------|
| `#89` | RGADR (PORT_Y) — номер строки/блока видео-ОЗУ | IvanMak.txt:1349 |
| `#C9` | RGMOD — страница режима экрана (бит 0: 0/1) | IvanMak.txt:1350 |

## 11.4 Управление конфигурацией/прошивкой

| Порт | Назначение | Источник |
|------|-----------|----------|
| `#FB` | Включение КЭШ-ОЗУ (IN), COVOX data | IvanMak.txt:1351 |
| `#7B` | Выключение КЭШ-ОЗУ (IN) | Parinov.txt:598 |

## 11.5 Дисковая подсистема

| Порт | Назначение | Источник |
|------|-----------|----------|
| `#0F` | ВГ93 Command/Status (после ремапинга #1F → #0F) | IvanMak.txt:1270 |
| `#1F` | ВГ93 Command/Status (оригинал, ремапится) | IvanMak.txt:1344 |
| `#3F` | ВГ93 Track register | IvanMak.txt:1271 |
| `#5F` | ВГ93 Sector register | IvanMak.txt:1272 |
| `#7F` | ВГ93 Data register | IvanMak.txt:1273 |
| `#FF` | ВГ93 Drive Control (write); IRQ/джойстик (read) | IvanMak.txt:1274 |
| `#BD` | Переключение режима FDD (720K/1.44M) | IvanMak.txt:1347 |
| `xx50` | IDE Data | Parinov.txt:958 |
| `xx51` | IDE Error/Features | Parinov.txt:958 |
| `xx52` | IDE Sector Count | Parinov.txt:958 |
| `xx53` | IDE Sector Number | Parinov.txt:958 |
| `xx54` | IDE Cylinder Low | Parinov.txt:958 |
| `xx55` | IDE Cylinder High | Parinov.txt:958 |
| `4052h` (R) / `4152h` (W) | IDE Device/Head | Parinov.txt:959 |
| `4053h` (R) / `4153h` (W) | IDE Status/Command | Parinov.txt:959 |
| `FFBD` | CMOS data read | BIOS_v3.txt:308 |
| `BFBD` | CMOS data write | BIOS_v3.txt:308 |
| `DFBD` | CMOS address write | BIOS_v3.txt:308 |

## 11.6 Звук

| Порт | Назначение | Источник |
|------|-----------|----------|
| `#FB` | COVOX data (also КЭШ-ОЗУ enable) | IvanMak.txt:642 |
| `#4F` | COVOX/CBL data | IvanMak.txt:642 |
| `#4E` | CBL control (8/16-bit — см. `10-sound.md §9.4.2`) | IvanMak.txt:662, Parinov.txt:692 |

## 11.7 Джойстик и системные

| Порт | Назначение | Источник |
|------|-----------|----------|
| `#FE` | ZX-клавиатурная матрица, бипер, CBL статус | IvanMak.txt:1344 |
| `#1F` | Джойстик (Kempston) / PIO B | IvanMak.txt:1344 |

## 11.8 Кросс-ссылки

- BIOS-функции: `02-bios.md`
- DSS-функции: `03-dss.md`
- Управление памятью: `04-memory.md`
- Звук (AY, COVOX, CBL): `10-sound.md`
- Видео/палитра: `05-graphics.md`
- Прерывания: `07-irq.md`
- Детали I/O: `08-io.md`
- Баги: `12-bugs.md`
