С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
я когда то грамматику Z80 асма, по офдоке, рисовал, хотел допилить до sjasmplus но как то руки не дошли
грамматика LL1 для coco/r, мож кому надо
3 резолва нарушения грамматик, можно было без них обойтись но страшное описание получилось бы
Последний раз редактировалось ZEK; 22.02.2014 в 20:02.
Ну, имхо, вопрос неочевидный всё же. Конечно, ассемблеры (традиционно) обычно не имели хороших препроцессоров, препроцессоры - всё же более поздняя традиция, по большому счёту. Конечно, один тул лучше двух, во всех отношениях. Но из-за того что нормального стандарта на препроцессоры для ассемблеров никогда не родилось, как раз и возникает разнобой, когда каждый ассемблер препроцессит как может.
Если ближе к делу, мне тоже не хватает в ужасме нормальных текстовых макросов. Но что-то я совсем не уверен, вынесет ли эта избушка на курьих ножках ещё один этаж надстроек.
"introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.
Она встроена весьма своеобразно - определяем функцию в одном месте, а в другом её уже не видно =(
Но даже так помогает.
Поперло что то, парсер смог переварить сырок cpm
допилил:
резолвы многих неоднозначностей для LL1
вычисляемые выражения для констант
несколько директив org, defb, defw
Если пруха не попустит, буду допиливать что бы sjasm сырки понимал
Последний раз редактировалось ZEK; 22.02.2014 в 20:02.
попался тут один кроссасм для z80 http://members.shaw.ca/gp2000/zmac.html
из СОВЕРШЕННО необычного в нем
Cycle-counting with sett, setocf pseudo-ops and t, tilo, tihi and ocf operators.
The best description of the T-state counting macros can be found at the end of my cycle counting tutorial. Might also explain why you would want such a feature. setocf and ocf() are newer features not covered there. They're needed when counting clock cycles on the TRS-80 Model 4 when it runs in high speed (4 MHz) mode. While the Z-80 mostly runs twice as fast in that the opcode fetch portion of each instruction is slowed down by 2 wait states. Code on the Model 1 or Model 3 (or Model 4 running in Model 3 mode) can be timed like this:
code: ld a,(de)
ld b,(hl)
add a,b
time equ t($)-t(code)
The first two instructions take 7 T-states, the 3rd 4 T-states so zmac will set time equal to 18. But if you need cycle-accurate counts on a Model 4 you'll have to do this:
code: ld a,(de)
ld b,(hl)
add a,b
time equ t($)-t(code)+2*(ocf($)-ocf(code))
As before we get a base time of 18 T-states but in this case each instruction also takes an opcode fetch thus the equation will add an additional 6 T-states and zmac will set time to 24.
При создании sna-файла sjasm прописывает в нём по адресу #4000 JP START
Как отучить его портить экран?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)