огромное спасибо!
с одной стороны круто иметь встроенный язык
с другой - выглядит со стороны это как ... что-то пришитое сбоку![]()
огромное спасибо!
с одной стороны круто иметь встроенный язык
с другой - выглядит со стороны это как ... что-то пришитое сбоку![]()
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
И снова я с тупыми вопросами. Попытался вникнуть в структуры:На выхлопе получаюКод:DEVICE ZXSPECTRUM128 STRUCT SCOLOR RED BYTE 0 GREEN WORD 0 BLUE WORD 0 ENDS org 0x6000 Loop jr Loop Table SCOLOR 1,2,3 SCOLOR 4,5,6 SAVESNA "test.sna",0x6000Т.е выделение памяти под структуру с меткой проходит, а без метки - ошибка. Хотя в мануале Example 6.4. описывает таблицу структур:Код:main.asm(14): error: Unrecognized instruction: SCOLOR 4,5,6WTF?Код:Or without label: COLORTABLE SCOLOR 0,0,0 SCOLOR 1,2,3 SCOLOR ,2 ; etc.
Все любят гипножабу
Нормальные вопросы.
Для начала пример рабочей структуры:
Этим мы создали ТИП ДАННЫХ "структура BMHD".Код:STRUCT BMHD,0 _W WORD 0 _H WORD 0 _X WORD 0 _Y WORD 0 nPlanes BYTE 0 masking BYTE 0 compress BYTE 0 pad BYTE 0 transparency WORD 0 xAspectRatio BYTE 0 yAspectRatio BYTE 0 PageWidth WORD 0 PageHeight WORD 0 ENDS
А это объявление конкретной переменной этого типа:
В данном случае она пустая, потому что данные в неё будут считаны из файла.Код:@MyBMHD: DS BMHD,0
Если тебе надо её проинициализировать "статично", то вместо ds надо использовать соответствено DB и DW и т.п.
Например:
Теперь для обращения к элементам структуры можно пользоваться их именами.Код:@MyBMHD: DW 1,2,3,4 DB 5,6,7,8 DW 9 DB 10,11 DW 12,13
Например:
Если что не понятно, спрашивай.Код:LD IX,MyBMHD LD A,(IX+BMHD.nPlanes) ... LD L,(IX+BMHD._W+1) LD H,(IX+BMHD._W)
Последний раз редактировалось Sergey; 11.07.2014 в 06:15.
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
Нет, как оно работает, я вкурил. Вопрос в том, почему нельзя сделать таблицу структур, не присобачивая к каждой метку (пусть и временную).
В документации расписано, что конструкция <ИМЯ_СТРУКТУРЫ> [значения полей,...] должно выделять в памяти область под структуру и заполнять её значениями, то есть можно указать так:и всё должно быть хорошо, пропущенные поля инициализируются значениями по умолчанию.Код:BMHD 5,6,7,8
Но, оказывается, разместить такую конструкцию без метки в начале строки нельзя:Имеющуюся у меня документацию прилагаю. См. Chapter 6. Structures, особенно Example 6.4. - реальное поведение сджасма не совпадает с документированным.Код:Label BMHD 5,6,7,8 ; это скомпилируется, выделит память, заполнит её и даже потом можно обращаться к элементам через Label._W, Label._H итд BHMD 5,6,7,8 ; а это - не скомпилируется
Все любят гипножабу
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
А-аааааааа! Всё ПРАПАЛО! ПОДСТАВА! ИЗМЕНА! НАС ПРЕДАЛИ!!!
Опция "--raw=<filename>" не работает! Я так понял, она должна "насильно" сохранять результат компиляций в бинарник с заданным именем, - ничего подобного - файл получается пустой, длина = 0.
Кто может пофиксить? А то эта бага мне автоматизацию ломает![]()
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)