HEASS 1.0

File-név: HEASS.EXT
Program neve: HEASS 1.0
HSoft - 1994
Editor és Assembler

Bevezető
A HEASS programot mindenre kiterjedő, kényelmes felhasználói felület jellemzi. A képemyőkezelése gyors, a gépkategória maximumát adja. Egyetlen dokumentumban akár 64 K-s gépi kódú programot is megírhatunk. A blokk-kezelés, sztringkeresés és fordítás szupergyors. A forrásba be lehet olvasni más assembler alatt készült régebbi dokumentumokat, mely így áttekinthetővé válik és könnyebben lehet felújítani. Alkalmas MACRO-zásra, sorozat fordításra. A felhasználó PC-hez hasonlítható sebességgel de annál kényelmesebb környezetben dolgozhat. Ehhez persze a PC billentyűzet és RAM-bővítés elengedhetetlen.
Az ENTERPRISE gépre már több assemblert írtak, pl. GEN, ASMON, FENAS.
E programokat a javuló, de még mindig foghíjas editor jellemzi. A FENAS editor előnye a gyorsaság. Hiányosságai:

A FENAS assembler szuper, új parancsokat is tud. Hiányosságai:

A HEASS programban az előző hiányosságok megoldására, valamint a Z80 processzor teljesítményének jó hatásfokú kihasználására törekedtem. A dokumentum kezelése úgy lett megtervezve, hogy a méretnövekedés nem lassítja le a programot. Meghökkentő, de az editor és a fordító is gyorsabbra sikerült a FENAS-nál. Mindez a megszakítás engedélyezése mellett és az EPDOS 2.x fokozott megszakításidő használása alatt lett mérve. Például a forrás fordítása:

FENAS 1.2INCLUDE E:FORRAS60 mp
HEASS 0.2 INCLUDE A:FORRAS.HEA 56 mp
  INCLUDE E:FORRAS.HEA 45 mp
  Szerkesztőből (120K) 42 mp

A további verziókat már nem lehet összehasonlítani, mert több helyen áttértem macrok és speciális utasítások használatára. Az 1.0-ás verzió forrása 141 Kbájt. A 32K-s RAM és ROM változat együttes fordítása kb. 96 másodpercig tart.
A HEASS.EXT program a RAM-ba tölthető rendszerbővítő változat, de 32K EPROM változatban is beszerezhető. A menü magyar nyelvű, ehhez az EPDOS HFONT karakterkészletét használja, indítás előtt, tehát kapcsoljunk át erre a karakterkészletre!
A HEASS program használatát kedvezőbbé teszi:

A programot az előző segédeszközök hiányában is maradéktalanul lehet használni!


Editor
A :HEASS parancs kiadására belépünk a HEASSEDITOR főprogramba. A parancsot bővíthetjük a forrásfájl nevével, ekkor a belépésnél a forrást is betölti. A bővítő úgy készült, hogy a saját modulját más rendszer alól is indítani lehessen. Így pl. BASIC-ből LOAD "HELP.HEA" paranccsal a dokumentum betöltése mellett lépünk be a HEASS-ba. Sajnos az EPDOS 1.7 nem támogatja a fel nem ismert modulok betöltését, de az EPDOS 1.8 már felismeri és betölti.
Szerkeszteni csak a BETÖLTÉS (F4, F1) (lemezen tárolt *.HEA forrásfile) vagy MEGNYITÁS (F4, F2) (név megadása) után lehet! Ezek hiányában illetve a LEZÁRÁS után (F4, F5) nincs kurzor, és nem lehet szerkeszteni.
A dokumentumszöveg szegmenslapokból tevődik össze. A szegmenslap nem bekezdésekből, hanem sorokból épül fel. A szerkesztési funkciók, többnyire az elődöknél megismert módokon (WP, HWP, FENAS) érhetők el. A felső menügombok használatára négyféle mód kínálkozik:

  1. Billentyűvel: ESC-(FEL-LE-BAL-JOBB)-ENTER. ESC-el belépünk az utoljára használt menübe. Vízszintes mozgatással kiválasztjuk a megfelelő menüt. Függőleges mozgatással kiválasztjuk a menüpontot. ENTER-rel vagy SZÓKÖZ-zel kiadjuk a parancsot, vagy ESC-vel visszalépünk a szerkesztőbe.
  2. Funkciógomb kombinációval: pl. F1, F1=sztring keresés A felső menügombok, sorrendjükben megfelelnek a funkcióbillentyűknek.
  3. Direkt elérési mód: pl. Ctrl-F=sztring keresés
  4. Egérrel: EPDOS 2.0-ás operációs rendszer alatt, amikor PC-egerünk is van, az egér is használható. Az egérrel elérhető további funkciók:
    - Gyorsgörgetés fel ill. le.
    - A dokumentum tetszőleges szerkesztési területének megválasztása.

Szerkesztőfunkciók felsorolása:

Bal - jobb Egy karakterrel előre vagy hátralépés.
SHIFT + bal - jobb Ugrás a sor szövegének első vagy utolsó utáni betűhelyére.
ALT + bal - jobb Ugrás a sor első vagy utolsó betűhelyére.
Fel - le Ugrás egy sorral fentebb vagy lentebb.
SHIFT + fel - le Ugrás az alsó vagy felső sorra ill. lapozás.
ALT + Fel - le Ugrás a dokumentum első vagy utolsó sorára.
TAB Ugrás a jobboldali tabulációs pontra.
CTRL+G Ugrás a baloldati tabulációs pontra (EPDOS 2.0-nál SHIFT + TAB)
ENTER A kurzor alatti sorhelyre beszúr egy üres sort és átlép a sor első tabulátorral jelzett pozíciójába.
ERA - DEL
Törli a kurzor előtti vagy alatti pozíciót. A sor jobbra eső részét balra mozgatja. Vízszintes határhelyen kiadva felküldi vagy felhívja az alatta lévő sort.
SHIFT + ERA - DEL Törli a sor kurzor előtti vagy mögötti részét.
ALT + DEL Törli a kurzor sorát.
INS Beszúr egy szóközt a kurzor helyére. A sor végét nem engedi kicsordulni.
SHIFT + INS Levágja a sor kurzortól balra eső részét, és leküldi a kurzor alatt beszúrt sorba.
ALT + INS Átváltja a szerkesztőt Beszúró ill. normál módra.

Menüpontok

F1 SZTRING KERESÉS
F1 (Ctrl - F)
KÖVETKEZŐ ELÖFORDULAS - Keresi a sztringet a kurzor utáni pozíciótól. Találat esetén a kurzort az első betűre állítja. A kis és nagybetűket nem kezeli azonosnak.
F2 (Ctrl - N)
SZTRING MEGADÁS - A sztring megadása. A sztringen RTRIM és LTRIM műveletet végez, ezért szóköz csak a szavak között maradhat.
F3 (Ctrl - O)SZRING CSERE - A csere sztring megadása után megkeresi az előfordulási helyeket.
F4 (Ctrl - Fel)INVERZ SOR KERESÉS - Megkeresi a kurzor feletti dokumentumrészben a következő inverz sort.
F5 (Ctrl - Le)INVERZ SOR KERESÉS - Megkeresi a kurzor alatti dokumentumrészben a következő inverz sort.
F6 (Ctrl - H)
SOR INVERTALAS - Sorjelölésre használható funkció. Invertálja a kurzor sorát. Az ASSEMBLE a hibás sorokat szintén így jelöli meg. A sor invertálását kikapcsolja a sorra irányuló szerkesztés, vagy blokkjelölés.
F2TABULÁTOR
F1
TAB-PONTOK MEGADÁSA - Kurzor sorában kirajzolja a tabulátort. A kurzor balra és jobbra mozgatható. Az ENTER vagy SZÓKÖZ beállítja ill. törli az aktuális tab-pontot. Kilépés az ESC-el lehetséges. A beállítás SETUP-al kimenthető.
F2TABULÁTOR TÖRLÉS - Törli az összes TAB-pontot.
F3TABULÁTOR ALAPÉRTELMEZÉS - Megadja az alapértelmezésű tabulátort.
F3BLOKK FUNKCIÓ
F1 (Ctrl - B)
BLOKK KIJELÖLÉS - Indítja a blokkjelölés funkciót. Aterület meghatározásához használható a Fel-Le (SHIFT-el és ALT-al is.) ESC-el kiléphetünk. A jelölt blokk eltárolása ENTER vagy C-vel a blokk törlése nélkül, DEL vagy M-el törléssel (MOVE) történik.
F2 (Ctrl - C)BLOKK BEHELYEZÉS - Az eltárolt blokkot beilleszti a dokumentumba a kurzor alatti sortól.
F3BLOKK BETÖLTÉS - Betölti a blokk-tároló területre a megadott *.H EA dokumentumot.
F4BLOKK KIMENTÉS - Kimenti a blokkterületet *.HEA doku mentumfájlra.
F5BLOKK MEMÓRIA FELSZABADÍTAS - Felszabadítja a blokktároló által foglalt memória területet.
F6
EDITOR TÖREDÉKMENTESITÉS - Töredékmentesíti a dokumentumot, vagyis csordultig tölti a szegmenslapokat és a megüresedett szegmenseket felszabadítja. E funkciót a KIMENTÉS menüpont szintén megvalósítja.
F7 (Ctrl - X)
DOKUMENTUM TESZT- Leteszteli a dokumentum szegmenslapjait. Kiírja a lapok szegmensszámát, a számolt és a dokumentált területét, a számolt és dokumentált sorok számát. Amikor eltérést észlel, "Hiba" felirattal kijelzi.
F4TÖLTÉS-MENTÉS
F1 (Ctrl - L)BETÖLTÉS - Betölti a megadott *.HEA dokumentumot.
F2 (Ctrl - E)MEGNYITÁS - Új dokumentum létrehozására, vagy a meglévő átnevezésére használható menüpont.
F3 (Ctrl - S)
KIMENTÉS - Kimenti a dokumentumot. EPDOS 2.0-ás rendszer alatt, a lemezen lévő összes fájlon BAK parancsot hajt végre. Ezt a menüpontot az AUTOMENTÉS funkció szintén használja.
F4
TÖRLÉS - Törli a dokumentumot. Amikor előzőleg már módosítás is történt, felkínálja a törlés előtti kimentést.
F5 (Ctrl - D)
LEZÁRÁS - Új dokumentum betöltése előtt végrehajtandó menüpont. A felszabadítás előtt, a törléshez hasonlóan felkínálja a kimentést.
F5KONVERTÁLÁS
F1ASC BETÖLTÉS - Szöveges fájl csatolása a dokumentumhoz. A kurzor aktuális helyén indul.
F2ASC KIMENTÉS - Kimenti szöveges fájlként a dokumentumot.
F3GEN BETÖLTÉS - Az ASC-betöltéshez hasonlóan csatolja a GEN-nel készített fájlt.
F4GEN KIMENTES - Kimenti GEN-formában a dokumentumot.
F5ASMON BETÖLTÉS - Csatolja az ASMON vagy FENAS fájlt.
F6ASMON KIMENTÉS - Kimenti ASMON ill. FENAS-formában a dokumentumot.
F7
ADATFÁJL BETÖLTÉS - Adatfájl beszúrása a dokumentumba. A bájtok DB sorokban, hexadecimális formára konvertálódnak.
F8
SZTRINGFÁJL BETÖLTÉS - Adatfájl beszúrása a dokumentumba. A bájtok DB sorokban, sztring alakra, ill. a nem nyomtathatóak hexadecimális formára konvertálódnak.
F6ALAP BEÁLLÍTÁS
F1BILLENTYŰ VÁRAKOZÁS - A lenyomás és ismétlés közötti idő megadása.
F2BILLENTYŰ ISMÉTLÉS - Az ismétlés sebességének megadása.
F3BILLENTYŰ HANG - A CLICK változó értékének megadása.
F4PAPIR SZÍN - A képernyő alapszínének megadása.
F5TINTA SZÍN - Az írás színének megadása.
F6AUTOMENTÉS - Az AUTO-kimentés ideje percben. Nulla esetén nem történik mentés. Az időt csak a dokumentumváltozás után kezdi számolni.
F7SETUP BETÖLTÉS -A beállítások betöltése. Az EPDOS 2.0-ás rendszernél az SRAM-eszközt használja.
F8SETUP KIMENTÉS -A beállítások elmentése. Az SRAN eszközt előnyben részesíti.
F7ASSEMBLE
F1ASSEMBLE - A dokumentum fordításának indítása.
F2CÍMKE LEKÉRÉS - Megadott nevű címke értékének lekérése.
F3CÍMKÉK LISTÁZÁSA - Kilistázza ABC-sorrendben a címkéket.
F4
CIMKE-LISTA KIMENTÉS - Kilistázza a megadott fájlra ABC-sorrendben a címkéket. Az adatok ASC-ben íródnak ki. PRINTER: fájlnév esetén kinyomtatja a listát.
F5CÍMKE MEMÓRIA FELSZABADITAS A fordító által lefoglalt szimbólumterület felszabadítása.
F8
PARANCSSZERKESZTŐ HÍVÁSA - Rendszerparancs szerkesztésre ill. kilépésre használható ablak. Visszatérés ESC-el történik.

ASSEMBLE

Szimbólumok
Szimbólumokkal a belépések helyét illetve EQU-val megadott értékeket tároljuk. A sor kezdőpozícióján kell megadni. Az első karakter csak betű lehet, vagyis CHR$(63)-nál nagyobb. A további karakterek vegyesen tartalmazhatnak számokat és betűket. A fordító minden szóműveletnél nagybetűsítést végez az angol karakterekkel. A szimbólumok végére nem kötelező kettőspontot tenni, viszont ez segíthet egy címke keresésében. (FIND) A szimbólumok hossza nincs korlátozva, természetesen 1 soron belül, de célszerű 16 karakternél kevesebbet használni. A szimbólum-tábla alapmérete 1 szegmens. Ennel nagyobb méretet a WORKSEGMENS paranccsal definiálhatunk. A fordítás kezdetekor a PASS értéke nulla. Amikor a forrásban nincs PASS parancs akkor két menetes fordítás után a fordító befejezi a munkát. Lehetőség van arra is, hogy újabb fordítást kérjünk az aktuális PASS-t követően. A program a szimbólumtábla inicializálásakor ill. a WORKSEGMENS parancs végrehajtásakor deklarál egy PASS_VAR nevű 16 bites változót, melynek átadja a pillanatnyi PASS értéket. A kezdőértéke tehát nulla. A PASS paranccsal kezdeményezett újabb fordítás esetén már az újabb értéket kapja meg. A PASS funkció olyan sorozat fordításra készült, amikor különböző object névvel, többféle programváltozatot szeretnénk egy lépésben lefordítani. A következő példában három file készítését oldjuk meg:

IF PASS_VAR=0
PASS 1
OBJECT FILE1.COM
ENDIF
IF PASS_VAR=1
PASS 2
OBJECT FILE2.COM
ENDIF
IF PASS_VAR=2
OBJECT FILE3.COM
ENDIF
;PASS 0 esetén
;kéri a PASS 1-et
;1. fájlnév

;PASS 1 esetén
;kéri a PASS 2-t
;2. fájlnév

;PASS 2 esetén
;3. fájlnév
;nincs több PASS-kérés

Fordítás közben a PASS_VAR változó értékét a PASS n parancs nem befolyásolja, feltéve, hogy utána nem adunk ki WORKSEGMENS parancsot! A LET vagy LEN paranccsal a PASS_VAR változó értéke módosítható, de ettől a PASS értéke nem változik meg!

Mnemonikok:
A parancsszavak nagy része a Z80 utasításait tartalmazza. A többi, mint pszeudó mnemonik, a fordítót vezérlik. Vannak parancsok melyek a kompatibilitás miatt több alakban is szerepelnek és azonos értelműek. MACRO definiálásra csak az ettől eltérő szavakat célszerű használni. A parancsszavak szintaktikájára érvényesek a szimbólumoknál leírtak. Kivéve, hogy egyes parancsokat a kompatibilitás érdekében vezető ponttal és pont nélkül is megadhatunk. A parancsokat a sorkezdéstől legkevesebb egy karakterrel beljebb kell kezdeni. A parancsot az operandustól szóköz választja el. E leírásban nem kívánok assembly ismertetést adni, de alább kitérek minden, a szokványostól eltérő parancs használatára. A HEASS által kezelt parancsok gyűjteménye:

=, RR, RL, OR, LD, JR, JP, IN, IM, IF, EX, EI, DW, DS, DM, DI, DF, DC, DB, CP, XOR, VAR, SUB, SRL, SRA, SLA, SET, SCF, SBC, RST, RRD, RRC, RRA, RLD, RLC, RLA, RET, RES, POP, OUT, ORG, NOP, NEG, LET, LEN, LDI, LDD, INI, IND, INC, IFT, IFF, IF2, IF1, FOR, EXX, EQU, END, DP4, DP2 ,DEC, DBL, DBS, DBR, DAA, CPL, CPI, CPD, CCF, BIT, AND, ADD, ADC, RRCA, RLCA, RETN, RETI, PUSH, PASS, OUTI, OUTD, OTIR, OTDR, NEXT, LDIR, LDDR, INIR, INDR, HALT, EXOS, ENDM, ELSE, DJNZ, DP16, DEFW, DEFS, DEFM, DEFF, DEFC, DEFB, CPIR, CPDR, CALL, PHASE, MERGE, MACRO, ENDIF, PRINTX, OBJECT, HEADER, .PHASE, PRINTX2, INCLUDE, DEPHASE, COMMENT, .PRINTX, .DEPHASE, .COMMENT, WORKSEGMENS

Operandusok:
Több operandus használata esetén vesszővel kell tagolni. Az operandusok lehetnek regiszterek, kifejezések, sztringfüzérek. A kettőspont után a sor további részén megjegyzéseket írghatunk.

Regiszterek:
8 BITES REGISZTEREK: A, B, C, D, E, F, H, I, L, R, XH, XL, YH, YL
16 BITES REGISZTEREK: AF, BC, DE, HL, IX, IY, SP

Sztringfűzérek:
Az idézőjelbe zárt karakter sorozat. Használható a 128 feletti ASC-kód, így az ékezetes betű is lefordítható.

Kifejezések:
A kifejezések operandusokból és operátorokból állhatnak. A műveletet a fordító a matematika szabályai szerint balról jobbra, a prioritás és zárójelek figyelembevételével végzi. A RADIX utasítást a fordító nem használja. A használható operandus-típusok:

  1. Decimális szám (pl. 10)
  2. Hexadecimális szám (pl. 10H)
  3. Bináris szám (pl. 10B)
  4. Karakter (pl. "A")
  5. $ (Az utasítás-számláló értéke)
  6. Szimbólum (pl. ST10) betűvel kezdődő szimbólum értéke.

A használható operátorok prioritási sorrendben:

7.+, -, NOT, LOW, HIGHElőjel, logikai NEM, alacsony - magas-byte
6.^hatványozás
5.*, /, MOD, SHL, SHRSzorzás, osztás, maradék, shiftelés
4,+, -Összeadás, kivonás
3.ANDLogikai ÉS
2.OR, XOR Logikai VAGY, KIZÁRÓ VAGY
1.<, <=, =, <>, => > LG, GTElőjel nélküli és előjeles RELÁCIÓ

A fordító pszeudo és különleges parancsai:

WORKSEGMENS kif - Megadja a szimbólumtábla szegmenseinek számát. Az alapérték 1, melyet maximum 3-ra lehet növelni. Törli az eddig deklarált szimbólumukat, de újra felveszi a PASS_VAR nevű változót, hozzárendelve nullát, illetve a PASS-szal megadott újabb értéket.
PASS kif - Hatására a program a fordítás végeztével újabb fordítást végez. A kifejezés értéke a fordítás újraindulásánál a PASS_VAR nevű szimbólumba íródik, s így IF-ek segítségével vezérelni lehet a fordítót. A többi változót ugyanis törli az assemble ismételt indítása.
ORG kif - Beállítja az utasításszámláló értékét, valamint nullázza a PHASE ofsettároló pillanatnyilag olvasható értékét. A két 16 bites regiszter összege adja az aktuális címszámláló eredményt.($) Adott forrásban, amikor nincs szükség a címszámláló folytonosságának megőrzésére, megengedett a több helyen kiadott ORG parancs.
OBJECT név - Megadja az object-fájl nevét. Ide íródik a lefordított kód.
HEADER kif - Megadja a modul típusát. A fordító az object-fájlra ilyenkor elsőnek egy 16 bájtos fejrészt küld, mely a modulszámot és a modulméretet tartalmazza. A számtól függetlenül csak abszolút formát kezel. Az áthelyezhető fájl GEN-re konvertálva, a GEN-nel fordítható.
VAR kif, név - A FENAS modul és object-név parancsa. A modulszám felső 2 bitjét törli, mivel a FENAS-ban más információt hordoz. (javasolt helyette a HEADER és OBJECT)
EQU kif - Értéket ad a szimbólumnak. Ismételt szimbólumnév esetén hibajelzést küld. Használható helyette az "=" is.
LEN címke=str - Új értéket ad egy létező szimbólumnak. Az értéket a sztring hossza szolgáltatja.
DM - Idézőjelbe tett sztringfüzéreket definiál. Vesszővel elválasztva több is megadható.
DW - 16 bites kifejezés. Vesszővel több is megadható.
DB - 8 bites kifelezés vagy sztringfűzér. Vesszővel több is megadható.
DBR - A DB végrehajtása úgy, hogy a 7. bitet minden bájtnál törli. Alkalmazható pl. a videólapok direkt írásánál.
DBS -A DB végrehajtása úgy, hogy a 7. bitet minden bájtnál beállítja. Alkalmazható pl. a videólapok direkt írásánál.
DBL - A DB végrehajtása úgy, hogy a kiszámolt hosszbájtot a sztring elé helyezi. Alkalmazható pl. fájlneveknél, EXOS-parancsoknál.
DC - A DB és DW végrehajtása úgy, hogy a 8 bitnél nagyobb kifejezések 16 biten tárolódnak. Sztring tárolására nem alkalmas.
DS - A kifejezés által megadott terület nullázva lesz.
DF - Az első kifejezés megadja azt a ciklusszámot, hogy a DB rutin hányszor értékelje a sor további részét.
DP2 - Pixel terület megadása 2 színű videómódra. A sorban csak 0-át vagy 1-est használhatunk. A bájtok számát a megadott bitek adják. A befejezetlen bájt további része nullával lesz feltöltve. Alkalmas kisebb ikonok készítésére a grafikus videólapokon. 1 bájtba 8 pixel tehető.
DP4 - Pixel terület megadása 4 színű videómódra. A sorban csak 0-3 számokat használhatunk. A bájtok számát a megadott pixelek adják. A befejezetlen bájt további része nullával lesz feltöltve. Alkalmas kisebb ikonok készítésére a grafikus videólapokon. 1 bájtba 4 pixel tehető.
DP16 - Pixel terület megadása 16 színű videómódra. A sorban csak 0-F hexa számokat használhatunk. A bájtok számát a megadott pixelek adják. A befejezetlen bájt további része nullával lesz feltöltve. Alkalmas kisebb ikonok készítésére a grafikus videólapokon. 1 bájtba 2 pixel tehető.
MERGE név - Beilleszti az objectbe a megadott nevű adatfájlt. Az első menet alatt nem olvassa be, csak a fájlméretet kéri le. Ehhez kötelezően DISK-egységre van szükség. A másolás az object készítésnél is alkalmazott, 16 kilobájtos csomagokban történik.
PRINTX1 - Első menetben végrehajtja a PRINTX parancsot.
PRINTX2 - Második menetben végrehajtja a PRINTX parancsot.
PRINTX - Kiírja a sorban lévő szöveget. £ esetén hexadecimálisan, % pedig decimálisan kiírja a kifejezést. Vesszőt alkalmazva egy sorban több adatot is kiírathatunk.
COMMENT kar - Megkeresi a szövegben azt a sort amelynek első karaktere azonos a megadottal és a következő soron folytatja a fordítást. Használatát kerüljük a MACRO blokkon belül, ill. itt ne használjunk az ENDM szót azért, hogy az ENDM keresését nehogy elrontsuk a macro definíció átugrásánál.

Blokkvermet igénylő parancsok:
A fordító az INCLUDE, FOR-NEXT, IF-ENDIF, MACROENDM, PHASE-DEPHASE blokkok hívásához közös vermet használ. A hívások lehetséges mélységét tehát a már megnyitott blokkok csökkentik. Az 1.0-ás verziónál kb. 525 bájtos verem található. A blokkok memória igénye eltérő. Az IF=2 bájt, PHASE=3, INCLUDE=4, FOR=6, MACRO=13 valamint a hívó sor dekódolt paraméterei, amikor egy macro paraméterekkel hív egy újabb macrot.
Amikor megtelik a verem, a fordítás hibaüzenettel leáll. A blokkok használatára jellemző, hogy először azt a blokkot kell lezárni amelyiket utoljára nyitottunk meg. Ellenkező esetben a fordítás hibaüzenettel leáll.

PHASE kif - A megadott értékből kivonja a futásszámlálót (ORG), és ezzel a különbséggel helyettesíti az előzőleg blokkverembe mentett ofset-tároló pillanatnyi értékét.
DEPHASE - Visszaadja veremből az ofset-tárolónak a PHASE utasítás előtt használt értéket.
FOR kif - A kifejezéssel megadott ciklusszámban végrehajtja a FOR és NEXT sor által közrefogott blokkot. NEXT - A FOR ciklus lezáró parancsa. Az IF parancs blokkverembe menti a fordításkapcsoló pillanatnyi értékét, majd a kiértékelés alapján új értékkel tölti fel. A FALSE fordítás letiltja a mélyebben megnyitott IF-eket az eredményüktől függetlenül.
IF kif - Tovább fordít ha igaz vagy nem nulla a kifejezés.
IFT kif - Tovább fordít ha igaz vagy nem nulla a kifejezés.
IFF kif - Tovább fordít ha hamis vagy nulla a kifejezés.
IF1 - Tovább fordít az első fordítási menetben.
IF2 - Tovább fordít a második fordítási menetben.
ELSE - Átváltja a fordításkapcsolót a pillanatnyi mélységen. Nem kötelező a használata, valamint többször is kiadható.
ENDIF - Lezárja a pillanatnyi mélységű megnyitott IF blokkot. A veremből előkerül a fordításkapcsoló IF előtti értéke.
INCLUDE - Hozzáfordítja az objecthez a megadott nevű HEASS-forrásszöveget.
A fájlt a fordító az első menet alatt a memóriába olvassa és ott tárolja a fordítás mindkét menete alatt. Egy alkalommal történik a beolvasás akkor is, ha ugyanazon nevű fájlt többször is includoljuk. Szöveg végét követően vagy END parancsra az INCLUDE-t kiadó sor alatt folytatja a fordítást. A pillanatnyilag a memóriában tárolt include fájlok nevének és szegmensének tárolására külön 699 bájtos puffer áll rendelkezésre. A fordítás végeztével az include-szegmensek felszabadításra kerülnek. END - A szövegmutatót áthelyezi az aktuális forrás végére. INCLUDE esetén visszatér az előző meghívó forráshoz. Az END használata nem kötelező. A visszatérés címét a blokk-veremből olvassa ki. Amikor eltérő blokktipust talál, *** Lezáratlan blokk. hibaüzenettel leállítja a fordítást.
END - A szövegmutatót áthelyezi az aktuális forrás végére. INCLUDE esetén visszatér az előző meghívó forráshoz. Az END használata nem kötelező. A visszatérés címét a blokk-veremből olvassa ki. Amikor eltérő blokk-típust talál, ***Lezáratlan blokk hibaüzenettel leállítja a fordítást.
MACRO - MACRO definiálás. A MACRO-blokk ekkor figyelmen kívül marad, de a neve és címe el lesz tárolva. A definiálás előtt nem lehet a MACRO-t meghívni. A MACRO parancs sorában járulékos paraméternevek is lehetnek. Amikor a fordító a blokk sorában ilyen nevű operandust talál, kicseréli a hívó sorból származó paraméterre. Ezek a szavak tehát a prioritásban elsődlegesek lesznek. A macro definícióban lehet másik macro-t hívni, de nem lehet definiálni.
ENDM - A MACRO blokk lezárása. A blokk ekkor még nincs lefordítva, viszont eltárolta a MACRO-nevet. Erre később mint új parancsszóra lehet hivatkozni. A MACRO-ból meghívható másik MACRO is.

A MACRO-k használata:
A macro paraméterek @-jellel kezdődnek. Amikor a fordító a macro egy sorában @-paramétert talál, akkor a paramétert helyettesíti a hívó sor megfelelő paraméterével. A hívó sorban a paramétereket vesszővel lehet tagolni és pontosvessző után megjegyzést tehetünk. A vesszőt és pontosvesszőt macro-paraméterként idézőjelben lehet átadni. A módosult sztringet végül megkapja a parancs kiértékelő rutin.

XH, XL, YH, YL operandusok:
A 8 bites töltő és aritmetikai utasításoknál szabadon használhatóak az index regiszterpárok alsó-felső regisztere. (LD, ADD, ADC, SUB, SBC, AND, XOR, OR, CP, INC, DEC)

LD parancs:
A fordító megengedi az alábbi 16 bites értékadásokat. Pl. LD BC,DE parancsot az LD B,D és LD C,E parancsokkal helyettesíti:
LD BC,DE; LD BC,HL; LD DE,BC; LD DE,HL; LD HL,BC; LD HL,DE

Rotációs és bitkezelő (IX+n) parancsok:
A forrásban a Z80 katalógusban fel nem tüntetett módon,, (IX+n), (IY+n)-re vonatkozó RLC, RRC, RL, RR, SLA, SRL, RES, SET utasítások kiterjeszthetőek egy regiszter operandussal is. Az ilyen parancs egy lépésben végrehajtja a feladatot az indexelt bájton, és a megadott regiszterbe is betölti az eredményt. Pl.
SET 8,(IX+1),A vagy RLC(IX+1),L

IN, OUT:
A két parancsot (C) operandussal az F-regiszterre is alkalmazhatjuk, bár a bitek módosulása miatt nem tanácsos őket használni. Pl.:
IN F,(C) vagy OUT (C),F