Цитата Сообщение от Vladimir Kladov
по-моему не упомянуты (а должны бы быть) следующие вещи:

1. IFcond ... [ELSE ...] ENDIF -> автоматически должно превращаться в jp/jr Ncond,@1 ... jp/jr @2 : @1: ... @2: или без ветки ELSE -> jp/jr Ncond, @1 ... @1:
(При этом с оптимизацией перехода - не только jp->jr, но и defb 0feh, чтобы обойти 1 байт, или если обойти надо call addr, то просто использовался бы call cond,addr)

2. директивы условной компиляции IF(выражение0) ... [ ELSEIF(выражение1) ... ]... [ ELSE ... ] ENDIF

3. циклы условной компиляции FOR переменная=список ... ENDFOR и FOR переменная=выражение1 TO выражение2 [STEP выражение3] ... ENDFOR

4. (не знаю точно, что есть DUP / EDUP, я использовал конструкцию REP[EAT] выражение ... ENDREP - возможно это то же самое)

5. Макросы (я наверное просто пропустил?) должны иметь параметры передаваемые по списку и по имени. Например DoSomth A,Cold,Beta,Reg2=BC

6. Структуры (или это подразумевалось?). Конечно, ясно, что можно задать константы Field1 EQU 0: Field2 EQU 2:... Но гораздо цивилизованней будет MyStruct STRUCT:Field1 DEFW ?:Field2 DEFB ?:... ENDS и заставить программиста писать не просто (IX+Field1), а (IX+MyStruct.Field1) или LD HL,MyStruct.Field2 (хотя строгость можно понизить и опционально разрешать писать LD HL,Field2 - не все программеры любят строгости).

7. Возможность задать набор констант перенумерацией начиная с некоторого значений (аналог enum). (Нет, я понимаю, можно написать A1 EQU 1:A2 EQU A1+1 :A3 EQU A1+2... потом просто меняем A1 и вуаля, но не проще ли написать ENUM A1=1,A2,A3,...

Свой встроенный в EmuZWin асм буду доводить до ума, все это конечно сделаю (а может и еще что-нибудь).
Ты читал возможности DEB ? Если нет, то вот те возможности и это еще не все! Я потихоньку думаю что можно еще такого полезного сделать!
А если ты на счет структур, то и массивы тоже будут!