Ну не то чтобы часто, но было бы крайне полезно. Хотя как вариант могу и SCL использовать. Его проще создать сразу и полностью. Но тоже несколько извратно :)
Вид для печати
Ну я думаю достаточно хотя бы сделать посекторную запись например во вновь созданный трд образ. Или еще как вариант возможность создания бейсик файла в соответствии с его форматом и заданным размером в секторах для создания моноблока и посекторным доступом к образу. Ну или как то так.
я думаю для счастья нужно только это:
1. запись блока данных в TAP в настраиваемом формате (можно сделать что заголовок формировать блоком DB, так будет гибче).
2. запись в TRD файла с произвольным заголовком (т.е. чтобы указывался тип файла, старт и длина (они могут отличаться от реальных!!!))
все это можно сделать даже внешней утилитой (нет такой? надо чтобы кто-нить сделал). и так же внешней утилитой склеивать файлы в TRD.
вопрос в том, надо ли все это реализовывать именно в ассемблере? я не уверен.
Незнаю бага или фича.
Вот кусок
вызывается такКод:MACRO DBG stat
ld a,stat ; !!!!
out (0xFF),a
ENDM
MACRO TESTMEM addr
ld hl, addr
ld a, ((addr >> 12) & 0x0F) | (((addr >> 8)^0xFF) & 0xF0)
ld (hl), a
nop
ld a, (hl)
DBG a ; !!!!!
ENDM
результат выглядит такКод:TESTMEM 0x0000
TESTMEM 0x4000
TESTMEM 0x8000
TESTMEM 0xC000
Как по мне можно имеет смысле викидывать 0078 7F то есть при развороте макроса DBG a, получилась инструкция ld a,aКод:58 0070 TESTMEM 0x0000
58 0070 21 00 00 > ld hl, addr
58 0073 3E F0 > ld a, ((addr >> 12) & 0x0F) | (((addr >> 8)^0xFF) & 0xF0)
58 0075 77 > ld (hl), a
58 0076 00 > nop
58 0077 7E > ld a, (hl)
58 0078 7F > ld a,stat ;!!!!
58 0079 D3 FF > out (0xFF),a
Я про этап разворота макроса...
Как вариант можно добавить возможность проверить что было передано в параметре макроса пусть даже в виде строки
багофича будет тогда, когда асм самовольно станет что-то оптимизировать.. а если я специально сделал такой макрос?
так что все ок.
Можно ли как нить изобразить что нить в таком духе ?
то есть проверяю что передан параметром регистр a, например заюзав каким то боком luaКод:MACRO DBG stat
if stat != 'a'
ld a,stat ; !!!!
endif
out (0xFF),a
ENDM
Граждане, подскажите как быть.
ассембер сий как я понимаю требует пробел перед инструкцией или метку,
а моя буржуйская прога TommyGun генерит defb-ы кучами без пробелов сначала
в результате компилятор страшно ругается и компилить отказывается.
как то бы с этим справится нельзя?