MAP 0 - задаёт начальное значение
последующие #1 увеличивают на единицу.
Т.е. по метке MISERY можем узнать индекс.
Код:MAP 0 NONAME: #1 ZTERM SOTHIC: #1 GETWORD W_THE GETWORD W_SOTHIC GETWORD W_COMPLEX ZTERM MISERY: #1 GETWORD W_THE GETWORD W_ROOM GETWORD W_OF GETWORD W_MISERY ZTERM TROLLW: #1 GETWORD W_TROLLWYND ZTERM
блиииин, с именем файла закосячил, не тот прислал.
Ну да, в идеале тесты показывают 4 зеленых квадрата на бордюре.
если какая-то команда длиннее-короче по тактам в contended памяти, то картинка естественно рушится.
я не все команды так точно подгонял. Но в данном случае не важно.
если просто лоб-в-лоб сравнить два скомпиленных файла, то видно отличия в басик-заголовке. Скорее всего. Сами тесты вряд ли чем помогут. Но в личку могу.
Profi v3.2 -=- Speccy2010,r2
Как MAP и # (FIELD) работают понятно. Вопрос не в этом, а в том какой смысл их так использовать, т.к.:
1. придуманы они были явно не для этого (а для того чтобы описывать что-то вроде структур с полями разного размера),
2. какой смысл в этих индексах в данном случае, как по ним искать адреса сообщений?
этот и должен, этот самый простой.
на самом деле их не один десяток, в основном по группам.
Есть который все-в-одном, но это давно было. Да и это не для эмулей рисовалось, а для проца T80 в ФПГА.
На твоем эмуле вроде все ровно, а вот Спекулятор неприятно удивил фейлом
Офтопик конечно, относительно топика, одно общее - все это компилилось в ужасме))
Нашел пак тестов, не все, но особо косячные которые были.вобщем надо ALL проверять.
в спекуляторе фейлится, в своем можешь проверить, как дОлжно быть. ну и в других.
http://rgho.st/8PwpRxmGK
Последний раз редактировалось zebest; 04.03.2019 в 21:02.
Profi v3.2 -=- Speccy2010,r2
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Есть блок сообщений (например, названия комнат, что выше приводил).
И есть карта комнат, в котрой прописаны индексы названий.
Процедура по индексу из карты, сканирует и ищет нужный блок с названием, плюс один по zero-termination.
Т.к. это дизасм, имеем то, что имеем.
По-правильному для данных нужен редактор, и бинарники инклудить. Но т.к. редактора нет, извращаемся исходниками.![]()
Новый релиз v.20190304.3: https://github.com/sjasmplus/sjasmplus/releases
Fixed
- Spaces in MACRO arguments caused trouble
- SAVETAP: Fix tape header tag
Проверил, спасибо. Тест FPGA48all.tap, похоже, у меня (и в ZXMAK2) слегка косячит - левая цветная полоска мерцает, а в Fuse, SpecEmu и в онлайн-эмуле qaop/torinak она стабильна. Spectaculator его фейлит. Не подскажешь, как на реале?
UPD: разобрался, дело было в подключенном Кемпстон-джойстике, без него мерцания левой полоски нет.
Тест LD(IX+55),E.tap - во всех эмулях боковые полоски лажовые - правой нет, левая смещена влево на 2 знакоместа. На реале так же?
Ну и SpecEmu завалил предыдущий тест, к-рый осилил Spectaculator, квадраты дергаются.
Последний раз редактировалось Spectramine; 04.03.2019 в 23:49.
Отличался один байт в заголовке (спасибо C++-ной якобы "строгой" типизации %@#@%%@%#), поправил в последнем релизе. Работает вроде точно также, но отличаются и другие байты. Так что на исходник хотелось бы посмотреть.
- - - Добавлено - - -
Ошибки касающиеся макросов - исправлено в последнем релизе.
- - - Добавлено - - -
В приниципе то же самое (если я правильно понял) можно сделать с помощью макросов:
Код:MSGINDEX=0 MACRO N L MSGINDEX = MSGINDEX + 1 L EQU MSGINDEX ENDM LENGTH_3: W_AND: N _AND DC "AND" W_THE: N _THE DC "THE" W_OAK: N _OAK DC "OAK"Код:$ sjasmplus --lst --lstlab file.asm $ cat file.lst 01 0000 MSGINDEX=0 02 0000 MACRO N L 03 0000~ MSGINDEX = MSGINDEX + 1 04 0000~ L EQU MSGINDEX 05 0000 ENDM 06 0000 07 0000 LENGTH_3: 08 0000 W_AND: 09 0000 N _AND 10 0000 41 4E C4 DC "AND" 11 0003 W_THE: 12 0003 N _THE 13 0003 54 48 C5 DC "THE" 14 0006 W_OAK: 15 0006 N _OAK 16 0006 4F 41 CB DC "OAK" 17 0009 Value Label ------ - ----------------------------------------------------------- 0x0003 MSGINDEX 0x0000 X LENGTH_3 0x0000 X W_AND 0x0001 X _AND 0x0003 X W_THE 0x0002 X _THE 0x0006 X W_OAK 0x0003 X _OAK
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)