Хочу предложить вниманию владельцев РАДИО-86РК "новый" концепт файлообмена. Слово "новый" в кавычках, потому что на самом деле он реализован и успешно эксплуатируется давно, но на другой платформе (ПРК "Орион"), и только сейчас адаптируется под различные отечественные 8-битки.
В качестве хранилища файлов используется удалённый сетевой диск практически неограниченного объёма, в т.ч. возможно использование облачного хранилища в сети Интернет, также возможен прямой файлообмен между пользователями 8-битных ПК с помощью сети OriNET™.
ПК РАДИО-86РК подключается по интерфейсу RS-232 (далее - COM-порт) к IBM-совместимому ПК, на котором установлено приложение ORI-сервера, выполняющее роль посредника между 8-биткой и хранилищем файлов. Файлы хранятся в специальном формате, совместимом с форматом ОС ORDOS на ПРК "Орион-128" - *.ORI, а также поддерживаются (в режиме "только чтение") популярные форматы *.ORD, *.BRU.
Аппаратная часть ПК РАДИО-86РК представляет собой плату расширения DS-card.RK™, содержащую COM-порт и электронный диск с клиентской частью ПО. Электронный диск по архитектуре аналогичен родному ROM-диску ПК РАДИО-86РК, т.о. возможен вариант использования уже имеющегося с установкой соответствующей прошивки, в таком случае достаточно спаять только COM-порт.
Предпочтительным вариантом является использование т.н. SROM-диска, носителем информации в котором выступает СОЗУ. Файлы в такой диск пользователь может записывать самостоятельно в режиме онлайн. При выключении питания ПК информация в SROM-диске сохраняется за счёт подпитки СОЗУ батарейкой.
Программно поддержаны три возможных варианта реализации аппаратной части.
Первый (самый простой, паяется "на коленке" за нескучный вечер с МГТФ'ом наперевес):
(открыть полноразмерную схему в отдельном окне)
Представляет собой "лайт"-версию ROM-диска на ПЗУ объёмом 8Кб (573РФ4 или 2764) и COM-порт на ИМС КР580ВВ51А с простейшим генератором фиксированной частоты для обеспечения максимально возможной скорости протокола 38400 Бод.
Второй вариант DS-card.RK™ представлен в виде "ручной" версии SROM-диска (SROMv1) с тем же самым COM-портом на ИМС КР580ВВ51А:
(открыть полноразмерную схему в отдельном окне)
Здесь ROM-диск имеет объём 32Кб и возможность программной перезаписи. Особенностью данного варианта является ручная активация режима записи, что гарантирует надёжное хранение данных, порча файлов при программном сбое исключена.
В качестве ЗУ использована популярная микросхема статического ОЗУ 62256.
На транзисторах собран узел т.н. супервайзора, который обеспечивает перевод СОЗУ в режим хранения при выключении питания ПК.
Вариант номер три (feat. SROMv2):
(открыть полноразмерную схему в отдельном окне)
Чуть сложнее по схемотехнике, чем предыдущий, требует проброса дополнительных линий от порта клавиатуры, обязательную доработку прошивки Монитора (М32 и выше), и позволяет осуществлять запись данных в СОЗУ в полностью автоматическом режиме, т.е. "прозрачно" для пользователя. Активация режима записи осуществляется через неиспользованные в ПК линии PС1 и PС2 порта клавиатуры. Плата за комфорт - меньшая надёжность хранения, т.к. есть возможность программно изменить данные на диске, что теоретически возможно при сбоях ПО.
На всех вышеприведённых схемах не показано преобразование ТТЛ-уровней в двуполярные сигналы стандарта RS-232, оно делается по следующей схеме:
Пользователям т.н. USB-"свистков" оно не требуется, т.к. там используются ТТЛ-уровни.
Клиентская часть ПО (программа OriCHAN™) запускается из (S)ROM-диска. В случае родной прошивки Монитора это делается вручную (командой "R"), а также есть специальная доработанная прошивка "М3", с которой запуск OriCHAN производится автоматически при включении ПК. Загрузчик "М3" автоматически определяет наличие OriCHAN в ROM-диске. Также вместо OriCHAN пользователь может разместить в ROM-диске своё ПО, для его успешного запуска достаточно придерживаться определённой структуры данных.
Интерфейс OriCHAN представляет собой две панели в духе известной оболочки Norton Commander. В левой панели представлен список файлов (S)ROM-диска, в правой - виртуального диска, который находится на ORI-сервере.
OriCHAN автоматически определяет тип ROM-диска, и если обнаружен SROM, то доступна команда его форматирования ("F" из левой панели), которая формирует структуру данных и записывает тело OriCHAN в качестве загрузчика.
При обнаружении ORI-сервера, в правой панели выводится каталог текущей папки виртуального диска. Подробнее про хождение по папкам можно почитать тут.
Чтение текущего файла производится нажатием [ВК], при этом если файл исполняемый (в имени присутствует символ "$"), то ему передаётся управление. После завершения работы файла, при выходе в Монитор, производится автоматически запуск OriCHAN. Если после завершения программы требуется выход в диалог командной строки Монитора, то загрузка делается с помощью УС+[ВК]. Также всегда можно принудительно игнорировать автозагрузку OriCHAN удерживая клавишу [НР] при выходе в Монитор (в т.ч. при аппаратном сбросе).
В виду крайне малого объёма ОЗУ пользователя ПК РАДИО-86РК, ПО OriCHAN создавалось по принципу минимализма, т.е. реализован только необходимый минимум функционала, интерфейс максимально упрощённый (как раз в духе 8-биток тех времён ). Т.о. код OriCHAN расположен под "потолком" ОЗУ (6500..75FFh), загружаемое ПО пользователя должно локализовываться ниже. Загрузка файлов с наложением на код OriCHAN невозможна! Также в процессе работы OriCHAN использует область ОЗУ 4D00..64FFh под буферы каталогов дисков, загрузка данных туда возможна, но надо иметь в виду, что при обновлении каталогов данные в этой области могут быть затёрты.
В случае SROM-диска, доступно копирование в него файла(ов) с ORI-сервера (команда "C" из правой панели), а также удаление (команда "E" из левой панели). Последняя функция имеет ограничения: удаляется текущий файл и все следующие за ним по списку! Это связано с тем, что ROM-диск имеет линейную организацию, а не кластерную, т.о. файлы идут друг за другом.
В варианте SROMv1, при каждом действии, требующем записи в СОЗУ, пользователю выводится сообщение о необходимости перевести диск в режим записи, сама запись данных осуществляется после подтверждения [ВК]. После завершения записи, пользователю вновь выводится сообщение о необходимости перевести диск в режим чтения, и после нажатия на любую клавишу происходит обновление информации на панелях и возврат в основной диалог OriCHAN.
Возможно групповое копирование файлов, для этого сначала клавишей пробела выделяются нужные файлы, а затем даётся команда "C". Выделение файлов по принципу триггера: постановка/снятие. Отмена всех выделений клавишей [ЗБ] или [-].
Максимальный объём SROM-диска ограничен 32 Кб, это связано с упрощением аппаратной реализации. Фактически большой объём ROM-диска не требуется, т.к. согласно концепту, ПО пользователь загружает с ORI-сервера. ROM-диск предназначен для загрузчика и минимального набора "подручного" ПО. Посмотреть остаток свободного места SROM-диска можно командой "Z".
Команда "I" загружает файл по принудительно указанному адресу, при этом запуск $-файлов не производится. После загрузки файла в ОЗУ, производится возврат в OriCHAN.
На правой панели доступны следующие команды:
"S" - сохранение участка ОЗУ в файл;
"A" - изменение адреса посадки файла;
"R" - переменование файла;
"E" - удаление файла.
В целях минимизации кода OriCHAN, не поддерживается групповое удаление файлов, а также копирование из ROM-диска на сервер.
Для выхода из OriCHAN в диалог командной строки Монитора нужно нажать "X" или [F4]. При этом сбрасывается флажок автозапуска, т.о. последующие перезагрузки не будут приводить к запуску OriCHAN. Вернуться в него можно командой "X" Монитора "М3".
OriCHAN запоминает расположение файлов и указателей в панелях, и при последующей загрузке пытается их восстановить.
Пофайловая навигация клавишами <вверх/вниз>, постраничная УС+<вверх/вниз>.
Максимальное кол-во файлов левой панели - 127, правой - 255.
__________________________________________________ ______________________________
Ссылки на ПО:
Доработанный Монитор "М32" - http://denn.ru/8bit/radio-86rk/orichan/m32.rom
Образ ROM-диска "лайт" (8Кб) - http://denn.ru/8bit/radio-86rk/orichan/romd_8k.bin
Образ полного ROM-диска (32Кб) - http://denn.ru/8bit/radio-86rk/orichan/romdisk.bin
Серверная часть ПО - http://denn.ru/8bit/oriserv/oriserv.exe
П.С. Выражаю огромную благодарность Сергею (aka Stampmaker) за помощь в реализации всей этой безумной затеи!
Ниже фотографии его действующего макета, прототипа DS-card.RK™: