PDA

Просмотр полной версии : Новая БСВВ для 86РК



Hammer
22.11.2025, 14:16
Приветики!

Оказывается к РК легко прикрутить ПЗУ 8кб. В вариантах Киселёва 1.4, SRAM Color и других, дополнительный объём ПЗУ достигается путём припаивания двух линий адреса к панельке ПЗУ, а в Цыгане это уже сделано. Старт машины происходит с адреса E000H. Я решил использовать небольшой кусок этого пирога объёмом 2к для подобия биоса.

Для чего нужна БСВВ на 86РК? Например, если вы добавили ВИ53 для звука на свободный адрес, то при включении будете слышать гул этого таймера. Так же и с другой периферией - её надо инициализировать. Главное что делает БСВВ - настраивает новую периферию. Дальше можно и память проверить, как на более молодых ПК.

https://zx-pk.ru/attachment.php?attachmentid=83163&d=1763809864

В состав БСВВ входят подпрограммы:

1. Вывод строк, поддерживается перевод строки, табуляция и вывод шестнадцатеричных значений.
2. Вывод шестнадцатеричных значений
3. Вывод бинарных значений
4. Настройка экрана
5. Звуковой сигнал через INTE с параметрами
6. Загрузка кода через ППА + запуск
7. Просмотр памяти
8. Сканер состояния светового пера и данных на ППА
9. Программирование ПЗУ типа AT28C64

Ну и конечно всегда можно убежать в Монитор. Обратная совместимость остаётся.

Загрузка через ППА ускоряет работу с SD-приводом и WiFi девайсом. Не надо кнопки топтать.

В чём вообще фишка? Я постарался написать максимально откомментированный код (Прекрасный Ассемблер), чтобы каждый мог в нём разобраться и заточить под свою машину. Или смог запускать его отдельно, не из ПЗУ, чтобы добавить что-то своё. Это не конечная версия, наверняка что-то будет меняться.

Изначально эта БСВВ создавалась для работы с рамфонтом и CF-картой. В настоящее время другая версия биоса умеет загружать шрифт, инициализировать CF-карту, грузить из корневой директории файл, и запускать его. После тестов покажу!

zebest
23.11.2025, 14:00
В Emu80 удалось запустить ( в emu - к сожалению нет, скилов видимо не хватило на пральный конфиг - слышно, что запускается, но чОрный экран)
После запуска F1-F5 работают, авот в монитор по Enter-у не выходит.

https://images2.imgbox.com/2b/e5/iWJzDFMG_o.jpg

Hammer
23.11.2025, 14:39
В Emu80 4.0.533 тестировал, в Монитор выходит. Правда у меня порты такие:

https://zx-pk.ru/attachment.php?attachmentid=83171&d=1763897824

Там ещё AP2 можно нажать, чтобы тест памяти пропустить, и пробел во время просмотра дампа для паузы.

Hammer
30.11.2025, 21:23
Оказывается интерес к подобным штукам есть, и даже появились предложения и пожелания!

Получилось быстро собрать следующую версию БСВВ с очень простецким языком для конфигурирования платформы:

SYSINFO - вывод таблицы системных настроек
CLR ABCD - очистка экрана, ABCD - чем заполнять
FLUSH N - скролл текста вверх на N строк
CARRIAGE YYXX - установка каретки
PRINT XXXXX... - печать строки в текущую позицию экрана
NL - Перевод каретки
BEEP NNMM - звуковой сигнал, где NN - длительность, MM - тон
PEW NNMM - звуковой сигнал с падением частоты, где NN - длительность, MM - тон
JUMP ХХХХ - безусловный переход на адрес ХХХХ
READ ХХХХ - чтение байта из ячейки памяти ХХХХ и вывод на экран
WRITE ХХХХ AA - запись байта АА в ячейку памяти ХХХХ
SDBIOS - загрузка с SD-привода Алексея Морозова
WIFI - загрузка 32к через ППА, оптимизировано для WiFi устройства
KEYS - ожидание нажатия одной из клавиш F1-F5, АР2, ВК, пробел
KEY А ... - выполнение команды при условии нажатия клавиши побитно F5-F1, АР2, ВК, пробел

В итоге аналог autoexec.bat в биосе выглядит так:

AUTOEXEC:
db "SYSINFO", $00
db "PRINT wk - wyhod w monitor", $00
db "NL", $00
db "NL", $00
db "PRINT F1 - zagruzka ~erez ppa 16 bajt (R,FF)", $00
db "NL", $00
db "PRINT F2 - zagruzka ~erez ppa 32 kbajt (R,7FFF)", $00
db "NL", $00
db "NL", $00
db "KEYS", $00
db "PRINT kod: ", $00
db "READ 7606", $00
db "KEY 02 JUMP F800", $00
db "KEY 08 SDBIOS", $00
db "NL", $00
db "KEY 10 WIFI", $00
db $FF

Здесь $00 - это конец строки, а $FF - конец скрипта.

Таким образом можно сконфигурировать самые причудливые аппаратные приращения, или запускать например отладчик, если вы его поместили во все те же 8к ПЗУ.

В архиве исходник, в котором нужно прописать свои адреса периферии. Туда же добавлен журнальный Монитор для удобства прошивки, его можно убрать, если вам так удобнее. Компилить надо в ассемблере: https://svofski.github.io/pretty-8080-assembler/

Скрипт можно отладить в эмуляторе, как обычную РКшную программу. Для этого надо поменять константы:

ORIGIN equ $0000
RAM equ $1000

По умолчанию появляются два пункта меню:

https://zx-pk.ru/attachment.php?attachmentid=83244&d=1764526676

При выборе пункта выводится код состояния опроса клавиатуры, и происходит загрузка и старт соответствующей программы.

Так же для кодеров добавлена функция печати десятичных чисел (спасибо Руслану Аликберову), есть возможность расширять список команд хоть до уровня бейсика.

Буду рад тестам!