Modulsablon
A modulsablon segitségével könnyen lehet új modult előállítani. Egy modul általában egy <modulnev>.mac macro fájlból <modulnev>.inc include fájlból áll. De a feladattól függően ettől el lehet térni. A programsablonoknál már kiderült, hogy a *.mac-ot a program elején kell includálni, és a macro-kat tartalmazza, melyeken keresztül a modul funkcióit el lehet érni. A a *.inc -ot a program végén kell includálni a programunkba, és a függvényeket (sub rutin) tartalmazza.
Az itt leirtakon kivül ajanlom, hogy nezz meg meg pár kész modult, hogy megértsd, miket és hogyan kell tartalmaznia, hogy igazán használható legyen.
A macro sablon elemzése
A makro sablonba kell elhelyezni a makrokat és a define-okat. Az alabbiakban a makro sablon elemzése látható. Az első többsoros kommentár tartalmazza a file nevére, modosításának dátumára, verziójára, szerzőjére vonatkozó információkat. Továbbá itt található a modul megnevezése rövid leirása, a használatához szükséges és opcionális egyéb define-ok és include-ok felsorolása. A blokk végén a modosítások követésére szolgáló táblázat található.
;************************************************************************** ;* FileName : DUMMY.MAC ;* Date : 01.11.2002 ;* File version : v1.00 nolist ;* Author : MIKO, Imre ;* Company : ;* Homepage : http://majki.atw.hu ;* E-mail : majki.mester#gmail.com ;* ;*------------------------------------------------------------------------- ;* ;* Description : <short text> ;* ================================== ;* <long text> ;* ;* ;* ;*------------------------------------------------------------------------- ;* Needed defines and includes in main-modul: ;* ;* ;*------------------------------------------------------------------------- ;* Other possible defines in main-modul: ;* ;* ;* ;************************************************************************** ;* Revision History: ;* ;* 1.00 01/11/2002 Initial Release ;* ;**************************************************************************Ezt követöen kaphatnak helyet a define-ok. A sablonban csak egy pelda szerepel, amit ki lehet törülni.
;***** DEFINES ************************************************************ #define DUMMY_DEF 100Itt a sablon fő része következik. A macro-k törzsének definiálása. Példaként szerepel egy macro XXXX néven. Ha az alábbi formázásokat betartod, akkor egy jól olvasható lista file-t fogsz kapni a program forditása után. A sorok végén található EXP és NOEXP macrókkal azt lehet megadni, hogy az azt követő sorokat a listafile-ba kifejtse a forditó vagy nem. Logikailag én az olyan sorokat szoktam kifejtetni, amelyekből a fordító tényleges code-ot generál. Az olyan sorokat, amelyekben csak forditási időben különböző feltételeket vizsgálok, számítgatok, azokat nem szoktam kifejteni.
Felhivnám még a figyelmet a base modulban található EXPAND_MACROS macro-ra. A részleteket lásd a base modul leirásánál.;***** XXXX macro ********************************************************* ;* ;* Param : ; ;* Mem : ;* Clock : ;************************************************************************** XXXX macro ;========================================================== NOEXP ; hidden part here EXP ; not hidden part here nop nop ; 2 line are empty after this comment !!! endmLegvégül a listázást visszakapcsoló direktiva található. Ezzel zárul a macrosablon.
;************************************************************************** list
Az include sablon elemzése
Az include sablon, hasonloan a macro sablonhoz többsoros kommentárral kezdődik, ami tartalmazza a file nevét, modosításának dátumát, verzióját és szerzőjét. Továbbá itt található a modul megnevezése rövid leirása, a használatához szükséges és opcionális egyéb define-ok és include-ok felsorolása. A blokk végén a modosítások követésére szolgáló táblázat található.
;************************************************************************** ;* FileName : DUMMY.INC ;* Date : 01.11.2002 ;* File version : v1.00 ;* ;* Author : MIKO, Imre ;* Company : ;* Homepage : http://majki.atw.hu ;* E-mail : majki.mester#gmail.com ;* ;*------------------------------------------------------------------------- ;* ;* Description : <short text> ;* ================================== ;* <long text> ;* ;* ;*------------------------------------------------------------------------- ;* Needed defines and includes in main-modul: ;* ;* ;* ;*------------------------------------------------------------------------- ;* Other possible defines in main-modul: ;* ;* ;* ;* ;************************************************************************** ;* Revision History: ;* ;* 1.00 01/11/2002 Initial Release ;* ;**************************************************************************Ezt követi a fileregiszterek definiciója. Az ide irt váltózók, ha a program sablonoknál leirt szabályokat betartod, akkor a Bank0 fileregiszter bank-ba kerülnek.
;***** VARIABLES ********************************************************** cblock endcEzután jön egy sablon egy sub rutinnak. Ez inkább csak a függvény headerjének kitötése miatt van, hiszen maga a függvény üres.
;***** SUB2 *************************************************************** ;*;* Input : ; ;* Output: ; ;* Clock : ;************************************************************************** sub2 return Ezzel vége is van az include sablonnak, csak egy kommentar sor van a végén:
;**************************************************************************