From 6d9235bced26b120ee4bf8d414d9b1acf87a65e8 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Tue, 12 Aug 2014 08:00:19 +0100 Subject: [PATCH] Mudar nomes de labels, ficheiros e mais documentacao --- scroller2/main.asm | 6 ++-- scroller2/{scroll_esquerda.asm => scroll.asm} | 6 ++-- scroller2/{scroll_text.asm => texto.asm} | 31 ++++++++++--------- 3 files changed, 22 insertions(+), 21 deletions(-) rename scroller2/{scroll_esquerda.asm => scroll.asm} (97%) rename scroller2/{scroll_text.asm => texto.asm} (83%) diff --git a/scroller2/main.asm b/scroller2/main.asm index 0ade1b9..a100618 100644 --- a/scroller2/main.asm +++ b/scroller2/main.asm @@ -40,7 +40,7 @@ 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.. - call scroll_text ; Sim, manda meter uma nova letra em UDG#1 + 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 @@ -65,7 +65,7 @@ exit INCLUDE "delay.asm" INCLUDE "clear.asm" -INCLUDE "scroll_text.asm" -INCLUDE "scroll_esquerda.asm" +INCLUDE "texto.asm" +INCLUDE "scroll.asm" end start diff --git a/scroller2/scroll_esquerda.asm b/scroller2/scroll.asm similarity index 97% rename from scroller2/scroll_esquerda.asm rename to scroller2/scroll.asm index 0eb0931..2dabd40 100644 --- a/scroller2/scroll_esquerda.asm +++ b/scroller2/scroll.asm @@ -3,7 +3,7 @@ linha_actual db 0 ; Linha actual ultima_addr db 0,0 ; Endereço da coluna mais à direita da linha actual ; O endereço inicial tem de vir em HL -scroll_esquerda +scroll ld c, $8 ; Numero de vezes que a rotina vai correr ; 8 é o numero de linhas de pixeis a scrollar @@ -11,7 +11,7 @@ scroll_esquerda ld (linha_actual), a ; Começa na linha 0 ; Loop1 -scroll_esquerda_loop +scroll_loop ld (scroll_addr), hl ; Guarda o valor de HL (argumento da rotina) call scrolla_linha ; Scrolla uma linha ld hl, (scroll_addr) ; Le o valor de tmp1 para HL @@ -29,7 +29,7 @@ scroll_esquerda_loop ld (linha_actual), a dec c ; Decrementa o contador C - jr nz, scroll_esquerda_loop ; Se C != 0 corre novamente o Loop1 + jr nz, scroll_loop ; Se C != 0 corre novamente o Loop1 ret ; Scrolla a linha que estiver em scroll_addr diff --git a/scroller2/scroll_text.asm b/scroller2/texto.asm similarity index 83% rename from scroller2/scroll_text.asm rename to scroller2/texto.asm index 19e00da..ee7b484 100644 --- a/scroller2/scroll_text.asm +++ b/scroller2/texto.asm @@ -16,20 +16,20 @@ udg_start equ $ff58 ; User-defined characters, vai até $ffff posicao_addr db 0,0 ; Contem o endereço da posição actual na string reset_posicao db 1 ; Se estiver a 1 a posição é resetada a 0 -scroll_text +obtem_proxima_letra ld a, (reset_posicao) cp $1 ; Se não for para meter a posição a 0 salta - jr nz, sem_reset + jr nz, proxima_letra_sem_reset ; o reset_posicao está a 1, meter a posicao na string a 0 ld a, 0 ld (reset_posicao), a ; reset_posicao = 0 ld hl, text ; Endereço do primeiro chr - jr scroll_text_loop ; -sem_reset + jr proxima_letra_loop +proxima_letra_sem_reset ; Usa a posição guardada em posicao_addr ld hl, (posicao_addr) -scroll_text_loop +proxima_letra_loop ; Por exemplo, a primeira letra é um L. No ASCII do ; Spectrum o valor dela é $4C e com esse valor pretendo ; chegar a $3E60 que é onde está a font dela @@ -50,30 +50,31 @@ scroll_text_loop ld hl, font_start add hl, de ; $3C00 + $260 = $3E60 - call copia_para_udg ; Copia a letra para o UDG#1 + call proxima_letra_udg ; Copia a letra para o UDG#1 ; O argumento para a rotina é o valor em HL pop hl ; Tira a posição na string da stack inc hl ; Anda para a frente ld a, (hl) ; Le o proximo valor cp $0 ; Se for 0 estamos no fim da string - jr z, set_reset ; Manda fazer reset à posição - jr scroll_text_fim ; Senão continua -set_reset - ld a, $1 - ld (reset_posicao), a ; Manda meter a posicao a 0 da proxima vez -scroll_text_fim + jr z, proxima_letra_sem_reset ; Manda fazer reset à posição + jr proxima_letra_fim ; Senão continua +proxima_letra_sem_reset + ld a, $1 ; Manda meter a posicao a 0 na proxima + ld (reset_posicao), a ; iteração +proxima_letra_fim ld (posicao_addr), hl ; Guarda a posição ret -copia_para_udg +; copia a letra para o UDG#1 +proxima_letra_udg ; Está a contar que o endereço de origem esteja em HL ld b, $8 ; Copiar 8 bytes, cada letra são 8x8 ld de, udg_start ; Destino -copia_para_udg_loop +proxima_letra_udg_loop ld a, (hl) ; Le origem ld (de), a ; Copia para destino inc hl ; Incrementa ambos inc de - djnz copia_para_udg_loop ; b--, se b != 0 salta + djnz proxima_letra_udg_loop ; b--, se b != 0 salta ret