mirror of https://github.com/falsovsky/z80.git
Documentação e optimização
This commit is contained in:
parent
dcc4b36525
commit
600f9035d0
|
|
@ -1,3 +1,8 @@
|
|||
attr_p equ 5c8dh; Endereço que contem as cores permanentes
|
||||
bordcr equ 5c48h; Endereço que contem a cor da borda
|
||||
rom_limpa_ecra equ 0dafh; Rotina da ROM que limpa o ecrã
|
||||
rom_define_borda equ 2294h; Rotina da ROM que define a borda
|
||||
|
||||
; Cores
|
||||
; Numero | Binario | Nome
|
||||
; 0 | 000 | Preto
|
||||
|
|
@ -18,23 +23,23 @@
|
|||
|
||||
; Então para definir o flash desligado, o brightness ligado com o
|
||||
; fundo a preto e o texto a amarelo fica-se com:
|
||||
; 01000110 = 70
|
||||
; 01000000 = 64 - Tudo preto
|
||||
; 01000111 = 71 - Fundo preto Texto Branco
|
||||
screen_attribute db 71
|
||||
; 01000110 = 70 = $46
|
||||
; 01000000 = 64 = $40 - Tudo preto
|
||||
; 01000111 = 71 = $47 - Fundo preto Texto Branco
|
||||
screen_attribute equ 47h
|
||||
|
||||
; Valor de 0 a 7
|
||||
border_attribute db 0
|
||||
border_color equ 00h
|
||||
|
||||
clear_screen
|
||||
ld a, (screen_attribute)
|
||||
ld (23693), a ; Variavel de sistema que permite definir
|
||||
ld a, screen_attribute
|
||||
ld (attr_p), a ; Variavel de sistema que permite definir
|
||||
; o ink, paper, brightness e flash
|
||||
call 3503 ; Chama a função da ROM para fazer clear
|
||||
; screen
|
||||
call rom_limpa_ecra ; Clear screen
|
||||
|
||||
ld a, (border_attribute)
|
||||
call 8859 ; Chama a função da ROM para actualizar
|
||||
; a border com o valor que está em A
|
||||
; O valor fica guardado em 23624
|
||||
ld a, border_color ; Cor do border
|
||||
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.
|
||||
ret
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
org 30000
|
||||
|
||||
tv_flag equ 5C3Ch
|
||||
tv_flag equ 5c3ch ; Endereço que contem flags da tv
|
||||
last_k equ 5c08h ; Contem a ultima tecla pressionada
|
||||
; Video RAM
|
||||
LINHA9 equ 4820h
|
||||
LINHA10 equ 4840h
|
||||
LINHA11 equ 4860h
|
||||
|
||||
; 16 é para definir o INK
|
||||
; 17 é para definir o PAPER
|
||||
|
|
@ -40,22 +45,22 @@ printa_ate_255
|
|||
jr printa_ate_255 ; Volta ao inicio da rotina
|
||||
|
||||
mainloop
|
||||
ld a, 0 ; O endereço $5C08 tem o valor ASCII da ultima tecla
|
||||
ld (5C08h), a ; pressionada, vamos limpar isso
|
||||
ld a, 0
|
||||
ld (last_k), a ; Limpa o valor da ultima tecla pressionada
|
||||
|
||||
ld hl, 4820h ; Linha 9
|
||||
ld hl, LINHA9
|
||||
call scroll_direita
|
||||
ld hl, 4840h ; Linha 10
|
||||
ld hl, LINHA10
|
||||
call scroll_esquerda
|
||||
ld hl, 4860h ; Linha 11
|
||||
ld hl, LINHA11
|
||||
call scroll_direita
|
||||
|
||||
ld a, 1
|
||||
call delay ; Chama a rotina de delay(1)
|
||||
|
||||
ld a, (5C08h) ; Se o valor em $5C08 ainda for 0, é porque ainda
|
||||
cp 0 ; não se pressionou nenhuma tecla, por isso...
|
||||
jr Z, mainloop ; repete
|
||||
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, mainloop ; tecla, por isso... repete
|
||||
|
||||
exit
|
||||
pop bc ; Tira o BC da Stack
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,8 +1,7 @@
|
|||
;videoAddr2 equ 4820h ; Linha 9
|
||||
;videoAddr2 equ 4920h ; Faz o mesmo, tenho de entender porque
|
||||
;videoAddr2 equ ; Linha 11
|
||||
;videoAddr2 equ 4820h ; Linha 9
|
||||
;videoAddr2 equ 4920h ; Faz o mesmo, tenho de entender porque
|
||||
|
||||
addractual2 db 0,0
|
||||
addractual2 db 0,0
|
||||
primeiroaddr db 0,0
|
||||
|
||||
; Rotina de scroll de texto da esquerda para a direita pixel a pixel
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
;videoAddr equ 4840h ; Endereço de Memoria Video da Linha 10
|
||||
;videoAddr equ 4940h ; Faz o mesmo, tenho de entender porque
|
||||
|
||||
addractual1 db 0,0
|
||||
ultimoaddr db 0,0
|
||||
addractual1 db 0,0
|
||||
ultimoaddr db 0,0
|
||||
|
||||
; Rotina de scroll de texto da direita para a esquerda pixel a pixel
|
||||
; O endereço inicial tem de vir em HL
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
text db "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin commodo metus sed orci fermentum, id mattis quam suscipit."
|
||||
Loading…
Reference in New Issue