Makrosystém jazyka assembler
msystem.zip
411 kB.
Makro systém
Stručný popis hlavních souborů v archivu.
Samotný makrosystém:
MSYSTEM.MAC
Tento soubor obsahuje skutečný systém maker.
MMACROS.MAC
Tento soubor obsahuje další užitečné definice maker.
MBIOS.MAC
Tento soubor obsahuje definice maker pro BIOS IBM-PC.
MDOS.MAC
Tento soubor obsahuje definice maker pro 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
Samotný makrosystém:
CHOISE.M
HODINY.M
CODER.M
COLOR.M
CURSOR.M
DBEDIT.M
INIT.M
KEY.M
MENU.M
MKEYS.M
READ.M
REC.M
SAY.M
SCROLL.M
SORT.M
SOUND.M
WINDOW.M
DOKUMENTACE:
MSYSTEM.DOC
Toto je dokumentační soubor pro systém maker.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
ČTĚTE.DOC
TITLE.DOC
*.ASM soubory Tyto soubory obsahují
Pro instalaci do systému
Pamatujte na chyby assembleru
Ať už je tvůj přístup jakýkoli -
Samotný Assembler je ke stažení zde
tasm25.zip
- 175 kB.
Zde je například jednoduchý kód
;
;
.MODEL MALÝ
zahrnout msystem.mac
zahrnout sys.mac
včetně conio.mac
zahrnout mouse.mac
zahrnout mem.mac
včetně kbd.mac
zahrnout math.mac
zahrnout kurzor.m
včetně okna.m
zahrnují barvu.m
zahrnout rec.m
zahrnout dbedit.m
včetně say.m
zahrnout read.m
zahrnout klíč.m
zahrnout mkeys.m
zahrnují mb.m
size_com = 20 000 + 256
len_stack= 20 000
len_vars = 20 000
.KÓD
BEGIN START,100h,_main,{
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
old_color EQU [BP]-1
getcolor ,
mov SI, buf_A
setcolor
sayxy
setcolor
řekněte <@DEBET_NAME,@f_name>
setcolor
řekněme <@ mezera,@ f_s>
setcolor
řekněte <@ DEBET_QUAN,@ f_quan>
setcolor
řekněme <@ mezera,@ f_s>
setcolor
řekněme <@ mezera,@ f_s>
setcolor
řekněte <@ KREDIT_NAME,@ f_name>
setcolor
řekněme <@ mezera,@ f_s>
setcolor
řekněte <@ KREDIT_QUAN,@ f_quan>
setcolor
řekněme <@ mezera,@ f_s>
setcolor
endf
func _fuser,,,1,public
old_color EQU [BP]-1
mov DI, 1
mov AL, cs:mode
přepínač AL,<0,1>
případ 1 { ;
getcolor ,
setcolor
přepočítat <@ rec_A>,
saxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
saxy <41, 2,@ ii,@ f_w4>
setcolor
případ 2 {
mov retr_cho, PRAVDA
zatímco {
mov retr_cho, FALSE
mkeys_to
mov AL, cs:key_AL
přepínač AL, {
případ 1 {
mov AH, cs:key_AH
přepínač AH,
případ 1;
Vkládání ,
případ 2;
Mazání ,
případ 3;
Třídění ,
případ 4;
případ 5;
Seznamka,
pouzdro 6;
menupull
mov DI, 3
koncový případ
případ 2 { ;
případ 3;
Zadání ,
případ 4;
mov hotovo, NEPRAVDA
movDI,0
koncový případ
konec}
koncový případ
endf
štítek1 db 'COMING',0
štítek2 db 'SPOTŘEBA',0
title1 db ' Název Množství
ukeys1 db 1Eh,0
ukeys2 db 1Fh,0
skeys1 db 'ENTER',0
nkeys1 db 'ENTER',0
skeys2 db 'INS',0
nkeys2 db 'NOVÉ',0
skeys3 db 'DEL',0
nkeys3 db 'DELETE',0
skeys4 db 'F5',0
nkeys4 db 'PRINT',0
skeys5 db 'F6',0
nkeys5 db 'OBJEDNÁVKA',0
skeys6 db 'F7',0
nkeys6 db 'HLEDAT',0
skeys7 db 'F8',0
nkeys7 db 'SUM',0
skeys8 db 'F10',0
nkeys8 db 'MENU',0
skeys9 db 'ESC',0
nkeys9 db 'QUIT',0
;--- Postup hlavy
func main
;
cli
mov SP, size_com+len_stack
sti
;
farrelease <*CS 00.00 size_com+len_stack+len_vars>
initcon
vydání <* size_com+len_stack,0>
initsys
initmouse
kurzor_vypnut
;
setcolor <<>>
drawbox
drawbox < 0, 2,79, 2,@ box_main>
mouse_on
setcolor
saxy <16, 0,@ label1,@ f_s>
saxy <56, 0,@ label2,@ f_s>
setcolor
sayxy <0, 1,@ titul1,@ f_s>
setcolor
řekněte <@ title1,@ f_s>
setcolor <<>>
;
barva
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
;
znovu otevřít <@ rec_A,@ soubor_A,len_A>
getmem , ;recbuffer
recempty <@ rec_A,@ _mb_empty>
;
barva
mov hotovo, PRAVDA
zatímco
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
endwh
;
freemem<*buf_A>
znovu zavřít <@ rec_A>
;
mkeys_of
;
mouse_off
kurzor_na
;
clrscr
zastavit <0>
endf
KONEC START