diff --git a/scroller2/main.asm b/scroller2/main.asm index ebd09b7..11f05f1 100644 --- a/scroller2/main.asm +++ b/scroller2/main.asm @@ -8,7 +8,9 @@ k_cur equ $5c5b ; Contem a posição do cursor - TODO: Usar isto ; $5d16 LINHA10 equ $4840 -aids db $0 + +mystr db 22,9,0, 16,6, "o_barbas disse:", 255 +aids db $8 start xor a ; O mesmo que LD a, 0 @@ -18,8 +20,17 @@ start ; na stack, e tirar no fim do programa. call clear_screen ; Limpa o ecrã + + ld hl, mystr ; Le para HL o endereço da string a printar +printa_ate_255 + ld a,(hl) ; Le para A o valor que esta no endereço em HL + cp $ff ; Se for 255... + jr z, mainloop ; então já se imprimiu tudo e é para sair + rst $10 ; Syscall para imprimir o no ecrã o que estiver em A + 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 - call scroll_text mainloop ld a, $0 ld (last_k), a ; Limpa o valor da ultima tecla pressionada diff --git a/scroller2/main.tap b/scroller2/main.tap index efa1b91..d26f293 100644 Binary files a/scroller2/main.tap and b/scroller2/main.tap differ diff --git a/scroller2/scroll_text.asm b/scroller2/scroll_text.asm index 12f458f..48fe1a9 100644 --- a/scroller2/scroll_text.asm +++ b/scroller2/scroll_text.asm @@ -1,4 +1,4 @@ -text db "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin commodo metus sed orci fermentum, id mattis quam suscipit OI VIVA O BENFICA!!", 0 +text db "\"SEM QUERER MAGOAR O MEU BENFICA SO SABE GANHAR VIVA O BENFICA\" \"DA TRAFARIA ATE AO JAMOR O MEU BENFICA MOSTRA SEMPRE O SEU ESPLENDOR VIVA O BENFICA\" \"MANHA DE NEVOEIRO TARDE DE SOL SOALHEIRO BENFICA SEMPRE O PRIMEIRO VIVA O BENFICA\" \"DUAS VIAGENS SEGUIDAS PARA A ITALIA DAQUI A BOCADO MAIS VALE ABRIR UM BARBAS EM TURIM VIVA O BENFICA\"", 0 chars equ $5c36 ; Endereço 256 ($100) bytes abaixo da fonte (2 bytes) ; Contem $3c00 inicialmente @@ -54,15 +54,14 @@ scroll_text_loop call copia_para_udg ; Copia a letra para o UDG#1 ; O argumento para a rotina é o valor em HL - ld a, 22 - rst $10 - ld a, 0 - rst $10 - ld a, 0 - rst $10 - - ld a, $90 ; Imprime UDG#1 - rst $10 + ;ld a, 22 + ;rst $10 + ;ld a, 0 + ;rst $10 + ;ld a, 0 + ;rst $10 + ;ld a, $90 ; Imprime UDG#1 + ;rst $10 pop hl ; Tira a posição na string da stack inc hl ; Anda para a frente