Ещё думаю буфер нажимаемых кнопок реализовать чтобы ничего не терялось вне зависимости от того как быстро человек нажимает на кнопки - после этого станет возможным вводимое задавать как параметр запуска эмулятора (типа pseudo-86rk -kDF800,FFFF чтобы автоматизировать прогоны тесткейсов)
Ещё думаю буфер нажимаемых кнопок реализовать чтобы ничего не терялось вне зависимости от того как быстро человек нажимает на кнопки - после этого станет возможным вводимое задавать как параметр запуска эмулятора (типа pseudo-86rk -kDF800,FFFF чтобы автоматизировать прогоны тесткейсов)
Стрим закончился - эмуляцию клавы через аргументы командной строки вроде сделал, но только для версии которая в терминале работает, а надо бы для stdout тоже - это если для автоматических тестов...
Стрим закончился - я успел сделать режим stdout опциональным для полной сборки (включается опцией -t) наряду со всё ещё существующей возможностью собрать чисто stdout вариант, а также поддержал эмуляцию ввода с клавиатуры через -k в режиме stdout тоже - теперь можно это запускать автоматически в CI/CD, например ./pseudo-86rk-stdout -kDF800,F8FF выдаст:
Code:
{pseudo-86rk:v0.3}
radio-86rk --> DF800,F8FF F800 C3 36 F8 C3 63 FE C3 98 FB C3 BA FC C3 46 FC C3 F810 BA FC C3 01 FE C3 A5 FC C3 22 F9 C3 72 FE C3 7B F820 FA C3 7F FA C3 B6 FA C3 49 FB C3 16 FB C3 CE FA F830 C3 52 FF C3 56 FF 3E 8A 32 03 80 31 CF 76 CD CE F840 FA 21 00 76 11 5F 76 0E 00 CD ED F9 21 CF 76 22 F850 1C 76 21 5A FF CD 22 F9 CD CE FA 21 FF 75 22 31 F860 76 21 2A 1D 22 2F 76 3E C3 32 26 76 31 CF 76 21 F870 66 FF CD 22 F9 32 02 80 3D 32 02 A0 CD EE F8 21 F880 6C F8 E5 21 33 76 7E FE 58 CA D3 FF FE 55 CA 00 F890 F0 F5 CD 2C F9 2A 2B 76 4D 44 2A 29 76 EB 2A 27 F8A0 76 F1 FE 44 CA C5 F9 FE 43 CA D7 F9 FE 46 CA ED F8B0 F9 FE 53 CA F4 F9 FE 54 CA FF F9 FE 4D CA 26 FA F8C0 FE 47 CA 3F FA FE 49 CA 86 FA FE 4F CA 2D FB FE F8D0 4C CA 08 FA FE 52 CA 68 FA C3 00 F0 3E 33 BD CA F8E0 F1 F8 E5 21 9E FF CD 22 F9 E1 2B C3 F3 F8 21 33 F8F0 76 06 00 CD 63 FE FE 08 CA DC F8 FE 7F CA DC F8 --> {bye}
Единственная проблема состоит в том, что мой триггер на выход срабатывает на второй --> и если заказать скажем -DF800,FFFF то когда оно начинает скролл после заполнения экрана, то соответственно перепечатывает первый --> который триггерит мою прогу на выход - видимо для stdout режима надо просто запускать тесты, которые работают в пределах экрана либо тесты которые чистят экран при старте либо придумать что-то ещё...
P.S. Если убрать лишние переводы строк и оставить конверсию в юникод, то будет вот так:
Code:
{pseudo-86rk:v0.3} РАДИО-86РК -->DF800,F8FF F800 C3 36 F8 C3 63 FE C3 98 FB C3 BA FC C3 46 FC C3 F810 BA FC C3 01 FE C3 A5 FC C3 22 F9 C3 72 FE C3 7B F820 FA C3 7F FA C3 B6 FA C3 49 FB C3 16 FB C3 CE FA F830 C3 52 FF C3 56 FF 3E 8A 32 03 80 31 CF 76 CD CE F840 FA 21 00 76 11 5F 76 0E 00 CD ED F9 21 CF 76 22 F850 1C 76 21 5A FF CD 22 F9 CD CE FA 21 FF 75 22 31 F860 76 21 2A 1D 22 2F 76 3E C3 32 26 76 31 CF 76 21 F870 66 FF CD 22 F9 32 02 80 3D 32 02 A0 CD EE F8 21 F880 6C F8 E5 21 33 76 7E FE 58 CA D3 FF FE 55 CA 00 F890 F0 F5 CD 2C F9 2A 2B 76 4D 44 2A 29 76 EB 2A 27 F8A0 76 F1 FE 44 CA C5 F9 FE 43 CA D7 F9 FE 46 CA ED F8B0 F9 FE 53 CA F4 F9 FE 54 CA FF F9 FE 4D CA 26 FA F8C0 FE 47 CA 3F FA FE 49 CA 86 FA FE 4F CA 2D FB FE F8D0 4C CA 08 FA FE 52 CA 68 FA C3 00 F0 3E 33 BD CA F8E0 F1 F8 E5 21 9E FF CD 22 F9 E1 2B C3 F3 F8 21 33 F8F0 76 06 00 CD 63 FE FE 08 CA DC F8 FE 7F CA DC F8 -->{bye}
Ранее я предполагал, что программа сравнения с эталоном должна будет проигнорировать то, что написано в фигурных скобках, читая только сам вывод (фигурные скобки я выбрал потому, что в знакогенераторе РК их точно нет), а теперь думаю может чисто текстовый выхлоп оставить по умолчанию? А хедер и футер включать только при наличии опции -c разрешающей тестовые счётчики...
ну да ------ в бинарнике имеются три ячейки, которые управляют отображением на экране. по адресу 0x0003 находится координата во вертикали, с которой стартует изображение, по умолчанию там 1. по адресу 0x0004 находится код символа, которым рисуется текст "РАДИО-86", по умолчанию там код 0x17. по адресу 0x0005 находится код символа, которым рисуются две горизонтальные линии, по умолчанию там код 0x03.
замени коды по адресам 0x0004 и 0x0005 на 0x2A, посмотри, что получится
обновил файл заставки. оказалось пропустил букву "Н" в слове "программное"... столько раз запускал и не видел. ещё изменил количество точек -- теперь точно как в оригинале.
Attachments:
File comment: radio-86.rk radio-86.zip [1.7 KiB]
Downloaded 27 times
Users browsing this forum: No registered users and 1 guest
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum