Interface 1bis для ZX Spectrum Печать
Добавил(а) microsin   

IF1bis4bBrdCon

Устройство расширения интерфейсов Interface 1bis (IF1bis) [1] предназначено только для ZX Spectrum (модификаций 48, 128, +2, +3). Предоставляется следующий комбинированный функционал:

• Локальное хранилище данных размером до 8 гигабайт, поделенное на логические диски по 32 мегабайт. В качестве носителя используется карта micro SD.

• Сетевое хранилище (Remote storage) не ограниченного размера, с поддержкой длинных имен файлов, организованное на машине сервера, подключенной через порт USB (full-speed).

• Энергонезависимая оперативная память с произвольным доступом (RAM) размером 128 килобайт. Это может использоваться для приложений, которым нужно быстро и часто сохранять данные.

• Порт Kempston джойстика.

• Порт для подключения мыши PS/2, которая может работать как мышь Kempston или выход джойстика Kempston.

Примечание: следующие устройства также поддерживаются операционной системой [7] и будут определяться автоматически, когда они подключаются через коннектор мыши:

• Клавиатура PS/2.
• Асинхронный последовательный кабель, с трансивером RS232 или без него.
• Последовательный принтер, подключенный через трансивер RS232.
• Параллельный принтер, подключенный через адаптер serial-parallel.
• Кабель EAR [6] для записи файлов tape (файл, который загружает ZX Spectrum с кассеты) как звуковых сигналов.

• Подключение к Ethernet с помощью дополнительного модуля от стороннего производителя на основе микросхемы ENC28J60 [2].

• Максимальная программная совместимость с оригинальным "ZX Interface 1" компании Sinclair Research Ltd.

• Улучшенный 'Extended BASIC' с продвинутой поддержкой произвольного доступа к файлам и полной поддержкой файлов эмулятора (.SCR, .TAP and .Z80). Файлы в формате .TZX можно загрузить либо напрямую, если они содержат только стандартные speed-блоки, или с использованием встроенного 'tape player' и кабеля 'EAR'.

• Интегрированный браузер игр (Game Browser) и файловый менеджер (File Manager) [5], с управлением через мышь и джойстик. Они позволяют получить доступ к установленной на плате карте SD и к компьютеру PC сервера, подключенному через порт USB. Можно подключить через Интернет до 7 сетевых "станций", которые могут быть компьютерами PC или устройствами "Interface 1bis", а также получить доступ к архиву игр и утилит на сайте Word of Spectrum [3].

IF1bis GBL

Функции навигации включают как быстрый переход на указанную страницу экрана, так и с помощью продвинутого поиска.

Когда игра загружена из архива Word of Spectrum, то связанный с ней скриншот, информация и POKE-файлы также скачиваются и связываются с соответствующей игрой. Функции поддержки POKE позволяют выборочное разрешение "тренеров", которые автоматически применяются, когда запускается соответствующая игра.

Снапшоты 48k и 128k могут создаваться без прерывания игры, простым нажатием на кнопку интерфейса. Приложение управляет снапшотами прозрачно для пользователя, всегда сохраняя 2 разные копии, чтобы позволить перезапустить игру из последнего "рабочего" состояния, когда произошли какие-то проблемы с игрой.

Приложение может выполнить весь диапазон функций по управлению файлами, включая сложные, наподобие перемещения целого дерева каталогов между любыми местами назначения, которые могут быть устройствами "Interface 1bis" или серверами PC, находящимися в любой точке мира.

[Аппаратура]

IF1bis Architecture

Ключевая особенность универсальности интерфейса IF1bis заключается в том, что все операции ввода/вывода выполняет микроконтроллер, который напрямую подключен к системной шине данных ZX Spectrum. Это не только упрощает дизайн проекта в сочетании с рациональным использованием памяти (что потребовало микросхемы энергонезависимой памяти SRAM всего лишь на 32 килобайта), но и добавило значительные преимущества:

• Малый размер печатной платы 0.5dm2.
• Минимальное место, занимаемое на столе, потому что плата при подключении к ZX Spectrum устанавливается вертикально.
• Простой двухслойный дизайн печатной платы с очень короткими проводниками, что позволило снизить чувствительность к помехам.
• Малое энергопотребление: не больше 75 мА, что меньше всего по сравнению с аналогичными устройствами.
• Малая нагрузка на шину: 0.7 мкА на шину данных и 0.5 мкА на другие сигналы шины, что соответствует нагрузке от логических микросхем CMOS.
• Улучшенное обращение к периферийным устройствам, поскольку микроконтроллер использует для этого свои специальные возможности (несколько аппаратных таймеров, сложная логика обработки прерываний), которые лучше специализированы для этой цели, чем процессор ZX Spectrum.
• Быстрое перемещение данных между локальным и сетевым хранилищем, поскольку это осуществляется напрямую микроконтроллером через его порты USB и SPI, без использования ZX Spectrum.
• Упрощенная операционная система, для которой требуется только один драйвер устройства: "Parallel Slave Port" микроконтроллера, который поочередно обрабатывает все низкоуровые операции управления периферийными устройствами.

У интерфейса IF1bis имеется несколько специальных возможностей, которые не встречаются в подобных устройствах, поскольку не был внесен никакой компромисс в процессе оптимизации соотношения производительность / цена:

• Энергонезависимая память SRAM, защищенная настраиваемой, высокоточной микросхемой супервизора напряжения.
• Управляющая кнопка имеет подавление дребезга контактов и мультиплексирование с помощью выделенного микроконтроллера, что позволило формировать выдержанные по времени сигналы RESET (сброс Z80) и NMI (немаскируемое прерывание Z80) для ZX Spectrum.
• Сигнальная линия /ROMCS (выборка системного ПЗУ ZX Spectrum) управляется не через транзисторы, а с низковольтным буфером CMOS, что гарантирует безошибочное обращение к страницам памяти.
• В отличие от большинства дополнительных устройств для ZX Spectrum, интерфейс не выполняет аппаратный захват, и поэтому может функционировать, даже если на ZX Spectrum сигнал /M1 находится в состоянии ошибки.
• Для интерфейса IF1bis не требуется сигнал тактов от ZX Spectrum (CLK), который недоступен на некоторых моделях ZX Spectrum.

[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 /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' соответственно.

[Операционная система]

Название интерфейса "Interface 1bis" подсказывает, что он на 100% программно (обратно) совместим с оригинальным интерфейсом "ZX Interface 1" компании Sinclair Research в контексте операций хранения "Microdrive" и по отношению к обмену данными через RS232 и ZX Network, как на уровне команд BASIC, так на уровне команд перехвата кода (вызовы API через RANDOMIZE USR), но все же не в режиме 128k BASIC.

Все операции с файлами могут эквивалентно выполняться на любой из двух реализованных файловых системах (либо на локальном хранилище, либо через сеть IP):
• Блоковое устройство (block device) для карты SD (device "M") или диска ОЗУ (RAM drive, device "R").
• Файловое устройство (file device) на сервере PC (device "V").

Основное улучшение расширенного БЕЙСИКА (extended BASIC) IF1bis по отношению к "ZX Interface 1":

• Лимит размера файла 16 мегабайт.
• Последовательный доступ не ограничен печатью файлов (PRINT).
• Последовательный доступ каналов M может быть по выбору открыт на ввод или вывод.
• Данные в памяти могут быть прочитаны (read), записаны (write) или проверены (verify) через прямой произвольный доступ к указанной позиции в файле любого типа, без необходимости его открыть (OPEN).
• Произвольный доступ к файлам (через file handles) может использоваться для более удобного обращения к файлам и автоматического отслеживания их указателей в произвольное место файла.
• Оба типа доступа, как последовательный (sequential access pointers через M-каналы), так и произвольный (random access pointers через file handles), могут быть перемещены в любую позицию.
• Синтаксис с использованием аббревиатур, что позволяет пропускать поля типа устройства (device type) и номера диска (drive number) в операторе, если он тот же самый, что и в предыдущем операторе.

Операционная система интерфейса IF1bis [7] имеет очень долгую историю разработки, которая началась от 1994 года, и с того времени продолжает улучшаться и адаптироваться под новые конфигурации имеющейся аппаратуры. Это зрелый, стабильный продукт, удовлетворяющий практическим требованиям с непревзойденной функциональностью, скоростью и простотой использования.

[Ссылки]

1. 'Interface 1bis' for the Sinclair ZX Spectrum site:sites.google.com.
2. ENC28J60 LAN Ethernet Network Module site:aliexpress.com.
3. Word of Spectrum site:worldofspectrum.org.
4. Interface 1bis: быстрый старт.
5. IF1bis: Game Browser / Loader.
6. Звуковой порт вывода tape-файлов Interface 1bis.
7. Операционная система Interface 1bis.