System makr w języku asemblera
msystem.zip
411 KB.
System makro
Krótki opis głównych plików w archiwum.
Sam system makro:
MSYSTEM.MAC
Ten plik zawiera aktualny system makr.
MMACROS.MAC
Ten plik zawiera dodatkowe przydatne definicje makr.
MBIOS.MAC
Ten plik zawiera definicje makr dla BIOS-u IBM-PC.
MDOS.MAC
Ten plik zawiera definicje makr dla systemu IBM-PC DOS.
CONIO.MAC
DIR.MAC
BŁĄD.MAC
FLOAT.MAC
IO.MAC
KBD.MAC
MATEMATYKA.MAC
MBIOS.MAC
MEM.MAC
MYSZ.MAC
STOV.MAC
STRING.MAC
SYS.MAC
Sam system makro:
WYBIERZ.M
ZEGAR.M
KODER.M
KOLOR.M
KURSOR.M
DBEDIT.M
INIT.M
KLUCZ.M
MENU.M
MKEYS.M
CZYTAJ.M
NAGR.M
POWIEDZ.M
PRZEWIŃ.M
SORTOWANIE.M
DŹWIĘK.M
OKNO.M
DOKUMENTACJA:
DOK.MSYSTEM
To jest plik dokumentacji systemu makr.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
CZYTAJ.DOC
TYTUŁ.DOC
Pliki *.ASM Pliki te zawierają
Do instalacji w systemie
Pamiętaj o błędach asemblera
Niezależnie od Twojego podejścia -
Sam asembler można pobrać tutaj
tasm25.zip
- 175 kB.
Na przykład tutaj jest prosty kod
;
;
.MODEL MAŁY
dołącz plik msystem.mac
Dołącz sys.mac
Dołącz plik conio.mac
Dołącz mysz.mac
Dołącz mem.mac
Dołącz plik kbd.mac
Dołącz plik math.mac
uwzględnij kursor.m
uwzględnij window.m
uwzględnij kolor.m
uwzględnij rec.m
Dołącz dbedit.m
obejmują powiedz.m
uwzględnij read.m
dołącz klucz.m
zawiera mkeys.m
obejmują mb.m
size_com = 20000+256
len_stack= 20000
len_vars = 20000
.KOD
ROZPOCZNIJ START,100h,_main,{
func mb_empty,,
mov SI, buf_A
zapełnij pamięć <32,@ DEBET_NAME,LEN_NAME>
zapełnienie pamięci < 0,@ DEBET_QUAN,LEN_QUAN>
zapełnij pamięć <32,@ KREDIT_NAME,LEN_NAME>
zapełnienie pamięci < 0,@ KREDIT_QUAN,LEN_QUAN>
koniec
func _pic,,,1,public
stary_kolor EQU [BP]-1
getcolor ,
mov SI, buf_A
setcolor
sayxy
setcolor
powiedz <@DEBET_NAME,@f_name>
setcolor
powiedz <@ spacja,@ f_s>
setcolor
powiedz <@DEBET_QUAN,@f_quan>
setcolor
powiedz <@ spacja,@ f_s>
ustawkolor
powiedz <@ spacja,@ f_s>
setcolor
powiedz <@ KREDIT_NAME,@f_name>
ustawkolor
powiedz <@ spacja,@ f_s>
setcolor
powiedz <@ KREDIT_QUAN,@ f_quan>
ustawkolor
powiedz <@ spacja,@ f_s>
setcolor
koniec
func _fuser,,,1,publiczne
stary_kolor EQU [BP]-1
ruch DI, 1
mov AL, cs:mode
przełącznik AL,<0,1>
przypadek 1 { ;
getcolor ,
ustawkolor
relacja <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
przypadek 2 {
mov retr_cho, PRAWDA
podczas gdy {
mov retr_cho, FAŁSZ
mkeys_to
mov AL, cs:key_AL
przełącz AL, {
przypadek 1 {
mov AH, cs:key_AH
przełącznik AH,
przypadek 1 ;
Wstawianie ,
przypadek 2;
Usuwanie ,
przypadek 3;
Sortowanie,
przypadek 4;
przypadek 5;
Randki,
przypadek 6;
menupull
ruch DI, 3
obudowa końcowa
przypadek 2 {;
przypadek 3;
Wprowadzanie ,
przypadek 4;
ruch gotowy, FAŁSZ
movDI,0
obudowa końcowa
koniec}
obudowa końcowa
endf
label1 db 'NADCHODZĄCY',0
label2 db 'ZUŻYCIE',0
tytuł1 db ' Nazwa Ilość
ukeys1 db 1Eh,0
ukeys2 db 1Fh,0
skys1 db 'ENTER',0
nkeys1 db 'ENTER',0
skyys2 db 'INS',0
nkeys2 db 'NOWOŚĆ',0
skyys3 db 'DEL',0
nkeys3 db 'USUŃ',0
skyys4 db 'F5',0
nkeys4 db 'PRINT',0
skys5 db 'F6',0
nkeys5 db 'ZAMÓWIENIE',0
skys6 db 'F7',0
nkeys6 db 'SZUKAJ',0
skyys7 db 'F8',0
nkeys7 db 'SUMA',0
skyys8 db 'F10',0
nkeys8 db 'MENU',0
skyys9 db 'ESC',0
nkeys9 db 'WYJDŹ',0
;--- Procedura głowy
funkcja główna
;
kli
mov SP, size_com+len_stack
st
;
farrelease <*CS 00.00 size_com+len_stack+len_vars>
initcon
wydanie <* size_com+len_stack,0>
initsys
initmysz
kursor_wyłączony
;
setcolor <<>>
szuflada
szuflada < 0, 2,79, 2,@ box_main>
mysz_na
ustawkolor
sayxy <16, 0,@ label1,@ f_s>
sayxy <56, 0,@ label2,@ f_s>
setcolor
sayxy <0, 1,@ tytuł1,@ f_s>
ustawkolor
powiedz <@ title1,@ f_s>
setcolor <<>>
;
kolor
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
;
ponownie otwórz <@ rec_A,@ plik_A,len_A>
getmem , ;recbuffer
reempty <@ rec_A,@ _mb_empty>
;
kolor
ruch gotowy, PRAWDA
podczas gdy
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
koniec
;
wolnypamięć<*buf_A>
zamknij <@ rec_A>
;
mkeys_of
;
mysz wyłączona
kursor_na
;
klrscr
zatrzymaj <0>
koniec
KONIEC START