|
 |
Gli strumenti di Lavoro |
GESTORE D'AMBIENTE - MACRO 9/9
[62 di 87] |
 | Abbiamo detto all'inizio di questo paragrafo
che Macro.bat è un
file batch; in
questo paragrafo mostreremo alcuni trucchi che fanno del nostro Gestore
interattivo dell'Ambiente Assembler un buon
file batch. |
 | Se vuoi leggere
o scaricare (operazione non è necessaria
se hai già
provveduto a scaricare l'Ambiente
Assembler) le versioni predisposte
dall'autore per i sistemi Operativi Window 9x,
Windows 2000 e
Windows XP puoi cliccare sui 3 link seguenti :
|
 | Se la lettura dei caratteri proposti dal tuo NotePAD
(Blocco Note) di Windows
appariranno in forma parzialmente illeggibile
(leggi la
scheda che tratta questo
argomento) la causa sta nel font utilizzato
per default, di solito Courier New o Times New
Roman); per risolvere il problema
scarica il font Giobe.TTF,
fondamentale per vedere correttamente i sorgenti. |
 | Dopo averlo scaricato (fallo ora!!) spostalo nella cartella
Fonts di Windows. |
 | Intervenendo dunque sulla voce Imposta
carattere del menu Modifica
di NotePAD, scegli il nuovo font
Giobe;
dovresti apprezzare immediatamente la differenza.. |
 |
In questa pagine mostriamo alcuni
dettagli del file
Macro.BAT; si tratta solo di
un assaggio della potenza assicurata da questo strumento; anche senza
conoscere il linguaggio di programmazione dei files batch
è possibile intuirne le caratteristiche e la struttura. |
 | Una caratteristica di questi batch è la
capacità di distinguere la prima
chiamata dalle successive (con l'aiuto di una variabile di sistema, FLAGm):
in questo modo può configurare l'ambiente dos
(come il percorso, path) e lanciare alcuni
applicativi (come per esempio Dosedit.com) solo la
prima volta, evitando di ripetere in futuro queste preziose
inizializzazioni:
@ECHO OFF
IF "%FLAGm%"=="OK" GOTO START0
PATH=C:\ARCH-LAB\CHK;C:\ARCH-LAB\BIN;.....
......
c:\arch-lab\chk\DOSEDIT > NUL
......
SET FLAGm=OK
:START0
|
|
 | La figura seguente mostra in che modo è
possibile far capire al batch se c'è o meno lo switch
/E: nel primo caso segnala errore e
torna al dos mentre nel secondo apre
l'editor. Da notare che le etichette DOS e MENU sono punti importanti
del file batch (descritti più avanti).
:START0
IF z%1 == z GOTO ERR1
IF z%2 == z/E GOTO EDITOR
IF z%2 == z/e GOTO EDITOR
.........
:ERR1
IF "%FLAGd%"=="OK" GOTO DOS
MASM_1 20
MASM_1 02
GOTO DOS
IF EXIST %1.LST DEL %1.LST
IF EXIST %1.COM IF EXIST %1.EXE DEL %1.EXE
IF EXIST errcmp.txt DEL errcmp.txt
IF EXIST errlnk.txt DEL errlnk.txt
IF EXIST %1.BAK DEL %1.BAK
.........
:EDITOR
MASM_1 08
CLS
Q %1.ASM
GOTO MENU
|
|
 | Nel dettaglio successivo vediamo come il file
batch gestisce le sottoOpzioni del menu
di compilazione interno
(la cui immagine è assicurata dal programma Masm_in1.COM):
|
:START1
MASM_IN1
if errorlevel 54 goto ANNULLA
if errorlevel 53 goto aggiornaLIB
if errorlevel 52 goto onlyOBJ
if errorlevel 51 goto siLISTATO
if errorlevel 50 goto EXEsiLIB
if errorlevel 49 goto EXEnoLIB
|
|
 | Il dettaglio
successivo mostra l'effettiva catena di realizzazione dell'eseguibile
nel caso standard di accesso alla libreria GIOBE.LIB; notiamo la stampa dei messaggi iniziale (Masm_1
13) e
finale (Masm_1 10)
e soprattutto le chiamate di MASM
%1, LINK
%1,%1,nul,GIOBE.LIB /NOE
e di EXE2BIN
%1.
Il file sorgente da elaborare è indicato da %1,
che corrisponde al primo parametro passato a Macro.txt:
|
:EXEsiLIB
MASM_1 13
MASM %1;|ERR-COMP
IF NOT EXIST %1.OBJ GOTO ERR2
LINK %1,%1,nul,GIOBE.LIB /NOE|ERR-LINK
IF NOT EXIST %1.EXE GOTO ERR3
IF EXIST %1.OBJ DEL %1.OBJ
IF z%2 == z0 GOTO OKexe2
EXE2BIN %1
IF NOT EXIST %1.BIN GOTO END2
IF EXIST %1.COM DEL %1.COM
REN %1.BIN %1.COM
IF z%2 == z. GOTO DOS
MASM_1 10
GOTO MENU
|
|
 | In questa parte del file
batch vediamo la gestione delle opzioni del menu
principale, stampato
da Masm_1 09:
in particolare notiamo il salto all'etichetta START1 (vista poco fa) quando
si preme il tasto 2 (codice numerico 50):
|
:MENU
cls
MASM_1 09
if errorlevel 59 goto DOS
if errorlevel 58 goto NOclearEL
if errorlevel 57 goto NOclearLST
if errorlevel 56 goto NOclearEXE
if errorlevel 55 goto err003
if errorlevel 54 goto err002
if errorlevel 53 goto err02
if errorlevel 52 goto PRINT
if errorlevel 51 goto ESEGUI
if errorlevel 50 goto START1
if errorlevel 49 goto EDITOR1
GOTO DOS
|
|
 | Infine mettiamo in evidenza la capacità di lasciar
pulita la cartella, ogni volta che il programmatore decise di tornare
al dos: viene verificata la presenza dei files LST,
TXT e BAK e del
file EXE (solo se c'è quello COM);
in caso affermativo i files vengono cancellati:
:DOS
IF EXIST %1.LST DEL %1.LST
IF EXIST %1.COM IF EXIST %1.EXE DEL %1.EXE
IF EXIST errcmp.txt DEL errcmp.txt
IF EXIST errlnk.txt DEL errlnk.txt
IF EXIST %1.BAK DEL %1.BAK
|
|
 |
NB:
SOLO
per Sistema Operativo
Windows 2000
Cosa fare se il Gestore
d'Ambiente
(MACRO.BAT)
segnala errore |
 | Per qualche imprevedibile ragione l'Ambiente BASE
per Windows 2000 può talvolta,
con un paio di versioni
di Windows 2000, non consentire al Gestore d'Ambiente
(appunto MACRO.BAT) di
funzionare correttamente e
segnala questo errore: |
 |
NB:
per risolvere questo problema ho predisposto una piccola integrazione,
Arch-Lab_Win2000_Patch.zip, descritta e scaricabile in
questa pagina |
|
Capitolo 2 |
|
|
GESTORE D'AMBIENTE - MACRO 9/9
|
|
 |
 |
 |
|
62
di 87 |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|