This commit is contained in:
Pedro de Oliveira 2014-08-12 08:07:46 +01:00
parent 6d9235bced
commit 6330d8ec4a
2 changed files with 5 additions and 11 deletions

View File

@ -41,5 +41,5 @@ clear_screen
call rom_define_borda+$7
; Chama a rotina da ROM para actualizar a borda, mas salta 7
; bytes à frente, porque são para ler o valor da borda do
; BASIC. O valor fica guardado em 23624.
; BASIC. O valor fica guardado em $5c48.
ret

View File

@ -2,33 +2,27 @@ org 30000
tv_flag equ $5c3c ; Endereço que contem flags da tv
last_k equ $5c08 ; Contem a ultima tecla pressionada
k_cur equ $5c5b ; Contem a posição do cursor - TODO: Usar isto
; Depois de meter a 10,6 (y,x) fica com
; $5d16
LINHA10 equ $4840
mystr db 22,9,0, 16,6, "o_barbas disse:", 255
scroll_udg db $8 ; Numero de pixeis para scrollados no UDG#1
o_barbas db 22,9,0, 16,6, "o_barbas disse:", 255
scroll_udg db $8 ; Numero de pixeis para scrollados no UDG#1
; Inicializado a 8 para "pedir" uma nova
; letra quando corre pela primeira vez.
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.
call clear_screen ; Limpa o ecrã
ld hl, mystr ; Le para HL o endereço da string a printar
ld hl, o_barbas ; 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, main_loop ; então já se imprimiu tudo e é para sair
rst $10 ; Syscall para imprimir o no ecrã o que estiver em A
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