; MB.ASM ; Noivos D. L.
. MODELO PEQUENO
inclua msystem.mac inclua sys.mac inclua conio.mac inclua mouse.mac inclua mem.mac inclua kbd.mac inclua math.mac inclua cursor.m inclua window.m inclua color.m inclua rec.m inclua dbedit.m inclua say.m inclua read.m inclua key.m inclua mkeys.m
inclua mb.m
size_com = 20000+256 len_stack = 20000 len_vars = 20000
. CÓDIGO COMECE A PARTIDA, 100a, _main, {
func mb_empty, <SI> 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, <byte X, byte Y>, <SI>, 1, público old_color EQU [BP]-1 getcolor, <old_color> mov SI, buf_A setcolor <DebAttr> sayxy <X,Y,@ space,@ f_s> setcolor <old_color> diga <@ DEBET_NAME,@ f_name> setcolor <DebAttr> diga <@ space,@ f_s> setcolor <old_color> diga <@ DEBET_QUAN,@ f_quan> setcolor <DebAttr> diga <@ space,@ f_s> setcolor <KreAttr> diga <@ space,@ f_s> setcolor <old_color> diga <@ KREDIT_NAME,@ f_name> setcolor <KreAttr> diga <@ space,@ f_s> setcolor <old_color> diga <@ KREDIT_QUAN,@ f_quan> setcolor <KreAttr> diga <@ space,@ f_s> setcolor <old_color> endf
func _fuser, <modo de byte, palavra RecCur>, <DI>, 1, público old_color EQU [BP]-1 mov DI, 1 mov AL, cs:mode troque AL, <0,1> caso 1 {; desenhar getcolor, <old_color> setcolor <LblAttr> reconte <@ 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, VERDADEIRO enquanto <retr_cho e VERDADEIRO> { mov retr_cho, FALSO mkeys_to mov AL, cs:key_AL troque AL, <NULLKEY, SPACEKEY, CRKEY, ESCKEY> { caso 1 { mov AI, cs:key_AH comutador AH,<INSKEY,DELRKEY,F6KEY,F7KEY,F8KEY,F10KEY> caso 1; inserção Inserção, <DI> caso 2; eliminar Eliminação, <DI> caso 3; tipo Classificação, <DI> caso 4; encontrar caso 5; data Datação, <DI> caso 6; cardápio menupull mov DI, 3 endcase caso 2 {; marca caso 3; entrada Inputing <RecCur>, <DI> caso 4; saída mov feito, FALSO mov DI, 0 endcase endwh} endcase endf <palavra DI>
LABEL1 DB 'PRIHOD', 0 LABEL2 DB 'RASHOD', 0 title1 db' Quantidade de Nome', 0
ukeys1 db 1Eh, 0 ukeys2 db 1Fh, 0 skeys1 db 'ENTRA', 0 NKEYS1 DB 'VVEDI', 0 'Serviço Internacional de Notícias' skeys2 db, 0 NKEYS2 DB 'NOVYY', 0 skeys3 db 'DEL', 0 NKEYS3 DB 'UDALI', 0 skeys4 db 'F5', 0 NKEYS4 DB 'PECHAT', 0 skeys5 db 'F6', 0 NKEYS5 DB 'PORYAD', 0 skeys6 db 'F7', 0 NKEYS6 DB 'POISK', 0 skeys7 db 'F8', 0 NKEYS7 DB 'SUMMA', 0 skeys8 db 'F10', 0 NKEYS8 DB 'MENYU', 0 skeys9 db 'ESC', 0 NKEYS9 DB 'VYYDI', 0
; procedimento de Cabeça de--- func principal ; Pilha cli mov SP, size_com+len_stack sti ; Abro o sistema farrelease <* CS de 00,00 size_com+len_stack+len_vars> initcon lançamento <* size_com+len_stack, 0> initsys initmouse cursor_off ; Desenho o tiro principal 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> diga <@ title1,@ f_s> setcolor <<<byte ptr MainAttr>>> ; Menyu-stroka cor <MenuAttr> mkeys_on <que É VERDADE> 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> ; Abro o arquivo recopen <@ rec_A,@ file_A, len_A> getmem <len_A>, <buf_A>; recbuffer recempty <@ rec_A,@ _mb_empty> ; Trabalho com o arquivo cor <MainAttr> mov feito, que É VERDADE enquanto <feito e VERDADEIRO> dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs: __ fuser> endwh ; Fecho o arquivo homens livres <* buf_A> recclose <@ rec_A> ; Fecho o outro mkeys_of ; Fecho o sistema mouse_off cursor_on ; Uma saída do programa clrscr parada <0> endf PARTIDA DE FIM
|