Sistem macro în limbaj de asamblare
msystem.zip
411KB.
Macrosistem
Scurtă descriere a principalelor fișiere din arhivă.
Macrosistemul în sine:
MSYSTEM.MAC
Acest fișier conține sistemul macro actual.
MMACROS.MAC
Acest fișier conține definiții suplimentare utile pentru macrocomenzi.
MBIOS.MAC
Acest fișier conține definiții macro pentru IBM-PC BIOS.
MDOS.MAC
Acest fișier conține definiții macro pentru IBM-PC DOS.
CONIO.MAC
DIR.MAC
ERROR.MAC
FLOAT.MAC
IO.MAC
KBD.MAC
MATH.MAC
MBIOS.MAC
MEM.MAC
MOUSE.MAC
STOV.MAC
STRING.MAC
SYS.MAC
Macrosistemul în sine:
ALEGE.M
CEAS.M
CODER.M
CULOARE.M
CURSOR.M
DBEDIT.M
INIT.M
KEY.M
MENIU.M
MKEYS.M
CITEȘTE.M
REC.M
SAY.M
SCROLL.M
SORT.M
SUNET.M
FEREASTRĂ.M
DOCUMENTAȚIE:
MSYSTEM.DOC
Acesta este un fișier de documentație pentru sistemul macro.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
CITEȘTE.DOC
TITLUL.DOC
Fișiere *.ASM Aceste fișiere conțin
Pentru instalare pe sistem
Amintiți-vă că erorile de asamblare
Oricare ar fi abordarea ta -
Asamblatorul în sine poate fi descărcat aici
tasm25.zip
- 175 KB.
De exemplu, aici este un cod simplu
;
;
.MODEL MIC
includ msystem.mac
include sys.mac
includ conio.mac
include mouse.mac
includ mem.mac
includ kbd.mac
includ math.mac
include cursorul.m
include fereastra.m
include culoarea.m
includ rec.m
includ dbedit.m
includ spune.m
include citiți.m
include cheia.m
includ mkeys.m
includ mb.m
size_com = 20000+256
len_stack= 20000
len_vars = 20000
.COD
BEGIN START,100h,_principal,{
func mb_empty,,
mov SI, buf_A
memfill <32,@ DEBET_NAME,LEN_NAME>
memfill < 0,@ DEBET_QUAN,LEN_QUAN>
memfill <32,@ KREDIT_NAME,LEN_NAME>
memfill < 0,@ KREDIT_QUAN,LEN_QUAN>
endf
func _pic,,,1,public
culoarea_veche EQU [BP]-1
getcolor ,
mov SI, buf_A
setcolor
sayxy
setcolor
spune <@DEBET_NAME,@f_name>
setcolor
spune <@ space,@ f_s>
setcolor
spune <@ DEBET_QUAN,@ f_quan>
setcolor
spune <@ space,@ f_s>
setcolor
spune <@ space,@ f_s>
setcolor
spune <@ KREDIT_NAME,@ f_name>
setcolor
spune <@ space,@ f_s>
setcolor
spune <@ KREDIT_QUAN,@ f_quan>
setcolor
spune <@ space,@ f_s>
setcolor
endf
func _fuser,,,1,public
culoarea_veche EQU [BP]-1
mov DI, 1
mov AL, cs:mode
comutator AL,<0,1>
cazul 1 { ;
getcolor ,
setcolor
reccount <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
cazul 2 {
mov retr_cho, TRUE
în timp ce {
mov retr_cho, FALSE
mkeys_to
mov AL, cs:key_AL
comutați AL, {
cazul 1 {
mov AH, cs:key_AH
comutator AH,
cazul 1 ;
Se introduce ,
cazul 2;
Se șterge ,
cazul 3;
Sortare ,
cazul 4;
cazul 5;
Dating,
cazul 6;
menupull
mov DI, 3
capacul final
cazul 2 { ;
cazul 3;
Introducerea ,
cazul 4;
Mov făcut, FALS
movDI,0
capacul final
endwh}
capacul final
endf
label1 db „VINE”,0
label2 db 'CONSUM',0
title1 db ' Nume Cantitate
ukeys1 db 1Eh,0
ukeys2 db 1Fh,0
skeys1 db 'ENTER',0
nkeys1 db 'ENTER',0
skeys2 db 'INS',0
nkeys2 db 'NOU',0
skeys3 db 'DEL',0
nkeys3 db 'ȘTERGERE',0
skeys4 db 'F5',0
nkeys4 db 'PRINT',0
skeys5 db 'F6',0
nkeys5 db 'COMANDĂ',0
skeys6 db 'F7',0
nkeys6 db 'CĂUTARE',0
skeys7 db 'F8',0
nkeys7 db 'SUM',0
skeys8 db 'F10',0
nkeys8 db 'MENIU',0
skeys9 db 'ESC',0
nkeys9 db 'QUIT',0
;--- Procedura capului
func principal
;
cli
mov SP, size_com+len_stack
sti
;
farrelease <*CS 00.00 size_com+len_stack+len_vars>
initcon
lansați <* size_com+len_stack,0>
initsys
initmouse
cursor_off
;
setcolor <<>>
drawbox
drawbox < 0, 2.79, 2,@ box_main>
mouse_on
setcolor
sayxy <16, 0,@ label1,@ f_s>
sayxy <56, 0,@ label2,@ f_s>
setcolor
sayxy <0, 1,@ title1,@ f_s>
setcolor
spune <@ title1,@ f_s>
setcolor <<>>
;
culoare
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
;
recopen <@ rec_A,@ file_A,len_A>
getmem , ;recbuffer
recempty <@ rec_A,@ _mb_empty>
;
culoare
Mov făcut, ADEVĂRAT
în timp ce
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
endwh
;
freemem<*buf_A>
recclose <@ rec_A>
;
mkeys_of
;
mouse_off
cursor_on
;
clrscr
opriți <0>
endf
sfârșitul început