; 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
|