Как это понимать с учетом того что в аттаче один файл? (FPGA48.tap размером 15113, выдает картинку ниже в Fuse) Что с чем сравнивать?
А исходники суперсекретны? В личку мне нельзя их?
- - - Добавлено - - -
https://i.imgur.com/PEGGDQk.png
Вид для печати
Как это понимать с учетом того что в аттаче один файл? (FPGA48.tap размером 15113, выдает картинку ниже в Fuse) Что с чем сравнивать?
А исходники суперсекретны? В личку мне нельзя их?
- - - Добавлено - - -
https://i.imgur.com/PEGGDQk.png
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 памяти, то картинка естественно рушится.
я не все команды так точно подгонял. Но в данном случае не важно.
если просто лоб-в-лоб сравнить два скомпиленных файла, то видно отличия в басик-заголовке. Скорее всего. Сами тесты вряд ли чем помогут. Но в личку могу.
Как MAP и # (FIELD) работают понятно. Вопрос не в этом, а в том какой смысл их так использовать, т.к.:
1. придуманы они были явно не для этого (а для того чтобы описывать что-то вроде структур с полями разного размера),
2. какой смысл в этих индексах в данном случае, как по ним искать адреса сообщений?
этот и должен, этот самый простой.
на самом деле их не один десяток, в основном по группам.
http://s1.micp.ru/thumb/5BWks.jpg
Есть который все-в-одном, но это давно было. Да и это не для эмулей рисовалось, а для проца T80 в ФПГА.
На твоем эмуле вроде все ровно, а вот Спекулятор неприятно удивил фейлом
Офтопик конечно, относительно топика, одно общее - все это компилилось в ужасме))
Нашел пак тестов, не все, но особо косячные которые были.вобщем надо ALL проверять.
в спекуляторе фейлится, в своем можешь проверить, как дОлжно быть. ну и в других.
http://rgho.st/8PwpRxmGK
Есть блок сообщений (например, названия комнат, что выше приводил).
И есть карта комнат, в котрой прописаны индексы названий.
Процедура по индексу из карты, сканирует и ищет нужный блок с названием, плюс один по 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, квадраты дергаются.
Отличался один байт в заголовке (спасибо 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