Systém maker vám umožňuje psát programy ve známé syntaxi jazyka na vysoké úrovni a činí texty programů transparentnějšími pro čtení a vnímání. Systém je určen pro překladače sestavovacích jazyků TASM-2.5 a MASM-5.0. Jedná se o strukturovaný jazyk na vysoké úrovni, který lze použít k psaní programů jakékoli velikosti a pro jakýkoli účel. Určeno pro programátora, který již má zkušenosti s programováním v assembleru.
* Soubory .ASM Tyto soubory obsahují příklady programů napsaných v systému maker.
Chcete-li nainstalovat do systému, zkopírujte soubor MSYSTEM.MAC a zbytek souborů - podle vašeho uvážení. Pro úspěšné programování v systému maker se doporučuje podrobně se seznámit s příručkou a samotným systémem maker obsaženým v souboru MSYSTEM.MAC.
Pamatujte, že assembler nerozumí chybám a vše závisí pouze na vás.
tasm25.zip
- 175 kB.
Zde je například kód jednoduchého databázového programu, který zohledňuje příjmy a výdaje peněz
; MB.ASM
; D. L. Konyukhov
.MODEL MALÝ
zahrnout msystem.mac
zahrnout sys.mac
zahrnout conio.mac
zahrnout mouse.mac
zahrnout mem.mac
zahrnout kbd.mac
zahrnout math.mac
zahrnout kurzor.m
zahrnout window.m
zahrnout color.m
zahrnout rec.m
zahrnout dbedit.m
zahrnout say.m
zahrnout read.m
zahrnout key.m
zahrnout mkeys.m
zahrnout mb.m
size_com = 20000 + 256
len_stack = 20000
len_vars = 20000
.KÓD
ZAČNĚTE ZAČÍT, 100h, _hlavní, {
func mb_empty ,, \u0026 lt; SI \u0026 gt;
mov SI, buf_A
memfill \u0026 lt; 32, @ DEBET_NAME, LEN_NAME \u0026 gt;
memfill \u0026 lt; 0, @ DEBET_QUAN, LEN_QUAN \u0026 gt;
memfill \u0026 lt; 32, @ KREDIT_NAME, LEN_NAME \u0026 gt;
memfill \u0026 lt; 0, @ KREDIT_QUAN, LEN_QUAN \u0026 gt;
endf
func _pic, \u0026 lt; byte X, byte Y \u0026 gt ;, \u0026 lt; SI \u0026 gt ;, 1, veřejné
old_color EQU [BP] -1
getcolor, \u0026 lt; old_color \u0026 gt;
mov SI, buf_A
setcolor \u0026 lt; DebAttr \u0026 gt;
sayxy \u0026 lt; X, Y, @ mezera, @ f_s \u0026 gt;
setcolor \u0026 lt; old_color \u0026 gt;
řekněte \u0026 lt; @ DEBET_NAME, @ f_name \u0026 gt;
setcolor \u0026 lt; DebAttr \u0026 gt;
řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
setcolor \u0026 lt; old_color \u0026 gt;
řekněte \u0026 lt; @ DEBET_QUAN, @ f_quan \u0026 gt;
setcolor \u0026 lt; DebAttr \u0026 gt;
řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
setcolor \u0026 lt; KreAttr \u0026 gt;
řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
setcolor \u0026 lt; old_color \u0026 gt;
řekněte \u0026 lt; @ KREDIT_NAME, @ f_name \u0026 gt;
setcolor \u0026 lt; KreAttr \u0026 gt;
řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
setcolor \u0026 lt; old_color \u0026 gt;
řekněte \u0026 lt; @ KREDIT_QUAN, @ f_quan \u0026 gt;
setcolor \u0026 lt; KreAttr \u0026 gt;
řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
setcolor \u0026 lt; old_color \u0026 gt;
endf
func _fuser, \u0026 lt; byte mode, word RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt ;, 1, public
old_color EQU [BP] -1
mov DI, 1
mov AL, cs: režim
přepněte AL, <0,1>
případ 1 {; kreslit
getcolor, \u0026 lt; old_color \u0026 gt;
setcolor \u0026 lt; LblAttr \u0026 gt;
reccount \u0026 lt; @ rec_A \u0026 gt ;, \u0026 lt; ii \u0026 gt;
sayxy <35, 2, @ ii, @ f_w4 \u0026 gt;
recrecno \u0026 lt; @ rec_A \u0026 gt ;, \u0026 lt; ii \u0026 gt;
sayxy <41, 2, @ ii, @ f_w4 \u0026 gt;
setcolor \u0026 lt; old_color \u0026 gt;
případ 2 {
mov retr_cho, PRAVDA
while \u0026 lt; retr_cho e PRAVDA \u0026 gt; {
mov retr_cho, FALSE
mkeys_to
mov AL, cs: key_AL
přepnout AL, \u0026 lt; NULLKEY, SPACEKEY, CRKEY, ESCKEY \u0026 gt; {
případ 1 {
mov AH, cs: key_AH
přepnout AH, \u0026 lt; INSKEY, DELRKEY, F6KEY, F7KEY, F8KEY, F10KEY \u0026 gt;
případ 1; vložit
Vkládání, \u0026 lt; DI \u0026 gt;
případ 2; smazat
Mazání, \u0026 lt; DI \u0026 gt;
případ 3; třídit
Třídění, \u0026 lt; DI \u0026 gt;
případ 4; najít
případ 5; datum
Chodit s někým, \u0026 lt; DI \u0026 gt;
případ 6; nabídka
menupull
mov DI, 3
koncovka
případ 2 {; označit
případ 3; vstup
Zadávání \u0026 lt; RecCur \u0026 gt; \u0026 lt; DI \u0026 gt;
případ 4; ukončit
mov hotovo, NEPRAVDA
mov DI, 0
koncovka
endwh}
koncovka
endf
label1 db 'PARISH', 0
label2 db 'FLOW', 0
title1 db 'Množství titulu', 0
ukeys1 db 1Eh, 0
ukeys2 db 1Fh, 0
skeys1 db 'ENTER', 0
nkeys1 db 'ENTER', 0
skeys2 db 'INS', 0
nkeys2 db 'NOVINKA', 0
skeys3 db 'DEL', 0
nkeys3 db 'DELETE', 0
skeys4 db 'F5', 0
nkeys4 db 'PRINT', 0
skeys5 db 'F6', 0
nkeys5 db 'OBJEDNAT', 0
skeys6 db 'F7', 0
nkeys6 db 'SEARCH', 0
skeys7 db 'F8', 0
nkeys7 db 'SUM', 0
skeys8 db 'F10', 0
nkeys8 db 'MENU', 0
skeys9 db 'ESC', 0
nkeys9 db 'EXIT', 0
; --- Postup hlavy
func hlavní
; Stack
cli
mov SP, size_com + len_stack
sti
; Otevřu systém
farrelease \u0026 lt; * CS 00,00 size_com + len_stack + len_vars \u0026 gt;
initcon
uvolnit \u0026 lt; * size_com + len_stack, 0 \u0026 gt;
initsys
initmouse
cursor_off
; Nakreslete hlavní rám
setcolor \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
drawbox \u0026 lt; cs: ScrnMinX, cs: ScrnMinY, cs: ScrnMaxX, cs: ScrnMaxY, @ box_main \u0026 gt;
táhlo \u0026 lt; 0, 2,79, 2, @ box_main \u0026 gt;
mouse_on
setcolor \u0026 lt; LblAttr \u0026 gt;
sayxy <16, 0, @ label1, @ f_s \u0026 gt;
sayxy <56, 0, @ label2, @ f_s \u0026 gt;
setcolor \u0026 lt; DebAttr \u0026 gt;
sayxy \u0026 lt; 0, 1, @ title1, @ f_s \u0026 gt;
setcolor \u0026 lt; KreAttr \u0026 gt;
řekněte \u0026 lt; @ title1, @ f_s \u0026 gt;
setcolor \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
; Menu-line
barva \u0026 lt; MenuAttr \u0026 gt;
mkeys_on \u0026 lt; TRUE \u0026 gt;
mkeys_fr <79, 0, PGUPKEY * 100 h, @ ukeys1, @ snull \u0026 gt;
mkeys_fr <79,24, PGDNKEY * 100 h, @ ukeys2, @ snull \u0026 gt;
mkeys_fr \u0026 lt; 4.24, CRKEY, @ skeys1, @ nkeys1 \u0026 gt;
mkeys_fr <14,24, INSKEY * 100 h, @ skeys2, @ nkeys2 \u0026 gt;
mkeys_fr <22,24, DELRKEY * 100h, @ skeys3, @ nkeys3 \u0026 gt;
mkeys_fr <30,24, F5KEY * 100 h, @ skeys4, @ nkeys4 \u0026 gt;
mkeys_fr <37,24, F6KEY * 100 h, @ skeys5, @ nkeys5 \u0026 gt;
mkeys_fr <44,24, F7KEY * 100 h, @ skeys6, @ nkeys6 \u0026 gt;
mkeys_fr <51,24, F8KEY * 100 h, @ skeys7, @ nkeys7 \u0026 gt;
mkeys_fr <58,24, F10KEY * 100 h, @ skeys8, @ nkeys8 \u0026 gt;
mkeys_fr <65,24, ESCKEY, @ skeys9, @ nkeys9 \u0026 gt;
mkeys_on \u0026 lt; FALSE \u0026 gt;
; Otevření souboru
znovuotevřít \u0026 lt; @ rec_A, @ file_A, len_A \u0026 gt;
getmem \u0026 lt; len_A \u0026 gt ;, \u0026 lt; buf_A \u0026 gt; ; recbuffer
odměna \u0026 lt; @ rec_A, @ _mb_empty \u0026 gt;
; Práce se souborem
barva \u0026 lt; MainAttr \u0026 gt;
mov hotovo, PRAVDA
zatímco \u0026 lt; hotovo e PRAVDA \u0026 gt;
dbedit \u0026 lt; @ rec_A, 0, 3,79,23, @ cs: __ pic, @ cs: __ fixační jednotka \u0026 gt;
endwh
; Zavřete soubor
freemem \u0026 lt; * buf_A \u0026 gt;
recclose \u0026 lt; @ rec_A \u0026 gt;
; Zavírám další
mkeys_of
; Zavírám systém
mouse_off
cursor_on
; Ukončení programu
clrscr
zastavit \u0026 lt; 0 \u0026 gt;
endf
KONEC START