mirror of https://github.com/falsovsky/z80.git
46 lines
1.4 KiB
NASM
46 lines
1.4 KiB
NASM
attr_p equ $5c8d; Endereço que contem as cores permanentes
|
|
bordcr equ $5c48; Endereço que contem a cor da borda
|
|
rom_limpa_ecra equ $0daf; Rotina da ROM que limpa o ecrã
|
|
rom_define_borda equ $2294; Rotina da ROM que define a borda
|
|
|
|
; Cores
|
|
; Numero | Binario | Nome
|
|
; 0 | 000 | Preto
|
|
; 1 | 001 | Azul
|
|
; 2 | 010 | Vermelho
|
|
; 3 | 011 | Roxo
|
|
; 4 | 100 | Verde
|
|
; 5 | 101 | Cyan
|
|
; 6 | 110 | Amarelo
|
|
; 7 | 111 | Branco
|
|
|
|
; 8 bits para definir ink, paper, brightness e flash
|
|
; |F |B |P2|P1|P0|I2|I1|I0|
|
|
; F Flash
|
|
; B Brightness
|
|
; P Paper
|
|
; I Ink
|
|
|
|
; 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 = $46
|
|
; 01000000 = 64 = $40 - Tudo preto
|
|
; 01000111 = 71 = $47 - Fundo preto Texto Branco
|
|
screen_attribute equ $47
|
|
|
|
; Valor de 0 a 7
|
|
border_color equ $0
|
|
|
|
clear_screen
|
|
ld a, screen_attribute
|
|
ld (attr_p), a ; Variavel de sistema que permite definir
|
|
; o ink, paper, brightness e flash
|
|
call rom_limpa_ecra ; Clear screen
|
|
|
|
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
|