; MB.ASM
; Sposi D. L.

. MODELLO PICCOLO

includa msystem.mac
includa sys.mac
includa conio.mac
includa mouse.mac
includa mem.mac
includa kbd.mac
includa math.mac
includa cursor.m
includa window.m
includa color.m
includa rec.m
includa dbedit.m
includa say.m
includa read.m
includa key.m
includa mkeys.m

includa mb.m

size_com = 20000+256
len_stack = 20000
len_vars = 20000

. CODICE
COMINCI L'INIZIO, 100esimo, _main, {

func mb_empty, <SI>
SI di mov, 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, <byte X, byte Y>, <SI>, 1, pubblico
old_color EQU [BP]-1
getcolor, <old_color>
SI di mov, buf_A
setcolor <DebAttr>
sayxy <X,Y,@ space,@ f_s>
setcolor <old_color>
dica <@ DEBET_NAME,@ f_name>
setcolor <DebAttr>
dica <@ space,@ f_s>
setcolor <old_color>
dica <@ DEBET_QUAN,@ f_quan>
setcolor <DebAttr>
dica <@ space,@ f_s>
setcolor <KreAttr>
dica <@ space,@ f_s>
setcolor <old_color>
dica <@ KREDIT_NAME,@ f_name>
setcolor <KreAttr>
dica <@ space,@ f_s>
setcolor <old_color>
dica <@ KREDIT_QUAN,@ f_quan>
setcolor <KreAttr>
dica <@ space,@ f_s>
setcolor <old_color>
endf

func _fuser, <modo di byte, parola RecCur>, <DI>, 1, pubblico
old_color EQU [BP]-1
mov DI, 1
mov AL, cs:mode
cambi AL, <0,1>
caso 1 {; disegnare
getcolor, <old_color>
setcolor <LblAttr>
riconti <@ rec_A>, <ii>
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>, <ii>
sayxy <41, 2,@ ii,@ f_w4>
setcolor <old_color>
caso 2 {
mov retr_cho, VERO
mentre <retr_cho e VERO> {
mov retr_cho, FALSO
mkeys_to
mov AL, cs:key_AL
cambi AL, <NULLKEY, SPACEKEY, CRKEY, ESCKEY> {
caso 1 {
mov AH, cs:key_AH
interruttore AH,<INSKEY,DELRKEY,F6KEY,F7KEY,F8KEY,F10KEY>
caso 1; inserto
Inserzione, <DI>
caso 2; cancellare
Cancellazione, <DI>
caso 3; specie
Classificazione, <DI>
caso 4; trovare
caso 5; data
Datazione, <DI>
caso 6; menù
menupull
mov DI, 3
endcase
caso 2 {; segno
caso 3; impiego
Inputing <RecCur>, <DI>
caso 4; uscita
mov fatto, FALSO
mov DI, 0
endcase
endwh}
endcase
endf <parola DI>

DECIBEL DI LABEL1 'PRIHOD', 0
DECIBEL DI LABEL2 'RASHOD', 0
Quantità di Nome' di decibel di title1', 0

decibel di ukeys1 1Eh, 0
decibel di ukeys2 1Fh, 0
il decibel di skeys1 'ENTRA', 0
DECIBEL DI NKEYS1 'VVEDI', 0
decibel di skeys2 'INS', 0
DECIBEL DI NKEYS2 'NOVYY', 0
decibel di skeys3 'DEL', 0
DECIBEL DI NKEYS3 'UDALI', 0
decibel di skeys4 'F5', 0
DECIBEL DI NKEYS4 'PECHAT', 0
decibel di skeys5 'F6', 0
DECIBEL DI NKEYS5 'PORYAD', 0
decibel di skeys6 'F7', 0
DECIBEL DI NKEYS6 'POISK', 0
decibel di skeys7 'F8', 0
DECIBEL DI NKEYS7 'SUMMA', 0
decibel di skeys8 'F10', 0
DECIBEL DI NKEYS8 'MENYU', 0
decibel di skeys9 'ESC', 0
DECIBEL DI NKEYS9 'VYYDI', 0

; procedura di Testa di---
func principale
; Pila
cli
mov SP, size_com+len_stack
sti
; Apro il sistema
farrelease <* CS di 00,00 size_com+len_stack+len_vars>
initcon
rilascio <* size_com+len_stack, 0>
initsys
initmouse
cursor_off
; Disegno lo sparo principale
setcolor <<<byte ptr MainAttr>>>
drawbox <cs:ScrnMinX,cs:ScrnMinY,cs:ScrnMaxX,cs:ScrnMaxY,@ box_main>
drawbox <0, 2,79, 2,@ box_main>
mouse_on
setcolor <LblAttr>
sayxy <16, 0,@ label1,@ f_s>
sayxy <56, 0,@ label2,@ f_s>
setcolor <DebAttr>
sayxy <0, 1,@ title1,@ f_s>
setcolor <KreAttr>
dica <@ title1,@ f_s>
setcolor <<<byte ptr MainAttr>>>
; Menyu-stroka
colore <MenuAttr>
mkeys_on <VERO>
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 <FALSO>
; Apro il file
recopen <@ rec_A,@ file_A, len_A>
getmem <len_A>, <buf_A>; recbuffer
recempty <@ rec_A,@ _mb_empty>
; Lavoro con il file
colore <MainAttr>
mov fatto, VERO
mentre <fatto e VERO>
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs: __ fuser>
endwh
; Chiudo il file
freemem <* buf_A>
recclose <@ rec_A>
; Chiudo l'altro
mkeys_of
; Chiudo il sistema
mouse_off
cursor_on
; Un'uscita dal programma
clrscr
sosta <0>
endf
INIZIO DI FINE



Яндекс цитирования