Vistas de página en total

sábado, 1 de febrero de 2014

EMULADOR 8051 (7/12) (SECUENCIA)

   Esta función realiza la misma acción que la anterior, pero sobre pantalla.
   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.