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	100

Itt 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 !!!


		endm

Legvé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

	endc

Ezutá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:

;**************************************************************************