Interface 1bis: быстрый старт |
![]() |
Добавил(а) microsin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Когда я получил долгожданный Interface 1bis [4], сразу захотелось подключить его к ZX Spectrum и попробовать в работе. Однако оказалось, что без изучения документации это выполнить не так просто. В этой статье приведен перевод руководства по быстрому запуску "Getting started with the Interface 1bis" (IF1bisGetStart.pdf [1]). Также приведен краткий обзор личного опыта использования интерфейса. "Interface 1bis" поставляется посылкой качественно упакованным, в антистатическом пакете, и для надежности обернутым "пузырьковым" полиэтиленом. При получении следует сначала проверить, что на упаковке отсутствуют большие механические повреждения из-за транспортировки. Если повреждения есть, или был вскрыт антистатический пакет, то лучше отказаться на почте от получения посылки. [Подключение к ZX Spectrum] Перемычки "Spectrum model selector". Interface 1bis имеет две установленные в ряд перемычки для выбора модели ZX Spectrum. Перед подключением к ZX Spectrum они должны быть установлены в правильное положение: '48' (1-2, 3-4), для машин с одним ПЗУ ("one ROM"), которым относятся варианты 48k, 128, +2 '+3' (2-3, 4-5), для машин с двумя ПЗУ ("two ROMs"), т. е. +2A, +2B, +3. По умолчанию перемычки стоят в положении '48'. У меня был Harlequin rev. G [2], который является клоном ZX Spectrum 48k, так что перемычки переустанавливать не потребовалось. Первое включение. Перед подключением Interface 1bis к стандартному коннектору расширения ZX Spectrum следует обязательно отключить источник питания. Обычно у моделей ZX Spectrum 48k, как и у Harlequin, для этого нужно выдернуть на задней стенке справа джек питания 9V. Подключать питание следует только после того, как Interface 1bis надежно установлен в слоте расширение ZX Spectrum. Это предотвратит возможные повреждения компьютера и интерфейса. Когда питание подключено, крайний левый светодиод U загорится на 2 секунды, сигнализируя тем самым, что микроконтроллер интерфейса (PIC18F47J53) прошел инициализацию. После этого ZX Spectrum должен загрузиться, как обычно, т. е. на экране должна появиться знакомая надпись "© 1982 Sinclair Research Ltd". Если это не произошло, то питание нужно сразу отключить, и перед последующими повторными попытками подключения питания нужно тщательно очистить коннекторы ZX Spectrum и Interface 1bis от возможных попаданий туда металлических стружек или других загрязнений. Очистку лучше всего сделать зубной щеткой, смоченной в спирте. После включения Interface 1bis входит в состояние OFF, когда он никак не взаимодействует с ZX Spectrum, и только лишь потребляет 30 мА от шины питания 5V. [Управление интерфейсом и его режимы] Кнопка управления. Сверху, рядом со светодиодами находится единственная кнопка для управления, которая выполняет 4 разные функции - в зависимости от длительности нажатия: Переключение между режимами ON и OFF. Когда кнопка нажата на время больше 1.2 секунды (длительное нажатие), интерфейс поочередно переходит из состояния "выключено" (OFF) в состояние "включено, не активно (ON Inactive). Сброс ZX Spectrum (RESET). Если кнопка нажата на время от 0.5 до 1.2 секунд, то интерфейс генерирует 5-миллисекундный импульс лог. 0 на сигнале ZX Spectrum /RESET, сбрасывая тем самым процессор компьютера (переход к экрану "© 1982 Sinclair Research Ltd"). NMI. Если выполнить на кнопке короткое нажатие (меньшее по длительности 0.5 секунды), то интерфейс генерирует 5-миллисекундный импульс лог. 0 на сигнале ZX Spectrum /NMI. SYSLD. Если кнопка нажата на время, большее 2.5 секунды (длительное нажатие), то интерфейс перезагружает свою операционную систему либо с компьютера-сервера, либо с карты microSD. Индикационные светодиоды. У интерфейса имеется 3 основных режима - OFF, ON Inactive, Active. 6 красных светодиодов показывают режимы интерфейса и его состояния. Назначение светодиодов: U выбрана микросхема последовательного ОЗУ (serial SRAM chip), если она установлена, или установлено соединение с компьютером-сервером (через USB). C была идентифицирована карта microSD. M если светодиод горит, то мышь активна как мышь Kempston; если мерцает, то мышь активна как джойстик Kempston. S если светодиод горит, то активна страница Shadow ROM интерфейса (теневое ПЗУ, режим Active). B если светодиод горит, то активна страница BASIC ROM (ПЗУ Бейсик, режим Active). O показывает режимы интерфейса ON/OFF: если светодиод горит, то ON (включено), если погашен то OFF (выключено). Основные режимы интерфейса. Ниже приведено описание основных состояний интерфейса. OFF. Интерфейс находится в состоянии OFF (выключено), когда светодиод 'O' не горит. В это состояние интерфейс входит каждый раз при включении питания. Также в это состояние интерфейс можно перевести кнопкой (см. секцию "Кнопка управления"). В состоянии OFF интерфейс не отвечает ни на какие запросы ввода/вывода по шине (I/O), и не влияет на адресное пространство ZX Spectrum. Никакие функции интерфейса не работают, он только обрабатывает нажатия на кнопку управления. ON Inactive. Состояние ON Inactive показывает свечение светодиода 'O', когда оба светодиода 'B' и 'S' не горят (состояние ON Inactive, т. е. интерфейс включен, но не активен). Как уже упоминалось, интерфейс может переключаться между режимами OFF и ON (туда и обратно) нажатием на кнопку управления на время, большее 1.2 секунды. В состоянии ON интерфейс обрабатывает запросы I/O по шине, но не подключает свое ОЗУ. ZX Spectrum работает в режиме "48k BASIC" из своего внутреннего ПЗУ, хотя порты джойстика и мыши функционируют. Active. Это "активное" состояние интерфейса, когда горят светодиоды 'B' или 'S'. Интерфейс переходит из состояния ON Inactive в состояние Active, когда сработал сигнал /NMI, при коротком нажатии на кнопку управления (длительность меньше 0.5 секунды). Перейти из режима Active можно только в состояние OFF, если нажать на кнопку на время больше 1.2 секунды. В состоянии Active интерфейс полностью реализует свои функции, и при этом ZX Spectrum работает в расширенном Бейсике (Extended BASIC) из энергонезависимого ОЗУ интерфейса, когда светодиоды 'B' и 'S' показывают текущее подключение страниц BASIC ROM или Shadow ROM соответственно. [Установка программного обеспечения] Отличительная особенность Interface 1bis - наличие полноскоростного порта USB, предназначенного для сетевой работы по принципу клиент-сервер через стандартный кабель microUSB. Сервером может служить любой компьютер PC с портом USB, на котором запущен соответствующая программа сервера (это работает на операционной системе Microsoft Windows® XP, или на более поздних версиях Windows). Внимание! Интерфейс и карта памяти поставляются в исходном, "чистом" состоянии, так что для работы нужно выполнить процедуру установки. IF1bis Server и драйверы USB. Чтобы установить требуемые программные компоненты, скачайте и запустите ZXS_setup на компьютере сервера. Эта программа установит необходимые драйверы порта USB. Убедитесь, что программа сервера запущена, и установите в слот интерфейса карту microSD, и подключите интерфейс кабелем к компьютеру. Ниже на скриншоте приведен экран утилиты сервера в рабочем состоянии. Как только соединение USB с интерфейсом установлено, и интерфейс переведен в состояние Active, запустите на ZX Spectrum команду CONTINUE Бейсика, что завершит процесс настройки и подготовит к работе карту SD. В этом процессе на карту SD будут скопированы необходимые утилиты, и произойдет обновление firmware и операционной системы интерфейса. Также эта процедура создаст автоматически запускаемую по умолчанию программу, которая загружает GBL.zzp 'Game browser' [5], если запустить на ZX Spectrum команду RUN из начального загрузочного экрана ZX Spectrum со строкой копирайта. 1. Создает каталог %ProgramFiles%\IF1bis, создает в нем подкаталоги LDC, UTL, ZXC, и копирует в них необходимые утилиты и программы. LDC: в этом подкаталоге находится программа Logical Disk Copier (LDC32.exe). Эта утилита позволяет копировать файлы между папками Windows и картой microSD, подключенной в картридер (не в слот Interface 1bis). Кроме того, она позволяет восстановить (подготовить) карту microSD для использования её совместно с Interface 1bis. UTL: в этом подкаталоге находится MDV2TAP.COM (Microdrive to Tape header converter). ZXS: в этом подкаталоге находится сервер Interface 1bis. 2. Создает на диске C: каталог WOS (имя каталога это аббревиатура от World Of Spectrum, название всемирно известного сайта), и копирует туда файлы Drind, Flist, Pgind. Файл Flist это список игр и программ на сайте worldofspectrum.org, для чего нужны два других файлы файла, мне неизвестно. 3. Создает на диске C: каталог TMP (если он еще не создан), и копирует туда файлы:
4. Запускает программу сервера IF1bis Server, которая пытается через виртуальный USB COM-порт установить соединение с Interface 1bis. Logical Disk Copier. Эта дополнительная программная утилита (устанавливается закачкой и запуском LDC_setup), позволяющая преобразовать содержимое папок на компьютере PC в образы логических дисков на карте microSD. Внимание: никаким другим способом содержимое карты microSD недоступно ни для чтения, ни для записи. Не пытайтесь работать с картой обычным способом - через Проводник или другие менеджеры файлов. [Подготовка карты microSD] В этом примере подразумевается, что в папке c:\tmp лежат файлы, необходимые для подготовки карты microSD, и сама карта установлена в картридер, и доступна по букве диска U:. c:\Program Files\IF1bis\LDC>LDC32.exe c:\tmp 1 8 u Logical disk copier for the 'Interface 1bis' build 9 / 20.08.2016 LDC32 h for help The ZXS_setup.exe installer must be run before a new SD card can be prepared. [Esc] to quit, any other key to continue BASIC ROM build 231 Shadow ROM build 153 The operating system has been copied Press any key to quit [Устранение проблем] Когда Вы используете Interface 1bis впервые, то возможна ситуация, когда ZX Spectrum перестает работать или зависает после перехода в состояние Active интерфейса. Помимо плохого контакта в разъеме расширения ZX Spectrum, причина может быть в том, что была повреждена находящаяся на плате интерфейса энергонезависимая память. При наличии такой проблемы нажмите кнопку управления на время больше 2.5 секунды, что должно исправить ситуацию. Если же этого не произошло, то значит операционная система интерфейса была полностью уничтожена (например, из-за облучения рентгеном на таможне). Операционную систему нужно перезагрузить путем выполнения команды LOAD "" и проигрыванием файла загрузчика LD5.WAV на любом проигрывателе, подключенном к коннектору EAR компьютера ZX Spectrum. При этом интерфейс должен быть в состоянии ON Inactive, и подключен через USB к компьютеру-серверу (на сервере должна работать утилита сервера ZXS). Интерфейс Interface 1bis сам может работать как источник звука, если к нему подключен подходящий кабель [7]. Запустите команды: OUT 159,243: LOAD "", когда интерфейс находится в режиме ON inactive - это восстановит операционную систему проигрыванием программы LD5.ZZP, которая сохранена на карте SD, как звуковой сигнал, на вход EAR ZX Spectrum. После восстановления операционной системы интерфейса нужно выполнить команды extended BASIC (расширенный Бейсик): FORMAT 0 и FORMAT !0. Всякий раз при замене карты microSD требуется её идентификация путем запуска команды extended BASIC: FORMAT 0. [Extended BASIC] В этом разделе приведена ограниченная информация по расширенному Бейсику (Extended BASIC), которая поможет запустить в работу Interface 1bis. Подразумевается, что пользователь имеет некоторое знакомство с оригинальным Extended BASIC фирменного интерфейса "ZX Interface 1". Полное руководство доступно на сайте "Interface 1bis" [3]. Устройства (device). Interface 1bis может получить доступ к трем разным устройствам хранения: Microdrive device: "m", при этом как носитель данных используется карта microSD. Каналы (channel). Каналом называется логический источник или место назначения данных, наподобие какого-нибудь файла на устройстве хранения. Например, команда: LOAD *"m";4;"screen" SCREEN$ задает файл "screen" на логическом приводе (logical drive) 4 устройства Microdrive. "m" работает как входной канал для загрузки дампа экрана. Другая команда: OPEN#5;"v";1;"list" связывает поток номер 5 с каналом M-типа, определенным как файл "list" из текущей директории устройства сервера (Server device обозначается как "v"). M-каналы предоставляют буферизованный последовательный доступ к файлу, что можно использовать для любых устройств хранения Microdrive: "m", Server: "v" или RAM drive: "r". Потоки (stream) могут быть открыты для канала 'B', когда к коннекторам джойстика или мыши подключен подходящий кабель []. Реализованы только операторы FORMAT и OPEN#, за которыми следуют операторы PRINT#, INKEY$# и INPUT#, в то время как операторы LOAD, SAVE, VERIFY и MERGE не реализованы. Синтаксис аббревиатур. Поскольку "номер диска" (drive number) не имеет значения для устройств "v" и "r", к ним можно осуществлять доступ с использованием символов: ! вместо *"r";< drive > (что совместимо с синтаксисом 128k BASIC) и $ вместо *"v";< drive >, как в: CAT $; "*.t", чтобы получить список всех файлов tape текущей директории сервера. Когда "устройство" (device) или "номер диска" (drive number) указаны в команде, то они становятся "текущими", и могут быть опущены в последующих командах. Таким образом, после: CAT "m";7 файл screen1 дампа экрана может быть загружен с диска 7 устройства "m" следующим сокращенным синтаксисом команды: LOAD ;"screen1.s" Указание "drive number" или использование начальной звездочки *, за которым не идет буква типа устройства, меняет текущее устройство на "m". Так что после CAT $ команда LOAD ;"Test" загрузит программу Test с сервера, но команда LOAD *;"Test" загрузит программу с тем же именем с текущего устройства карты SD, или LOAD 3;"Test" загрузит её с диска 3 карты SD. Типы файлов. Реализованы следующие типы файлов:
Имена файлов. Имена файлов чувствительны к регистру символов, и им может предшествовать путь. Для устройств "m" и "r" имеют значение только первые 10 символов имени. Следующие примеры укажут файл Program1, находящийся в: "Program1" текущей директории Имена файлов могут содержать групповые символы (так называемые wildcards): ? и *, что означает "любой символ" и "любое количество любых символов" соответственно. Имена файлов могут также содержать один символ в конце, означающий тип файла (type literal), с точкой в позиции 5.3, что добавляется к имени файла как расширение: "Game1.t" обозначает файл tape Указание расширения файла имеет значение только в некоторых специальных ситуациях, в основном для файлов эмулятора, или когда целевая директория содержит файлы с одинаковыми именами, но разных типов. Директории. Имя, оканчивающееся на символ слеша / обозначает директорию (или каталог, папку). С директориями можно выполнять следующие операции: • Создание директории с помощью команды SAVE. Например, команда SAVE 2;"newdir/" создает новую поддиректорию newdir в текущей директории диска 2. • Смена текущей директории с помощью команды LOAD. Например, команда LOAD $;"f:/games/" сделает текущей директорией папку games на диске f: сервера. • Удаление директории с использованием команды ERASE: ERASE 1;"/temp/empty/" Этот пример удалит подкаталог empty из директории temp диска 1. Могут быть удалена только пустая директория, которая при этом не является текущей. Повторяющиеся команды. Команды ERASE и MOVE действуют для всех файлов, которые будут соответствовать указанному в команде имени, что отличает их от других команд, которые работают только с первым совпавшим файлом. Если текущая директория содержит как файл программы BASIC с именем test, так и файл типа tape с таким же именем, то команда: ERASE 1;"test" удалит оба этих файла. Если же нужно удалить только BASIC-программу, то нужно указать тип файла с помощью расширения имени: ERASE 1;"test.p" Подобным образом команда: MOVE;"t*" AT;"s*" поменяет на t начальную букву в именах всех файлов, которые находятся в директории. Файлы эмулятора. Ввод с ленты (input tape) или вывод на ленту (output tape) назначен использованием операторов LOAD или SAVE соответственно, при этом явно указывается тип файла с расширением .t. Команда: LOAD 12;"/games/manicmin.t" назначит файл manicmin в директории games диска 12 в качестве "input tape" (т. е. файла, для которого будет эмулирована загрузка с ленты). После этого игру можно загрузить выдачей команды: LOAD "" Альтернативно расширение .T (в расширении использована заглавная буква T) может быть применено для назначения "input tape" и выполнения эквивалента оператора NEW, за которым следует LOAD "", в одной команде: LOAD 12;"/games/manicmin.T" Назначения для "input tape" и "output tape" останутся действительными, пока "input tape" не будет прочитан до конца, размер "output tape" превысит 16 мегабайт или tape-файлы будут явно переназначены через LOAD или соответственно командой SAVE с опцией STOP. Т. е. команда: SAVE STOP "закроет" output tape. Помимо файлов tape (.TAP, файлы, эмулирующую обычную ленту), можно в качестве input tape также назначить файлы ZX Tape (.TZX), когда используется расширение файлов .x. Чтобы создать снапшот версии 1.45 48k, должен быть назначен новый файл оператором SAVE с явным указанием типа файла с помощью расширения .z. Команда: SAVE 1;"/temp/snap.z" создаст snap-файл в директории temp, куда будет сохранен файл, когда сработает сигнал NMI после нажатия кнопки на время меньше 0.5 секунд, после чего назначение соответствующего файла будет отменено для снапшота, за исключением случая, когда клавиша Caps Shift ужеоэтвается, пока не перестанет мигать бордюр. Снапшот версии 3.05 128k может быть создан указанием имени файла с расширением .Z (заглавная буква). Снапшоты можно загрузить оператором LOAD с явным указанием типа файла через расширение: LOAD 12;"/games/monty.z" Эта команда загрузит снапшот monty из директории games диска 12. При использовании типа Z (заглавная) произойдет переключение Interface 1bis в состояние ON Inactive после загрузки снапшота. Загрузка (Load), сохранение (save) или проверка (verify) дампов экрана (screen dump) также требует явного указания типа файла через расширение .s: LOAD 1;"scrn.s" [Использование мыши] Мышь должна быть подключена только когда на интерфейс еще не подано питание. Причина этому - особенность мыши PS/2, а не интерфейса. При включении питания, и только тогда, микроконтроллер интерфейса проверит наличие подключения мыши и включит светодиод M, если мышь найдена. Состояния мыши. Состояние мыши показывается светодиодом M: - ВЫКЛючен: мышь не подключена или запрещена Когда мышь разрешена, порт джойстика запрещен, и наоборот, когда мышь запрещена, то джойстик разрешен. Мышь может быть запрещена нажатием двух её кнопок одновременно. Когда мышь запрещена, она может быть разрешена как: - мышь Kempston, путем нажатия правой кнопки, или как Режимы мыши. Мышь по умолчанию разрешена в оконном режиме (windowed mode), в котором сообщаемые координаты остаются в пределах она конфигурируемого размера. Но мышь также может работать как мышь Kempston в стандартном режиме (legacy mode), когда координаты перескакивают в 0 при пересечении границы 255, и наоборот. Можно использовать команду CAT 0, чтобы поменять режим мыши для: - legacy mode: CAT 0; "ml" [Личные замечания] Почему я остановил свой выбор на Interface 1bis, несмотря на наличие альтернатив? ИМХО, вот список явных преимуществ этого интерфейса: 1. Все в одном - Interface 1bis предоставляет самый полный набор функций по сравнению с конкурентами, так что к разъему расширения скорее всего ничего больше подключать не понадобится. Замеченные недостатки Interface 1bis. Их немного: 1. Светодиоды все одного цвета - красные. Лучше, если бы их сделали разных цветов, было бы проще ориентироваться. [Ссылки] 1. Documents IF1bisGetStart.pdf site:sites.google.com. |