ZXMAK, попробуйте zmac.) Он может hex на выходе. И у него много разных фишек.
ZXMAK, попробуйте zmac.) Он может hex на выходе. И у него много разных фишек.
В данном случае я компилировал патч для клавиатуры к jetpac. Пишется org и команды который нужно скомпилить. Далее следующий org и следующие команды. Между концом команд предыдущего org и нового в памяти лежит код, поэтому писать туда ничего нельзя.
Кстати оказалось, jetpac вполне играбельный при использовании нормальных кнопок управления QAOP SPACE. Помню с дефолтными кнопками у меня не хватало терпения даже одну ракету собрать
В аттачменте патч в hex файле. Использовать так - ставим точку останова на #6000, загружаем jetpack из tap, когда окажемся на точке останова загружаем hex патч. Можно играть. В аттачменте также уже пропатченый szx снэпшот.
Последний раз редактировалось ZXMAK; 18.11.2024 в 22:16.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
похоже то, что нужно - понимает нормальный синтаксис Z80 асма
Правда есть много разных модификаций zmac.
Удивительно, насколько старый и мощный ассемблер и так малоизвестен, был написан еще в 1978 году Bruce Norskog...
Насколько понимаю последняя версия оригинала подчищенная и доработанная тут: http://www.tim-mann.org/trs80/zmac13.zip
Наиболее близкий к этой версии более современный вариант, в нём только мелкие фиксы: https://gitlab.com/jengun/zmac
Мне эта версия понравилась, на ARM64 исполняемый файл всего 80 кБ, недокументированные инструкции понимает,правда hex не умеет писать, но думаю это не проблема поправить.
Update: чтото я недосмотрел, оказывается в оригинале есть вывод в hex, опция -h.
Есть еще вот такой вариант: https://github.com/gp48k/zmac
В нем есть много других доработок, но мне она не нравится тем, что в неё напихали кучу всякого мусора вроде записи WAV файлов и т.п.
Я считаю таким фичам не место в ассемблере, WAV и снэпшоты можно сделать отдельными программами.
Последний раз редактировалось ZXMAK; 20.11.2024 в 12:58.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Да, я именно этот имел ввиду, как наиболее свежий. Извиняюсь что сразу не дал ссылку: http://48k.ca/zmac.html).
а поддерживает ли zmac макросы с переменным числом аргументов?
например:
можно это сделать одним макросом print_code, который при наличии v2 будет делать дополнительный вызов rst #10?Код:print_code1 macro vcode,v1 ld a,vcode rst #10 ld a,v1 rst #10 endm print_code2 macro vcode,v1,v2 ld a,vcode rst #10 ld a,v1 rst #10 ld a,v2 rst #10 endm
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
M80 это можно делать через ifb/ifnb. Тут этого нет. Можно попробовать через if (!)nul &v2, но не уверен. Как то по каличному.)
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Наверно if !nul &v2. Это я так написал "с ! или без". Или if nul &v2 exitm.
Не поленился, проверил. Работает. Только у меня rst $10 или 10h.
Последний раз редактировалось M80; 20.11.2024 в 18:35.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)