Sistema macro em linguagem Assembly
msystem.zip
411 KB.
Sistema macro
Breve descrição dos principais arquivos do arquivo.
O próprio macrossistema:
MSYSTEM.MAC
Este arquivo contém o sistema macro real.
MMACROS.MAC
Este arquivo contém definições de macro úteis adicionais.
MBIOS.MAC
Este arquivo contém definições de macro para o BIOS do IBM-PC.
MDOS.MAC
Este arquivo contém definições de macro para IBM-PC DOS.
CONIO.MAC
DIR.MAC
ERRO.MAC
FLOAT.MAC
IO.MAC
KBD.MAC
MATEMÁTICA.MAC
MBIOS.MAC
MEM.MAC
MOUSE.MAC
FOGÃO.MAC
STRING.MAC
SISTEMA MAC
O próprio macrossistema:
ESCOLHA.M
RELÓGIO.M
CODER.M
COR.M
CURSOR.M
DBEDIT.M
INIT.M
CHAVE.M
MENU.M
MKEYS.M
LEIA.M
REC.M
DIGA.M
ROLAR.M
CLASSIFICAR.M
SOM.M
JANELA.M
DOCUMENTAÇÃO:
MSYSTEM.DOC
Este é um arquivo de documentação para o sistema macro.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
LEIA.DOC
TÍTULO.DOC
Arquivos *.ASM Esses arquivos contêm
Para instalação no sistema
Lembre-se de que os erros do assembler
Seja qual for a sua abordagem -
O próprio Assembler pode ser baixado aqui
tasm25.zip
- 175KB.
Por exemplo, aqui está um código simples
;
;
.MODELO PEQUENO
incluir msystem.mac
incluir sys.mac
inclui conio.mac
incluir mouse.mac
incluir mem.mac
incluir kbd.mac
incluir math.mac
incluir cursor.m
incluir janela.m
incluir cor.m
incluir rec.m
inclui dbedit.m
inclua say.m
incluir read.m
incluir chave.m
incluir mkeys.m
incluir mb.m
tamanho_com = 20.000+256
len_stack = 20.000
len_vars = 20.000
.CÓDIGO
COMEÇAR INÍCIO,100h,_main,{
função mb_empty,,
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>
fim
func _pic,,,1,público
cor_antiga EQU [BP]-1
getcolor ,
mov SI, buf_A
setcolor
sayxy
setcolor
diga <@DEBET_NAME,@f_name>
setcolor
diga <@espaço,@f_s>
setcolor
diga <@DEBET_QUAN,@f_quan>
setcolor
diga <@espaço,@f_s>
setcolor
diga <@espaço,@f_s>
setcolor
diga <@KREDIT_NAME,@f_name>
setcolor
diga <@espaço,@f_s>
setcolor
diga <@KREDIT_QUAN,@f_quan>
setcolor
diga <@espaço,@f_s>
setcolor
fim
func _fuser,,,1,público
cor_antiga EQU [BP]-1
movimento DI, 1
mov AL, cs:modo
mudar AL,<0,1>
caso 1 { ;
getcolor ,
setcolor
recontagem <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
caso 2 {
mov retr_cho, VERDADEIRO
enquanto {
mov retr_cho, FALSO
mkeys_to
mov AL, cs:key_AL
mudar AL, {
caso 1 {
mov AH, cs:key_AH
mudar AH,
caso 1 ;
Inserindo ,
caso 2;
Excluindo ,
caso 3;
Classificando,
caso 4;
caso 5;
Namoro,
caso 6;
puxar menu
mov DI, 3
final
caso 2 {;
caso 3;
Inserindo ,
caso 4;
movimento concluído, FALSO
movDI,0
final
endwh}
final
endf
label1 db 'COMING',0
label2 db 'CONSUMO',0
title1 db 'Nome Quantidade
ukeys1 banco de dados 1Eh,0
ukeys2 db 1Fh,0
skeys1 db 'ENTER',0
nkeys1 banco de dados 'ENTER',0
skeys2 db 'INS',0
nkeys2 db 'NOVO',0
skeys3 db 'DEL',0
nkeys3 banco de dados 'DELETE',0
teclas4 db 'F5',0
nkeys4 db 'PRINT',0
teclas5 db 'F6',0
nkeys5 db 'ORDEM',0
teclas6 db 'F7',0
nkeys6 db 'PESQUISA',0
teclas7 db 'F8',0
nkeys7 banco de dados 'SUM',0
teclas8 db 'F10',0
nkeys8 db 'MENU',0
skeys9 db 'ESC',0
nkeys9 db 'SAIR',0
;--- Procedimento principal
função principal
;
cli
mov SP, size_com+len_stack
ainda
;
farrelease <*CS 00.00 size_com+len_stack+len_vars>
ícone de inicialização
lançamento <* size_com+len_stack,0>
initsys
initmouse
cursor_desligado
;
setcolor <<>>
caixa de desenho
caixa de desenho < 0, 2,79, 2,@ box_main>
mouse_on
setcolor
sayxy <16, 0,@rótulo1,@f_s>
sayxy <56, 0,@rótulo2,@f_s>
setcolor
sayxy <0, 1,@título1,@f_s>
setcolor
diga <@título1,@f_s>
setcolor <<>>
;
cor
mkeys_on
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
;
reabrir <@ rec_A,@ arquivo_A,len_A>
getmem , ;recbuffer
recempty <@ rec_A,@ _mb_empty>
;
cor
movimento concluído, VERDADEIRO
while
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
fim
;
memória livre<*buf_A>
fechar novamente <@ rec_A>
;
mkeys_of
;
mouse_off
cursor_on
;
clrscr
parar <0>
fim
FIM INÍCIO