Es decir, presenta en
pantalla un trozo de la secuencia de programa, dentro de una ventana, con una
barra de desplazamiento a la derecha, que permitirá subir y bajar sobre el
listado mediante el ratón, al estilo de windows.
Esta función refresca solo la
ventana. La gestión de la barra de desplazamiento y la posición inicial de
listado la realizará el programa principal, en su gestión de pantallas y menús.
SECUENCIA.ASM
; Copyright (C) 2013 José Ángel Moneo Fernández ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; You should have received a copy of the GNU General Public License ; along with this program. If not, see <http://www.gnu.org/licenses/
include main.mac
include window.mac
include 48iocent.mac
include mouse.mac
include stdio.mac
include 8051.mac
.model compact,pascal
public secuencia
.data
extrn des_base:word
extrn vez_sec:byte
public mostrada
bytes db 1,2,3,2,3,3,2,2,3,3,2,2,2,3,0,0
nada db 0
dire dw 0,0
y db 0
mostrada dw 0
cuenta dw 0
borra db 22 dup (" "),0
.code
extrn interpreta:near
extrn pres_inst:near
extrn Dma_on:near
extrn Dma_off:near
extrn lee:near
secuencia proc near
call Dma_on
cmp vez_sec,0
jz pr
jmp npr
pr:
window 5,0,20,23,nada
gotoxy 24,5
putchar ' '
gotoxy 24,20
putchar ' '
gotoxy 24,6
putchar ' '
gotoxy 24,19
putchar ' '
mov cl,7
barra:
gotoxy 24,cl
putchar '░'
inc cl
cmp cl,19
jnz barra
npr:
mov y,6
mov dx,des_base
mov cuenta,0
otro:
call interpreta
dec dx
mov bx,ax
mov al,[bx]
xor bx,bx
mov bl,al
add bx,offset bytes
mov ax,cuenta
cmp ax,mostrada
jb n_prn
mov dire,dx
gotoxy 1,y
printf borra
gotoxy 1,y
printf dire,@h
gotoxy 6,y
call pres_inst
linea:
cmp y,19
jz fin
inc y
inc cuenta
jmp otro
n_prn:
mov al,[bx]
xor ah,ah
add dx,ax
inc cuenta
jmp otro
fin:
call Dma_off
ret
secuencia endp
end secuencia
No hay comentarios:
Publicar un comentario
Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.