Дешифратор адресов

Процессор 8080 может адресовать до FFFF памяти. Чтобы обойти ограничение, в Корвете применен дешифратор адресов, механизм, временно подключающий банки физической памяти к адресному пространству. Причем в Корвете не ограничились памятью и отобразили на адресное пространство ОЗУ устройства, регистры управления компьютером, клавиатуру.

Банки переключаются не произвольно по желанию программиста. Есть несколько фиксированных конфигураций:

```
        адрес
#конф	sysreg	описание
  00    3a7f    ПЗУ 14к, УВВ 3800-3FFF, ОЗУ 4000-FFFF
  18    fa7f    ПЗУ 16к, УВВ F800-FFFF, ОЗУ 4000-F7FF
  20    3a7f    ПЗУ 14к, УВВ 3800-FFFF, ОЗУ 4000-BFFF, ГЗУ C000-FFFF
  1C    fa7f    ОЗУ 0000-F7FF, УВВ F800-FFFF
  14    faf7    ПЗУ 8к,  ОЗУ 2000-F7FF, УВВ F800-FFFF
  40    faf7    ПЗУ 24к, ОЗУ 6000-F7FF, УВВ F800-FFFF
  60    bff7    ПЗУ 24к, ОЗУ 6000-BEFF, регистры BF00-BFFF, ГЗУ C000-FFFF
  5C    fff7    ОЗУ 0000-FDFF, регистры FE00-FFFF
  3C    fff7    ОЗУ 0000-3FFF, ГЗУ 4000-7FFF, ОЗУ 8000-FDFF, регистры FE00-FFFF

```

Чтобы изменить текущую конфигурацию памяти, надо записать в системный регистр (адрес SYSREG) номер конфигурации.
Переключение происходит моментально.

## Основные компоненты Дешифратора Адресов

### Микросхема D22 К555ТМ9 (SYSREG)

По сигналу (-SELREG NOR A7) запоминает состояние шины данных (D2-D7) и держит до следущего (-SELREG NOR A7).
Адрес регистра вычисляется по формуле: БазовыйАдресРегистров + 7F (7F это FF с выключенным битом 7)

Сигнал -RESET сбрасывает регистр в 00000.
Вход: D2-D7
Выход:
 0 D7 зачем-то заведено на -P (режим прошивки) микросхем ПЗУ.
 1 D5 ПЛМ I11
 2 D2 ПЛМ I12
 3 D3 ПЛМ I7
 4 D4 ПЛМ I9
 5 D6 ПЛМ I10

### Микросхема D31 К556РТ2 (82S100, PLS100, прошивка DEC.PLM)

Активация D31: все время активна
Сигналы на входе ПЛМ D31:
 0 A14
 1 A10
 2 A15
 3 A11
 4 A9
 5 A8
 6 A13
 7 SYSREG D3 через триггер D22 (активируется D24.8 ЛЛ1: -SELREG ИЛИ A7)
 8 A12
 9 SYSREG D4 через триггер D22 (активируется D24.8 ЛЛ1: -SELREG ИЛИ A7)
 10 SYSREG D6 через триггер D22 (активируется D24.8 ЛЛ1: -SELREG ИЛИ A7)
 11 SYSREG D5 через триггер D22 (активируется D24.8 ЛЛ1: -SELREG ИЛИ A7)
 12 SYSREG D2 через триггер D22 (активируется D24.8 ЛЛ1: -SELREG ИЛИ A7)
 13 -1DBIN от инвертора D26.8 из 1DBIN XS3
 14 М10 3.25
 15 -1WR (XS3 и 10.11)

Сигналы на выходе ПЛМ D31:

 D31.18 0 -CSROM3 чтение ПЗУ#3 EZ D32.20 (ПЗУ РФ4)
 D31.17 1 -CSKB чтение клавиш на EZ D36.15 + EZ D37.15 (MUX КП14)
 D31.16 2 -CSPOM1 чтение ПЗУ#1 на XS3, оттуда на EZ D34.20 (ПЗУ РФ4)
 D31.15 3 -CSROM2 чтение ПЗУ#2 EZ D33.20 (ПЗУ РФ4)
 D31.13 4 -CSDEV доступ к УВВ D21.19 (буфер АП6) + D23.5 (дешифратор ИД7) + D24.12 (ЛН1)
 D31.12 5 -SELREG запись регистр. D99.13 и D99.2 (непонятно: ЛЛ1?)
 D31.11 6 M2 банк ОЗУ на 2 D43.3 (ИД4)
 D31.10 7 M1 банк ОЗУ на 1 D43.13 (ИД4)

### Микросхема D23 К555ИД7

Активация D23: (-CSDEV AND NOT M10)
Сигналы на входе D23: CPU A3,A4,A5
Сигналы на выходе D23:
 0 CSCT - таймер (00Н)
 1 SCIOP3 - параллельный интерфейс N 3 (08Н)
 2 SCIOS1 - последовательный интерфейс N 1 (10Н)
 3 CSCOM - контроллер НГМД (18Н)
 4 CSIOS2 - последовательный интерфейс N 2 (20Н)
 5 CSINA - контроллер прерываний (28Н)
 6 CSIOP2 - параллельный интерфейс N 2 (30Н)
 7 CSIOP1 - параллельный интерфейс N 1 (38Н)

### Микросхема D43 К555ИД4

Сигналы на входе: M1 и M2 от D31
Активация0: (WERG AND -1WR)
Активация1: (-1DBIN AND NOT M10)
Сигналы на выходе:
 0.0 -WE запись в ОЗУ
 0.1 -WEV запись в АЦЗУ
 0.2 -WEG запись в ГЗУ
 0.3
 1.0 -RE чтение ОЗУ (выбор D74 К555ИР22)
 1.1 -RV чтение АЦЗУ
 1.2 -RG чтение ГЗУ
 1.3 -RDD прекурсор -RDEV по формуле (-RDD OR -CSDEV), чтение УВВ

Сигнал M10 (3.25, активен когда ЦП находится в состоянии М10) запрещает работу дешифраторов, но зачем TODO.

## Прошивка ПЛМ D31 (DEC.PLM)

```

```

## Регистры

```

Регистр:	SYSREG
Микросхема:	К555ТМ9 D22 (5.4)
Адрес:		0x7F (низкий A7)
Функция:	переключение конфигураций компьютера

Запись:

        адрес
#знач	sysreg	описание
  00    3a7f    TRS80 ПЗУ 14к, УВВ 3800-3FFF, ОЗУ 4000-FFFF
  18    fa7f    ROMB1 ПЗУ 16к, УВВ F800-FFFF, ОЗУ 4000-F7FF
  20    3a7f    ROMB2 ПЗУ 14к, УВВ 3800-FFFF, ОЗУ 4000-BFFF, ГЗУ C000-FFFF
  1C    fa7f    ODOSA ОЗУ 0000-F7FF, УВВ F800-FFFF
  14    fa7f    NDOS  ПЗУ 8к,  ОЗУ 2000-F7FF, УВВ F800-FFFF
  40    fa7f    BASIC ПЗУ 24к, ОЗУ 6000-F7FF, УВВ F800-FFFF
  60    bf7f    BASG  ПЗУ 24к, ОЗУ 6000-BEFF, регистры BF00-BFFF, ГЗУ C000-FFFF
  5C    ff7f    DOSA  ОЗУ 0000-FDFF, регистры FE00-FFFF
  3C    ff7f    DOSG1 ОЗУ 0000-3FFF, ГЗУ 4000-7FFF, ОЗУ 8000-FDFF, регистры FE00-FFFF

Базовые (верхние) адреса регистров в режимах:

					RGBASE		PBASE
#знач	название	(NCREG &		(остальные
		конфигур	 SYSREG)		 регистры)

00		TRS80		3A00			3B00
18		ROMB1		FA00			FB00
20		ROMB2		3A00			3B00
1C		ODOSA		FA00			FB00
14		NDOS		FA00			FB00
40		BASIC		FA00			FB00
60		BASG		BF00
5C		DOSA		FF00			FE00
3C		DOSG1		FF00			FE00

```