Sistema de macros en lenguaje ensamblador
msystem.zip
411 KB.
sistema de macros
Breve descripción de los principales archivos del archivo.
El macrosistema en sí:
MSYSTEM.MAC
Este archivo contiene el sistema de macros real.
MMACROS.MAC
Este archivo contiene definiciones de macros útiles adicionales.
MBIOS.MAC
Este archivo contiene definiciones de macros para el BIOS de IBM-PC.
MDOS.MAC
Este archivo contiene definiciones de macros para IBM-PC DOS.
CONIO.MAC
DIR.MAC
ERROR.MAC
FLOTADOR.MAC
IO.MAC
KBD.MAC
MATEMÁTICAS.MAC
MBIOS.MAC
MEM.MAC
RATÓN.MAC
STOV.MAC
CADENA.MAC
SYS.MAC
El macrosistema en sí:
ELEGIR.M
RELOJ.M
CODIFICADOR.M
COLOR.M
CURSOR.M
DBEDIT.M
INIT.M
LLAVE.M
MENÚ.M
MKEYS.M
LEER.M
REC.M
DECIR.M
DESPLAZAMIENTO.M
ORDENAR.M
SONIDO.M
VENTANA.M
DOCUMENTACIÓN:
MSYSTEM.DOC
Este es un archivo de documentación para el sistema de macros.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
LEER.DOC
TÍTULO.DOC
*Archivos .ASM Estos archivos contienen
Para instalación en el sistema.
Recuerde que los errores del ensamblador
Cualquiera que sea su enfoque -
El ensamblador se puede descargar aquí
tasm25.zip
- 175 KB.
Por ejemplo, aquí hay un código simple.
;
;
.MODELO PEQUEÑO
incluir msystem.mac
incluir sys.mac
incluir conio.mac
incluir mouse.mac
incluir mem.mac
incluir kbd.mac
incluir math.mac
incluir cursor.m
incluir ventana.m
incluir color.m
incluir rec.m
incluir dbedit.m
incluir decir.m
incluir lectura.m
incluir clave.m
incluir mkeys.m
incluir mb.m
tamaño_com = 20000+256
len_stack= 20000
len_vars = 20000
.CÓDIGO
COMENZAR INICIO,100h,_main,{
función mb_empty,,
mov SI, buf_A
memfill <32,@ DEBET_NAME,LEN_NAME>
memfill < 0,@ DEBET_QUAN,LEN_QUAN>
relleno de memoria <32,@ KREDIT_NAME,LEN_NAME>
memfill < 0,@ KREDIT_QUAN,LEN_QUAN>
fin
func _pic,,,1,público
color_antiguo EQU [BP]-1
obtener color,
mov SI, buf_A
setcolor
sayxy
setcolor
diga <@DEBET_NAME,@f_name>
setcolor
diga <@ espacio,@ f_s>
setcolor
diga <@ DEBET_QUAN,@ f_quan>
setcolor
diga <@ espacio,@ f_s>
establecercolor
diga <@ espacio,@ f_s>
setcolor
diga <@ KREDIT_NAME,@ f_name>
establecercolor
diga <@ espacio,@ f_s>
setcolor
diga <@ KREDIT_QUAN,@ f_quan>
establecercolor
diga <@ espacio,@ f_s>
setcolor
fin
func _fuser,,,1,público
color_antiguo EQU [BP]-1
movimiento DI, 1
mov AL, cs:modo
cambiar AL,<0,1>
caso 1 { ;
obtener color,
establecercolor
cuenta <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
caso 2 {
mov retr_cho, VERDADERO
mientras {
mov retr_cho, FALSO
mkeys_to
movAL, cs:key_AL
cambiar AL, {
caso 1 {
mov AH, cs: clave_AH
cambiar AH,
caso 1 ;
Insertando ,
caso 2;
Eliminando ,
caso 3;
Ordenando,
caso 4;
caso 5;
Citas,
caso 6;
tirar del menú
movimiento DI, 3
final
caso 2 {;
caso 3;
Ingresando ,
caso 4;
mov hecho, FALSO
movDI,0
final
final
final
endf
etiqueta1 db 'VIENDO',0
etiqueta2 db 'CONSUMO',0
título1 db ' Nombre Cantidad
ukeys1 db 1Eh,0
ukeys2 db 1Fh,0
skeys1 db 'ENTRAR',0
nkeys1 db 'ENTRAR',0
skeys2 db 'INS',0
nkeys2 db 'NUEVO',0
skeys3 db 'DEL',0
nkeys3 db 'ELIMINAR',0
skeys4 db 'F5',0
nkeys4 db 'IMPRIMIR',0
teclas5 db 'F6',0
nkeys5 db 'ORDEN',0
skeys6 db 'F7',0
nkeys6 db 'BUSCAR',0
skeys7 db 'F8',0
nkeys7 db 'SUM',0
skeys8 db 'F10',0
nkeys8 db 'MENÚ',0
skeys9db 'ESC',0
nkeys9 db 'SALIR',0
;--- Procedimiento principal
función principal
;
cli
mov SP, tamaño_com+len_stack
sti
;
lanzamiento lejano <*CS 00.00 size_com+len_stack+len_vars>
inicio
lanzamiento <* size_com+len_stack,0>
initsys
ratón inicial
cursor_off
;
setcolor <<>>
cuadro de dibujo
caja de dibujo < 0, 2,79, 2, @ box_main>
mouse_on
establecercolor
sayxy <16, 0,@ etiqueta1,@ f_s>
sayxy <56, 0,@ etiqueta2,@ f_s>
setcolor
sayxy <0, 1,@ título1,@ f_s>
establecercolor
diga <@ título1,@ f_s>
setcolor <<>>
;
color
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
;
volver a abrir <@ rec_A,@ archivo_A,len_A>
getmem , ;recbuffer
recempty <@ rec_A,@ _mb_empty>
;
color
mov hecho, VERDADERO
mientras
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
final
;
freemem<*buf_A>
volver a cerrar <@ rec_A>
;
mkeys_of
;
mouse_off
cursor_on
;
clrscr
detener <0>
fin
FIN INICIO