С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
зачем запихивать, сразу через буфер АП на пзу и на ВВ55 закинем РК-програматор чтобы сам себя зашивал а свежий софт через магнитофонную читалку
Можно конечно же Нулевое пзу в котором класический монитотор + софт управления РК-прогером и через кучу ключейбуферов на пзу Мониторно-софтовое
( во меня понесло ...)
Где то я уже такое видел:
Радио 1987 №8 №9
siemensC35(21.01.2020)
Переписaл порядка 70% всего кода Монитора…
(Осталось переписать код опроса клавиатуры…)
Все директивы на месте, но некоторые работают несколько иначе:
- Директива «D» выводит содержимое памяти сгруппированными байтами и ASCII-символами, как «L»
- Директива «G» вызывает код с возвратом (например, «GF809»), а точка отладки не портит ячейки 0030…0032
- Директива «L» дублирует «D»
- Директива «M» позволяет просматривать/изменять ячейки памяти не столбиком, а строчкой:
- Директива «R» работает как обычно, но имеет параметр #4, загружаемый в D20 ППА клавиатуры канала A
- Директива «X» без параметров отображает только регистры HL/BC/DE/SP/AF, без PC
- Директива «X<парам.1>,<парам.2>,<парам.3>,< парам.4>» с параметрами передаёт управление пользовательской директиве в ОЗУ (предварительно загрузите «USER_X.rkr» для демонстрации)
- Остальные неизвестные директивы (не C/F/I/O/S/T) передают управление на адрес E000
Так же добавились и рабочие ячейки:
- Ячейки 7607:7608 задают длительность и тональность BELL-сигнала кода 07 в печати
- Ячейки 7610:7611 хранят координаты текущей области окна (стандарт - 8 и 3)
- Ячейки 7612:7613 хранят границы текущей оконной области (стандарт - 63 и 24)
- Ячейки 7620:7621 хранят адрес пользовательского драйвера перехвата незнакомых Esc-последовательностей
- Ячейки 7622 хранит размер экранной строки для корректного вывода символа и прокрутки оконной области
- Ячейки 76CD:76CE как дно стека обычно хранит F86C и теперь здесь можно вписать адрес ловушки перед вызовом F806
Чуточку изменилось и само API:
(¹ - работает только с внешним драйвером!)
- F818 выводит текст как обычно, но помимо терминации строки кодом 0, можно завершить её экономнее - старшим битом (как в таблице токенов Бейсика)
- F836 вызывает ловушку через адрес в 76CD:76CE
- Код 07 в печати издаёт сигнал длительностью и тональностью указанными ячейками 7607 и 7608
- Код 1F в печати сбрасывает окно до стандарта
- Комбинация 1B+1F в печати очищает только текущую область окна¹
- Код 0A в печати на последней строке прокручивает только область текущего окна
- Комбинация 1B+0A в печати прокручивает область над курсором в любой строке¹
Для запуска кода конкретной директивы используется цикл с перебором таблицы сжатого варианта маскированием.
Потому, при необходимости можно добавить ещё несколько директив, затратив на каждую по 2 байта адреса.
При вызове кода директивы параметры распределяются как обычно, но в аккумуляторе хранится четвёртый параметр.
Монитор специально имеет довольно длинный титульный текст, чтобы зарезервировать ячейки под дополнительные директивы.
Если кому-то не нужна директива «G» с отладочными трюками и директива «X», можно зачистить ячейки FF70…FFFF под свои нужды…
Однако, в #94 я приводил пример и эта версия Монитора справедливо это делает: Если набрать «GF803», будет ожидание нажатия клавиши, после чего Монитор перезапустится, а через «X» можно увидеть код клавиши в аккумуляторе.
Тем самым, Монитор сохраняет все регистры при старте и можно изучить, с каким значениями регистров программа зависла…
Как известно, авторы РК довольно плохо позаботились о поддержки игровых программ в плане динамики прорисовки экрана.
В данной версии, указав в ячейках 7620:7621 адрес своего кода, при любой неверной Esc-комбинации этот код получит управление, где регистры будут содержать все необходимые данные:
- Регистр C - позиция крайнего столбца текущей области
- Регистр B - позиция самой нижней строки текущей области
- Регистр E - абсолютная позиция курсора по горизонтали
- Регистр D - абсолютная позиция курсора по вертикали
- Регистры HL - адресуемая ячейка в экранном буфере под курсором
- Регистр A - незнакомый символ Esc-последовательности
И, аналогично пародии на технологию DirectDraw, можно средствами Монитора работать с экраном на уровне Esc-комбинаций, которых может быть до 124…
Главное, чтобы восстановить все регистры, а в аккумуляторе вернуть 0 или 1.
(Я работаю над этим…)
Последний раз редактировалось Радио-86РК; 30.03.2020 в 19:28.
Oleg N. Cher(05.03.2021), Pyk(03.04.2020), shapipovo(14.03.2020)
B свете современных облачных услуг навязывается мысль сделать подобное облако и для «РАДИО-86РК».
Эмуляторов хоть и много, но все они имеют свои недостатки, как известно.
План очень прост:
- Заменить клавиатуру на ОЗУ ёмкостью 64 бита, чтобы производилось сканирование не физической клавиатуры, а логической. Можно использовать и PIC
- Управление удалённой клавиатурой происходит посредством обыкновенного TelNet/Putty
- Захваченные видео/звук стримится стандартным YouTube-потоком. А так как классическая схема генерации растра адекватно не воспринимается современными средствами, то можно пойти «пиратским путём захвата новинок в кинотеатрах» - настроить китайский портативный ЭЛТ-телевизор под это дело и подобрать камеру. Можно и стриммить сам ПДП-поток напрямую в Терминал, что сэкономит трафик. Но тогда проще уж обойтись эмуляторами и надеяться, что тот или иной код заработает на реальном РК
P.S.: Ща уханьскими помидорами закидают…![]()
Зa неделю удалось сдвинуться с мёртвой точки и продолжить доработку собственной поделки…
А именно…
windows-86rk.zip
Бейсик-Микрон с поддержкой вьюпорта
Слегка переделанный Бейсик адаптирован под мою версию Монитора.
Функционал оператора «HOME» несколько расширен:В архивах имеется файлы:
- «HOME» без аргументов работает как обычно - очищает экран и устанавливает курсор "домой"
- «HOME <ascii>» заполняет активную рабочую область экрана символами указанного кода
- «HOME <left>,<top>,<width>,<height>» устанавливает параметры рабочей области экрана
- «CUR»/«PRINT AT»/«PLOT»/«LINE» работают в пределах заданной рабочей области вьюпорта
В Бейсике имеется достаточно обширная демонстрационная программа демонстрации возможностей Монитора.
- «monitor_view.rom» - файл ПЗУ с оконной версией Монитора. Как выше уже писал, унифицирована работа директив «D»/«L»/«M», «G» работает как «CALL» с возвратом, директива «R» способна грузить ROM-Диск размером до 16 Мб, подпрограмма печати символа работает с произвольной областью экрана, который может размещаться в любом месте ОЗУ и иметь произвольную настройку геометрии
- «direct_x.rkr» - демонстрационная загружаемая пользовательская директива «X» Монитора, вызываемая по «X<арг.1>,<арг.2>,<арг.3>,<арг.4>»
- «basic_view.rkr» - файл интерпретатора Бейсика вместе с демонстрационным листингом: Просто запускайте сразу «RUN»
Также, имеется экспериментальный пример считывания координат светового пера из ВГ75 с рисованием внутри вьюпорта.
(К сожалению, симуляция светового пера мышкой реализована не во всех эмуляторах…)
Переработка не лишена недостатков:
- «HOME LEFT,TOP,0,0» приведёт к непредсказуемым результатам порчи данных в ОЗУ
- «PLOT»/«LINE» ограничены максимумом в 127 и 49
P.S.: Вариации на тему, каков мог быть Монитор и Бейсик у РАДИО-86РК с самого начала…
P.P.S.: Не рекомендую прошивать в физические ПЗУ данные версии Монитора, так как всё находится на стадии альфа/бета разработки.
Тем не менее, если же Вы рискнули и уже воспользовались данной прошивкой физически, буду признателен выслушать предложения или замечания по поводу проблем совместимости с ПО.
Последний раз редактировалось Радио-86РК; 08.03.2021 в 07:57. Причина: Рекомендации…
Denn(10.03.2021), Oleg N. Cher(05.03.2021)
Кстaти, вот здесь онлайн можете протестировать мой вариант Монитора и модификацию Бейсика.
После загрузки эмулятора по ссылке подождите несколько секунд, пока не загрузится мой образ и не запустится мой Монитор.
Затем по «G0» запустите Бейсик и на «NEW?» отвечайте «N», после чего набирайте «RUN».
Запустится демонстрация поддерживаемых на уровне Монитора псевдо-оконного интерфейса.
В конце демонстрации (можно сразу набрать «RUN 1000») будет рисовалка «световым пером» - просто двигайте мышью по экрану.
(К сожалению, схем и ПО ПК «КРИСТА» пока не нашлось и точное подключение «светового пера» к ВГ75 не известно: Эмулятор поддерживает «световое перо» чисто по справочному материалу).
Естественно, демонстрация крайне скудная, так как довольно сложно дорабатывать Монитор и Бейсик…
(Так, в Бейсике отказала функция «SCREEN$». На днях постараюсь с этим разобраться…)
В Мониторе можете набрать «X1234,5678,9ABC,DE» для проверки пользовательской директивы, размещаемой с адреса 0x7650.
P.S.: Большое Спасибо Alexander Demin (a.k.a. begoon) за реализацию:P.P.S.: Использовать данный вариант Монитора для прошивки в ПЗУ не рекомендую: Его разработка всё ещё продолжается…
- Светового пера
- Подгрузки файлов
Последний раз редактировалось Радио-86РК; 13.03.2021 в 01:41. Причина: Первая игра для РАДИО-86РК с использованием "светового пера"
Накидaл кое-как первую игру с использованием «светового пера»…
(Кликайте мышью по звёздочкам…)
Сделал кое-как "Жизнь"» под световое перо…
(Рисуйте мышью клетки…)
Адаптировал под световое перо игру, которая на кассете называлась «МАРС-2», но в файлах представлена как «MARS3».
Вот нормальная адаптация под световое перо игры «МАРС».
(Игра со звуком! Поставьте галочку внизу на «Sound».)
P.S.: Если эмуляторы NES мышью симулируют пистолет и можно кликами в уток пострелять.
Почему ни в одном из имеющихся эмуляторов РК даже не пробовалось поддерживать «световое перо», хотя ВГ75 его очень легко поддерживает в том же ПК «КРИСТА»?
Сколько возможностей утеряно!
Последний раз редактировалось Радио-86РК; 13.03.2021 в 01:54.
begoon(06.12.2021), Oleg N. Cher(13.03.2021)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)