Sistema macro del linguaggio assemblatore
msystem.zip
411KB.
Sistema macro
Breve descrizione dei principali file presenti nell'archivio.
Il macrosistema stesso:
MSYSTEM.MAC
Questo file contiene il vero sistema macro.
MMACROS.MAC
Questo file contiene ulteriori definizioni macro utili.
MBIOS.MAC
Questo file contiene le definizioni delle macro per il BIOS del PC IBM.
MDOS.MAC
Questo file contiene le definizioni delle macro per IBM-PC DOS.
CONIO.MAC
DIR.MAC
ERRORE.MAC
FLOAT.MAC
IO.MAC
KBD.MAC
MATEMATICA.MAC
MBIOS.MAC
MEM.MAC
MOUSE.MAC
STOV.MAC
STRINGA.MAC
SIST.MAC
Il macrosistema stesso:
SCEGLI.M
OROLOGIO.M
CODER.M
COLORE.M
CURSORE.M
DBEDIT.M
INIT.M
CHIAVE.M
MENÙ.M
MKEYS.M
LEGGI.M
REC.M
DICE.M
SCORRI.M
ORDINAMENTO.M
SUONO.M
FINESTRA.M
DOCUMENTAZIONE:
MSYSTEM.DOC
Questo è un file di documentazione per il sistema macro.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
LEGGI.DOC
TITOLO.DOC
File *.ASM Questi file contengono
Per l'installazione sul sistema
Ricorda che gli errori dell'assemblatore
Qualunque sia il tuo approccio -
L'Assembler stesso può essere scaricato qui
tasm25.zip
- 175KB.
Ad esempio, ecco un semplice codice
;
;
.MODELLO PICCOLO
includere msystem.mac
includere sys.mac
includere conio.mac
includere mouse.mac
includere mem.mac
includere kbd.mac
includere math.mac
includere cursore.m
includere window.m
includere color.m
includere rec.m
includere dbedit.m
includere dire.m
includere read.m
includere key.m
includere mkeys.m
includere mb.m
taglia_com = 20000+256
len_stack= 20000
len_var = 20000
.CODICE
INIZIO INIZIO,100h,_main,{
funz mb_empty,,
mov SI, buff_A
riempimento memoria <32,@ DEBET_NAME,LEN_NAME>
memfill < 0,@ DEBET_QUAN,LEN_QUAN>
memfill <32,@ KREDIT_NAME,LEN_NAME>
memfill < 0,@ KREDIT_QUAN,LEN_QUAN>
fine
funz _pic,,,1,public
vecchio_colore EQU [BP]-1
getcolor,
mov SI, buff_A
setcolor
sayxy
setcolor
dì <@DEBET_NAME,@f_name>
setcolor
dire <@ spazio,@ f_s>
setcolor
dì <@ DEBET_QUAN,@ f_quan>
setcolor
dire <@ spazio,@ f_s>
setcolor
dire <@ spazio,@ f_s>
setcolor
dì <@ KREDIT_NAME,@ f_name>
setcolor
dire <@ spazio,@ f_s>
setcolor
dì <@ KREDIT_QUAN,@ f_quan>
setcolor
dire <@ spazio,@ f_s>
setcolor
fine
func _fuser,,,1,public
vecchio_colore EQU [BP]-1
movimento DI, 1
mov AL, cs:modalità
commuta AL,<0,1>
caso 1 { ;
getcolor,
setcolore
raccontare <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
caso 2 {
mov retr_cho, VERO
while {
mov retr_cho, FALSO
mkeys_to
mov AL, cs:chiave_AL
cambia AL, {
caso 1 {
mov AH, cs:chiave_AH
commuta AH,
caso 1 ;
Inserendo ,
caso 2;
Cancellazione ,
caso 3;
Ordinamento ,
caso 4;
caso 5;
Incontri,
caso 6;
menupull
movimento DI, 3
endcase
caso 2 { ;
caso 3;
Immettendo ,
caso 4;
movimento fatto, FALSO
movDI,0
endcase
fine}
endcase
endf
label1 db 'IN ARRIVO',0
label2 db 'CONSUMO',0
title1 db ' Nome Quantità
ukeys1 db 1Eh,0
ukeys2 db 1Fh,0
skeys1 db 'INVIO',0
nkeys1 db 'INVIO',0
skeys2 db 'INS',0
nkeys2 db 'NUOVO',0
skeys3 db 'DEL',0
nkeys3 db 'CANCELLA',0
tasti4 db 'F5',0
nkeys4 db 'STAMPA',0
tasti5 db 'F6',0
nkeys5 db 'ORDINE',0
skeys6 db 'F7',0
nkeys6 db 'CERCA',0
skeys7 db 'F8',0
nkeys7 db 'SOMMA',0
skeys8 db 'F10',0
nkeys8 db 'MENU',0
skeys9 db 'ESC',0
nkeys9 db 'QUIT',0
;--- Procedura capo
funzione principale
;
cli
mov SP, size_com+len_stack
sti
;
farrelease <*CS 00.00 size_com+len_stack+len_vars>
initcon
rilasciare <* size_com+len_stack,0>
initsys
initmouse
cursore_off
;
setcolor <<>>
cassetto
drawbox < 0, 2.79, 2,@ box_main>
mouse_on
setcolore
sayxy <16, 0,@etichetta1,@f_s>
sayxy <56, 0,@etichetta2,@f_s>
setcolor
sayxy <0, 1,@ titolo1,@ f_s>
setcolor
dì <@ titolo1,@ f_s>
setcolor <<>>
;
colore
mkeys_on
mkeys_fr <79, 0,PGUPKEY*100h,@ ukeys1,@ snull>
mkeys_fr <79,24,PGDNKEY*100h,@ ukeys2,@ snull>
mkeys_fr < 4,24,CRKEY,@ skeys1,@ nkeys1>
mkeys_fr <14,24,INSKEY*100h,@ skeys2,@ nkeys2>
mkeys_fr <22,24,DELRKEY*100h,@ skeys3,@ nkeys3>
mkeys_fr <30,24,F5KEY*100h,@ skeys4,@ nkeys4>
mkeys_fr <37,24,F6KEY*100h,@ skeys5,@ nkeys5>
mkeys_fr <44,24,F7KEY*100h,@ skeys6,@ nkeys6>
mkeys_fr <51,24,F8KEY*100h,@ skeys7,@ nkeys7>
mkeys_fr <58,24,F10KEY*100h,@ skeys8,@ nkeys8>
mkeys_fr <65,24,ESCKEY,@ skeys9,@ nkeys9>
mkeys_on
;
ricoprire <@ rec_A,@ file_A,len_A>
getmem , ;recbuffer
recempty <@ rec_A,@ _mb_empty>
;
colore
movimento fatto, VERO
mentre
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
fine
;
freemem<*buf_A>
richiudi <@ rec_A>
;
mkeys_of
;
mouse_spento
cursore_su
;
clrscr
fermare <0>
fine
FINE INIZIO