Доброго времени суток!
Вот тут я писал про БСВВ "МИР", и как её получить на РК: https://zx-pk.ru/threads/36411-novay...dlya-86rk.html
Пришло время обозначить появление ДОС "МИР". Операционка основана на использовании возможностей файловой системы FAT16.
Сначала про железо. Оказывается CF-карту очень легко подключить напрямую к ШД и ША компьютера. Сама карта командой переводится в решим данных 8-бит, и больше ничего не нужно. Только кучка проводов. Карта работает на скорости ОЗУ, из неё можно читать блоки данных по 512 байт.
Вписывается ли CF-карта в категорию ретро железа? Наверное да т.к. были такие карты натурально с механическим жёстким диском внутри. Кроме того, мы фактически получаем на РК разъём IDE, в который желающие могут вместо карты впендюрить жестак от XT.
ОС пока имеет ограничения. Использовать можно только корневой каталог (без директорий), размер активного раздела не может превышать 32мб, размер кластера = размер сектора = 512 байт, файловая система FAT16. Пока только чтение. Не густо, но уже получше, чем CP/M.
ОС состоит из интерпретатора (командный процессор), библиотеки для работы с FAT16, шаблонизатора. Шаблонизатор позволяет выводить в строковых переменных десятичные числа, шестнадцатеричные коды, записи примитивной БД длиной 16 байт. Применение шаблонизатора позволило значительно сократить код команд вывода дампа и каталога файлов.
Файлы грузятся с карты как есть, без учёта заголовков и расширений. Из-за этого старые программы нужно адаптировать. Например, если программа грузится не с нулевого адреса, можно добавить в начало файла нули, чтобы адреса совпали. Расширение для программных файлов -> .BIN
Но можно грузить и выводить текстовые файлы. Для псевдографики предусмотрен режим отображения без межстрочных интервалов, клавиша "домой".
Полный список команд:
CLS - очистка экрана
FLUSH N - скролл текста вверх на N строк
TEXT ХХХХ - печать строки с адреса ХХХХ
NL - перевод каретки
XCG - переключение знакогонератора
LEDON - включить светодиод РУС/ЛАТ
LEDOFF - выключить светодиод РУС/ЛАТ
BEEP NNMM - звуковой сигнал, где NN - длительность, MM - тон
PEW NNMM - звуковой сигнал, где NN - длительность, MM - тон
JUMP ХХХХ - безусловный переход на адрес ХХХХ
READ ХХХХ - чтение байта из ячейки памяти ХХХХ и вывод на экран
WRITE XXXX AA BB CC ... - запись массива данных в ОЗУ с адреса XXXX
DUMP AAAA BBBB - просмотр памяти с адреса AAAA по адрес BBBB
HELP - вызов файла справки
CAT - каталог файлов корневой директории
LOAD XXXX ABC* - загрузка файла ABC* в ОЗУ с адреса XXXX
CALL ABC* - загрузка файла ABC* в ОЗУ и вызов
VIEW ABC* - загрузка текстового файла ABC* в ОЗУ и просмотр
SCRIPT ABC* - загрузка и интерпретация скрипта ABC
KEYSCAN - ожидание нажатия клавиши и вывод кода клавиши
IF A B - сравнение переменной с A и выполнение команды B при условии совпадения
Команды JUMP и CALL имеют дополнительный ключ L. Это для запуска программ в режиме совместимости с Монитором. Старые программы нужно запускать так: CALL KLAD.BIN L
Команда SCRIPT загружает в память текстовый файл и выполняет команды из него. Пакетный файл, аналог .bat
Если при старте системы вы сразу хотите выполнить скрипт, нажмите стрелку вверх, появится команда SCRIPT AUTOEXEC.TXT - останется только нажать ВК. Далее по стрелке вверх будет выводиться последняя успешно выполненная команда.
Отдельно надо написать про цвет и атрибуты. ОС любит защёлкнутый атрибут инверсии. Благодаря этому имеем блочный курсор и выделение текста.
Цвет сделан по новой схеме. Двухпортовая память 1802ИР1 на 16 полубайт позволяет раскрашивать таблицу символов по секторам в 16 символов. Для каждого сектора можно задавать цвет фона и цвет чернил с двумя градациями яркости. Если применить ещё и рамфонт, можно делать тайловые игры с такой графикой:
Чтобы было нагляднее, введите команду SCRIPT COLORS.TXT - будет выведена раскрашеная таблица символов.
Пока вся ОС укладывается в 3-4 кб, даже при условии добавления команд записи на диск.
Пока я выкладываю эмуляторную версию ОС. Чем она отличается от реальной? В реальной версии добавлены команды для работы с I2C. Можно скриптами заливать изображения в дисплеи, читать внешние таймеры, датчики и т.д. Сканер портов обычных и сканер портов I2C. Пока идёт отладка и тестирование.
Система может быть перенесена на другие платформы, например на Специалист, в котором можно реализовать графическую версию ОС. Но Специалиста у меня нет, и где его раздобыть я не знаю. Хорошо бы вообще новую плату придумать. Так же можно сделать версию ОС целиком помещающуюся в ПЗУ, но чтобы работала не с картой, а с WiFi девайсом.
Пространство CF-карты выше 32 мб можно заточить под использование в качестве RAM-диска.
В грядущём релизе эмулятора EMU80 можно пощупать ОС "МИР".
Респект:
- Станиславу svofski за Прекрасм, без которого ОС не написать
- Виктору Пыхонину за эмулятор, без которого ОС не отладить
- Ведущему Специалисту за РК "Йорик", в который можно втыкать CF-карту, рамфонт и цвет + 8к ПЗУ




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

wtf
