; 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



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