From f759db4d2c9f1fe582f5af5ebc8eec512d7d4189 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Tue, 12 Aug 2014 08:18:58 +0100 Subject: [PATCH] zbr --- scroller2/{clear.asm => limpa.asm} | 2 +- scroller2/main.asm | 38 ++++++++++++++---------------- 2 files changed, 19 insertions(+), 21 deletions(-) rename scroller2/{clear.asm => limpa.asm} (99%) diff --git a/scroller2/clear.asm b/scroller2/limpa.asm similarity index 99% rename from scroller2/clear.asm rename to scroller2/limpa.asm index e5187fc..8eb9136 100644 --- a/scroller2/clear.asm +++ b/scroller2/limpa.asm @@ -31,7 +31,7 @@ screen_attribute equ $47 ; Valor de 0 a 7 border_color equ $0 -clear_screen +limpa_ecra ld a, screen_attribute ld (attr_p), a ; Variavel de sistema que permite definir ; o ink, paper, brightness e flash diff --git a/scroller2/main.asm b/scroller2/main.asm index 6459476..2985e60 100644 --- a/scroller2/main.asm +++ b/scroller2/main.asm @@ -1,8 +1,8 @@ org 30000 -tv_flag equ $5c3c ; Endereço que contem flags da tv -last_k equ $5c08 ; Contem a ultima tecla pressionada -LINHA10 equ $4840 +tv_flag equ $5c3c ; Variavel das flags da tv +last_k equ $5c08 ; Variavel que contem a ultima tecla usada +LINHA10 equ $4840 ; Endereço da linha 10 na Memoria Video o_barbas db 22,9,0, 16,6, "o_barbas disse:", 255 scroll_udg db $8 ; Numero de pixeis já scrollados no UDG#1 @@ -11,21 +11,19 @@ scroll_udg db $8 ; Numero de pixeis já scrollados no UDG#1 start xor a ; O mesmo que LD a, 0 - ld (tv_flag), a ; Directs rst 10h output to main screen. - push bc ; Parece que é algum standard guardar o BC - ; na stack, e tirar no fim do programa. + ld (tv_flag), a ; Faz com que o rst $10 envie output pra tv + push bc ; Guarda BC na stack - call clear_screen ; Limpa o ecrã + call limpa_ecra ; Limpa o ecrã ld hl, o_barbas ; Le para HL o endereço da string a printar -printa_ate_255 +printa_string ld a,(hl) ; Le para A o valor que esta no endereço em HL cp $ff ; Se for 255... jr z, main_loop ; então já se imprimiu tudo e é para sair rst $10 - inc hl ; Incrementa o valor de HL - ; Passa a ter o endereço do proximo caracater da str - jr printa_ate_255 ; Volta ao inicio da rotina + inc hl ; Incrementa a posição na string + jr printa_string ; Volta ao inicio da rotina main_loop ld a, $0 @@ -33,32 +31,32 @@ main_loop ld a, (scroll_udg) ; Le o numero de pixeis já scrollados no UDG#1 cp $8 ; São 8? - jr nz, main_loop_scroll ; Não.. + jr nz, main_loop_scroll ; Não? salta call obtem_proxima_letra ; Sim, manda meter uma nova letra em UDG#1 ld a, 0 - ld (scroll_udg), a ; 0 pixeis ainda scrollados no novo UDG#1 + ld (scroll_udg), a ; Reseta o numero de pixeis scrollados no UDG#1 main_loop_scroll ld hl, LINHA10 call scroll_esquerda ; Scrolla a linha 10 - - ld a, (scroll_udg) ; Incrementa o numero de pixeis já scrollados - inc a ; no UDG#1 + + ld a, (scroll_udg) + inc a ; Incrementa o numero de pixeis já scrollados ld (scroll_udg), a ld a, $1 call delay ; Chama a rotina de delay(1) ld a, (last_k) ; Se o valor da ultima tecla pressionada ainda - cp $0 ; for 0, é porque ainda não se pressionou nenhuma - jr Z, main_loop ; tecla, por isso... repete + cp $0 ; for 0, é porque ainda não se pressionou nenhuma, + jr Z, main_loop ; por isso... repete exit - pop bc ; Tira o BC da Stack + pop bc ; Tira o BC da stack ret ; Sai para o BASIC INCLUDE "delay.asm" -INCLUDE "clear.asm" +INCLUDE "limpa.asm" INCLUDE "texto.asm" INCLUDE "scroll.asm"