[1. Спецификации аппаратуры]
1.1 Память
- Одна микросхема статического ОЗУ (static RAM) на 32 килобайта, которая сделана энергонезависимой с помощью батареи и настраиваемой схемы супервизора. Эта микросхема поделена на 2 банка по 16 килобайта:
Банк 'BASIC ROM'
Банк 'Shadow ROM'
Под управлением программного обеспечения эти банки могут быть отображены на адрес 0x0000 компьютера ZX Spectrum.
- Микросхема супервизора напряжения питания запрещает отображение страниц памяти 'BASIC ROM' и 'Shadow ROM', если напряжение питания упадет ниже 4.75V на время более 2 микросекунд.
- 'BASIC ROM' и первые 11.5 KB 'Shadow ROM' используются для хранения операционной системы (OpSYs) [7] с защитой от записи, которая управляется программным обеспечением.
- Последние 4.5 килобайта 'Shadow ROM' используются как ОЗУ общего назначения (general purpose RAM).
1.2 Система хранения данных
- Одна карта microSD, работающая в режиме SPI на тактовой частоте 12 МГц.
- Одна микросхема энергонезависимой памяти SRAM на 128 килобайт (устанавливается как опция).
1.3 Порты периферийных устройств
1.3.1 Порт джойстика Kempston.
1.3.2 Автоматически конфигурируемый последовательный порт. Может автоматически сконфигурироваться как порт мыши PS/2 / клавиатуры / асинхронный последовательный.
1.3.3 Полноскоростной порт устройства USB 2.0, используемый для подключения компьютера-сервера (на сервере подключение видится как виртуальный USB COM порт).
1.3.4 20 МГц порт SPI с сигналами управления /SEL, /INT и /RST.
1.3.5 Один вспомогательный сигнал управления (auxiliary control line), который доступен на ножевом коннекторе ZX Spectrum (интерфейс расширения ZX_EDGE).
1.4 Управление интерфейсом
1.4.1 Многофункциональная кнопка с отдельным микроконтроллером. Кнопка выполняет 4 разные функции, в зависимости от длительности нажатия и текущего режима:
- ON/OFF: включение и выключение интерфейса. Эта функция переводит интерфейс из неактивного состояние в активное, и наоборот. Функция срабатывает, если время нажатия находится в интервале 1.2 .. 2.5 секунды.
- RESET: функция сброса ZX Spectrum. Срабатывает, если время нажатия находится в интервале 0.5 .. 1.2 секунды, при этом сигнальная линия /RESET ножевого коннектора ZX Spectrum притягивается к лог. 0 выходом с открытым стоком на время 5 миллисекунд.
- NMI: функция выдачи немаскируемого прерывания процессора Z80 компьютера ZX Spectrum. Срабатывает, если произведено короткое нажатие на кнопку (длительностью 0.2 .. 0.5 секунды), при этом сигнал /NMI ножевого коннектора ZX Spectrum притягивается к лог. 0 выходом с открытым стоком на время 5 миллисекунд.
- SYSLD: функция восстановления операционной системы [7] Interface 1bis. Срабатывает, если время нажатия на кнопку больше 2.5 секунды, при этом интерфейс перезагрузит свою операционную систему (заполнит память BASIC ROM и Shadow ROM) с сервера или карты SD.
1.4.2 Индикационные светодиоды
Имеется 6 светодиодов, показывающих состояние интерфейса (control LEDs):
LED 'O', показывает состояния ON/OFF.
LED 'B', показывает активность 'BASIC ROM'.
LED 'S', показывает активность 'Shadow ROM'.
LED 'M', когда горит: мышь активна как мышь Kempston. Когда мерцает: мышь активна как джойстик Kempston.
LED 'C', показывает, что была идентифицирована карта microSD.
LED 'U', показывает, что выбрана память serial SRAM (если эта опция установлена), иначе показывает, что установлено соединение с сервером через порт USB.
1.4.3 Выбор разновидности модели ZX Spectrum (ZX Spectrum model selector)
Интерфейс снабжен перемычками, предназначенными для корректной разводки сигнала 'ROM disable' ножевого коннектора, что отличается для некоторых моделей ZX Spectrum.
1.4.3.1 Машины типа 'One ROM' (48k, +128, +2):
- Перемычки устанавливаются в положение 1-2, 3-4
- Сигналы ножевого коннектора разведены на контакты 4B, 25A
1.4.3.2 Машины типа 'Two ROMs' (+2A, +2B, +3):
- Перемычки устанавливаются в положение 2-3, 4-5
- Сигналы ножевого коннектора разведены на контакты 4B, 15A
1.5 Коннекторы
1.5.1 Порт USB: разъем Micro USB type B, обозначающий, что это устройство USB, не хост (J5).
Конт. |
Имя |
Напр. |
Описание |
1 |
VBUS |
I |
Определение напряжения порта USB |
2 |
DAT- |
I/O |
Сигналы данных USB |
3 |
DAT+ |
4 |
NC |
|
Никуда не подключено |
5 |
GND |
|
Земля, общий провод |
1.5.2 Порт PS/2: 6-контактный Mini DIN, мама (J9). Ниже в таблице показана цоколевка коннектора.
Конт. |
Имя |
Напр. |
Описание |
1 |
DT |
I/O |
Данные (SDA) |
2 |
NC |
I/O |
Никуда не подключено |
3 |
GND |
|
Земля, общий провод |
4 |
VCC |
O |
5V, выход питания |
5 |
CK |
I/O |
Такты данных (SCK) |
6 |
EAR |
O |
Выход проигрывателя файлов ленты (Tape player port) |
1.5.3 Порт джойстика Kempston: 9-выводный D-Sub, папа (J3). Входы интерфейса имеют активное состояние лог. 0, т. е. при подтягивании входа контактами к земле. Ниже в таблице показана цоколевка коннектора.
Конт. |
Имя |
Напр. |
Описание |
1 |
nUP |
I |
/Up, вверх |
2 |
nDOWN |
I |
/Down, вниз |
3 |
nLEFT |
I |
/Left, влево |
4 |
nRIGHT |
I |
/Right, вправо |
5 |
NC |
|
Никуда не подключено |
6 |
nFIRE1 |
I |
/Fire1, огонь 1 |
7 |
VCC |
O |
5V, выход питания |
8 |
GND |
|
Земля, общий провод |
9 |
nFIRE2 |
I |
/Fire2, огонь 2 |
1.5.4 Порт SPI: 6-выводный папа (J8).Ниже в таблице показана цоколевка коннектора.
Конт. |
Имя |
Напр. |
Описание |
1 |
SDO |
O |
Последовательные данные (выход) |
2 |
VDD |
O |
Выход регулируемого напряжения питания 3.3V |
3 |
SCK |
O |
Такты последовательных данных (выход) |
4 |
NC |
|
Никуда не подключено |
5 |
SDI |
I |
Последовательные данные (вход) |
6 |
GND |
|
Земля, общий провод |
1.5.5 Управление SPI: 8-выводный папа (J7).Ниже в таблице показана цоколевка коннектора.
Конт. |
Имя |
Напр. |
Описание |
1 |
nEIT |
I |
Внешнее прерывание |
2 |
NC |
|
Никуда не подключено |
3 |
nECS |
O |
Выборка внешней микросхемы (External Chip Select) |
4 |
NC |
|
Никуда не подключено |
5 |
nDIS |
O |
Внешний сброс |
6 |
nRCS |
O |
Выборка микросхемы RAM drive (RAM Chip Select) |
7 |
GND |
|
Земля, общий провод |
8 |
nRCS |
O |
Выборка микросхемы RAM drive (RAM Chip Select) |
[2. Адресное пространство портов ввода / вывода]
Интерфейс использует порты адреса портов ввода вывода (I/O ports): XXX11111.
Порт |
IN |
OUT |
Управление периферийными устройствами |
0x1F |
Джойстик Kempston |
|
0x5F |
Состояние периферийного устройства |
|
0x9F |
Данные периферийного устройства |
Данные периферийного устройства |
0xDF |
Мышь / клавиатура |
|
Управление памятью |
0x3F |
Состояние вспомогательного сигнала (auxiliary line) |
Запрет записи в RAM Активация BASIC ROM |
0x7F |
|
Выбор ROM ZX Spectrum |
0xBF |
Сброс вспомогательного сигнала (auxiliary line) |
Разрешение записи в RAM Активация Shadow ROM |
#FF |
|
Выбор операционной системы интерфейса (IF1bis OpSys) |
2.1 Kempston Joystick / Kempston Mouse X: IN #1F / IN #FBDF
Назначение битов порта для джойстика Kempston:
Бит 0 = /Right
Бит 1 = /Left
Бит 2 = /Down
Бит 3 = /Up
Бит 4 = /Fire
Биты 5-7 = 0
Назначение битов порта для координаты X мыши Kemston (Kempston mouse X):
Биты 0-7 = координата X
2.2 Состояние периферии / кнопки Kempston Mouse: IN #5F / IN #FADF
Назначение битов состояния периферии (Peripheral status):
Бит 0 = последовательное устройство не подключено
Бит 1 = принтер не подключен, или пуст приемный буфер последовательного устройства
Бит 2 = подключен модуль Ethernet []
Бит 3 = подключена мышь PS/2
Бит 4 = была идентифицирована карта SD
Бит 5 = есть подключение к серверу
Бит 6 = данные готовы (Data ready)
Бит 7 = периферийное устройство занято (Peripheral busy)
Назначение битов для кнопок мыши Kempston:
Бит 0 = правая кнопка не нажата
Бит 1 = левая кнопка не нажата
Биты 2-7 = не используются
2.3 Данные периферийного устройства (Peripheral Data): IN #9F / OUT #9F
2.4 Kempston Mouse Y / Keyboard: IN #DF / IN #FFDF
Назначение бит для координаты Y мыши Kempston (Kempston Mouse Y):
Биты 0-7 = координата Y
Назначение бит для клавиатуры:
Биты 0-5 = номер нажатой кнопки (0..38), ни одна кнопка не нажата (39)
Бит 6 = нажата кнопка Symbol Shift
Бит 7 = активно состояние Caps Shift
2.5 Управление страницами памяти (Memory paging): ROM / RAM: OUT #7F / OUT #FF
Биты 0-7 не используются. Переключение страниц осуществляется простым обращением к порту на вывод.
2.6 Управление страницами памяти (Memory paging): 'Basic ROM' / 'Shadow ROM': OUT #3F / OUT #BF
Эта функция работает, когда задействована микросхема RAM для подключения страниц памяти интерфейса, заменяющих встроенное ROM ZX Spectrum. Биты 0-7 не используются. Переключение страниц осуществляется простым обращением к порту на вывод.
2.7 Управление страницами памяти (Memory paging): запрет/разрешение записи RAM: OUT #3F / OUT #BF
Эта функция работает, когда задействована микросхема RAM для подключения страниц памяти интерфейса, заменяющих встроенное ROM ZX Spectrum. Биты 0-7 не используются. Переключение осуществляется простым обращением к порту на вывод.
2.8 Вспомогательный сигнал (Auxiliary line): Set / Reset: IN #3F / IN #BF
Биты 0-7 не используются. Переключение осуществляется простым обращением к порту на вывод. Вспомогательный сигнал предназначен для машин '80 KB Spectrum', где 64-килобитные микросхемы DRAM применены для "верхнего" ОЗУ (upper RAM).
Разводится на перемычку выбора типа DRAM с заменой перемычки 'H' на верхний нагрузочный резистор (pull-up), и соединение с общим контактом 'L'-'H', иначе на не используемый контакт 28B ножевого коннектора. Это позволяет менять привязку двух разных банков DRAM на 32 килобайта каждый к адресу 0x8000.
Вспомогательный сигнал управляется выходом с открытым стоком, и он подключен к контакту 28B ножевого коннектора для машин 'One ROM', и соответственно к контакту 15A ножевого коннектора для машин 'Two ROMs' моделей ZX Spectrum.
2.9 Spectrum 128k ports OUT #7FFD / OUT #FFFD / OUT #1FFD
Последние значения, записанные в порты 0x7FFD, 0xFFFD и 0x1FFD, сохраняются микроконтроллером, и могут быть запрошены командой CAT 0;"r", которая также сбросит сохраненные значения в 0xFF. Эта команда вернет 4 байта, смысл которых следующий:
Смещение |
Значение |
0 |
Значение последнего вывода в порт 0x7FFD (OUT #7FFD) |
1 |
Значение последнего вывода в порт 0x1FFD (OUT #1FFD) |
2 |
0 |
3 |
Значение последнего вывода в порт 0xFFFD (OUT #FFFD) |
[3. Состояния интерфейса]
3.1 Состояние 'OFF'
- Состояние 'OFF' индицируется выключенным светодиодом 'O'.
- После включения питания интерфейс входит в состояние 'OFF'.
- Интерфейс может быть в любой момент переведен в состояние 'OFF' с помощью многофункциональной кнопки интерфейса.
- Интерфейс не отвечает ни на один запрос к портам ввода/вывода, управление страницами памяти не производится.
- Кнопка работает, но другие функции интерфейса недоступны.
3.2 Состояние 'ON'
- Состояние 'ON' индицируется свечением светодиода 'O', когда выключены оба светодиода 'B' и 'S'.
- Интерфейс может быть в любой момент переведен в состояние 'ON' с помощью многофункциональной кнопки интерфейса.
- Интерфейс обрабатывает обращение к портам ввода/вывода (чтобы осуществлять функции джойстика, мыши, клавиатуры), но страницы RAM не подключены, т. е. работает только штатное программное обеспечение ZX Spectrum.
- ZX работает в состоянии '48k BASIC' из своего внутреннего ПЗУ (PROM).
- Работают джойстик и мышь Kempston.
3.3 Состояние 'Active'
- Активное состояние интерфейса ('Active') показывается свечением либо светодиода 'B', либо светодиода 'S'.
- Интерфейс может быть переведен из состояние 'ON' в состояние 'Active' сигналом NMI, с помощью кнопки управления интерфейса.
- Из состояние 'Active' интерфейс может быть переведен только в состояние 'OFF', также с помощью кнопки управления интерфейса.
- Все функции интерфейса работают.
- ZX Spectrum работает в состоянии 'Extended BASIC' (Бейсик с дополнительными командами), когда встроенное ПЗУ ZX Spectrum заменено на программное обеспечение из non-volatile RAM, установленное на плате интерфейса (BASIC ROM или Shadow ROM).
- Светодиоды 'B' и 'S' показывают, какая страница программного обеспечения интерфейса активна - 'BASIC ROM' или 'Shadow ROM' соответственно.