Just having fun with these routines to help me embed my understanding hopefully! Here is a program that can be used in basic to turn a different font on or off.
Code: Select all
org 32768
ld a,(flag) ;check flag to see if we will change the font
AND a ; is a 0?
JP Z, skip ; if so skip changing the font
ld hl,typeface-256 ; load a new font
ld (23606),hl
jp done
skip: ; this will allow us to turn off the new font.
ld hl,15616-256
ld (23606),hl
done:
ret
org 40000
flag
defb 0
typeface: ; a font from DamienG https://damieng.com
defb 000h,000h,000h,000h,000h,000h,000h,000h ;
defb 000h,038h,038h,038h,000h,038h,000h,000h ; !
defb 000h,06ch,06ch,06ch,000h,000h,000h,000h ; "
defb 000h,06ch,0feh,06ch,0feh,06ch,000h,000h ; #
defb 000h,018h,07eh,078h,01eh,07eh,018h,000h ; $
defb 000h,072h,074h,018h,02eh,04eh,000h,000h ; %
defb 000h,07eh,070h,03eh,06ch,07eh,000h,000h ; 0
defb 000h,018h,018h,018h,000h,000h,000h,000h ; '
defb 000h,03ch,070h,070h,07ch,03ch,000h,000h ; (
defb 000h,03ch,00eh,00eh,03eh,03ch,000h,000h ; )
defb 000h,018h,07eh,03ch,07eh,018h,000h,000h ; *
defb 000h,000h,038h,0feh,038h,000h,000h,000h ; +
defb 000h,000h,000h,000h,018h,018h,018h,000h ; h,
defb 000h,000h,000h,07ch,000h,000h,000h,000h ; -
defb 000h,000h,000h,000h,030h,030h,000h,000h ; .
defb 000h,00ch,01ch,038h,070h,060h,000h,000h ; /
defb 000h,07eh,076h,076h,07eh,07eh,000h,000h ; 0
defb 000h,078h,018h,018h,07eh,07eh,000h,000h ; 1
defb 000h,07eh,00eh,038h,07eh,07eh,000h,000h ; 2
defb 000h,07eh,00eh,03ch,00eh,07eh,000h,000h ; 3
defb 000h,03ch,05ch,07eh,07eh,01ch,000h,000h ; 4
defb 000h,07eh,070h,07eh,00eh,07ch,000h,000h ; 5
defb 000h,07eh,070h,07eh,076h,07eh,000h,000h ; 6
defb 000h,07eh,00eh,00eh,01ch,01ch,000h,000h ; 7
defb 000h,07eh,076h,03ch,06eh,07eh,000h,000h ; 8
defb 000h,07eh,06eh,07eh,00eh,07eh,000h,000h ; 9
defb 000h,000h,018h,000h,018h,018h,000h,000h ; :
defb 000h,000h,018h,000h,018h,018h,018h,000h ;h ;
defb 000h,01ch,038h,070h,038h,01ch,000h,000h ; <
defb 000h,000h,07ch,000h,07ch,000h,000h,000h ; =
defb 000h,038h,01ch,00eh,01ch,038h,000h,000h ; >
defb 000h,07eh,00eh,03ch,000h,038h,000h,000h ; ?
defb 000h,07eh,06eh,06eh,060h,07eh,000h,000h ; @
defb 000h,07eh,06eh,07eh,06eh,06eh,000h,000h ; A
defb 000h,07eh,076h,07ch,076h,07eh,000h,000h ; B
defb 000h,07eh,070h,070h,07eh,07eh,000h,000h ; C
defb 000h,07ch,076h,076h,07eh,07eh,000h,000h ; D
defb 000h,07eh,070h,07eh,078h,07eh,000h,000h ; E
defb 000h,07eh,070h,07eh,070h,070h,000h,000h ; F
defb 000h,07eh,070h,076h,07eh,07eh,000h,000h ; G
defb 000h,076h,076h,07eh,076h,076h,000h,000h ; H
defb 000h,038h,038h,038h,038h,038h,000h,000h ; I
defb 000h,00eh,00eh,06eh,07eh,07eh,000h,000h ; J
defb 000h,076h,076h,07ch,07eh,076h,000h,000h ; K
defb 000h,070h,070h,070h,07eh,07eh,000h,000h ; L
defb 000h,0c6h,0eeh,0feh,0feh,0d6h,000h,000h ; M
defb 000h,066h,076h,07eh,07eh,076h,000h,000h ; N
defb 000h,07eh,076h,076h,07eh,07eh,000h,000h ; O
defb 000h,07eh,076h,07eh,07eh,070h,000h,000h ; P
defb 000h,07eh,076h,076h,07eh,07eh,00eh,000h ; Q
defb 000h,07eh,076h,07ch,07eh,076h,000h,000h ; R
defb 000h,07eh,070h,07eh,00eh,07eh,000h,000h ; S
defb 000h,0feh,038h,038h,038h,038h,000h,000h ; T
defb 000h,076h,076h,076h,07eh,07eh,000h,000h ; U
defb 000h,076h,076h,076h,07ch,078h,000h,000h ; V
defb 000h,0c6h,0d6h,0feh,0feh,0eeh,000h,000h ; W
defb 000h,076h,07eh,03ch,07eh,06eh,000h,000h ; X
defb 000h,076h,076h,07eh,00eh,07eh,000h,000h ; Y
defb 000h,07eh,01ch,038h,07eh,07eh,000h,000h ; Z
defb 000h,07eh,070h,070h,07eh,07eh,000h,000h ; [
defb 000h,060h,070h,038h,01ch,00ch,000h,000h ; \
defb 000h,07eh,00eh,00eh,07eh,07eh,000h,000h ; ]
defb 000h,018h,03ch,07eh,03ch,03ch,000h,000h ; ^
defb 000h,000h,000h,000h,000h,000h,07eh,000h ; _
defb 000h,07eh,072h,07ch,070h,07eh,000h,000h ; £
defb 000h,000h,07eh,06eh,07eh,076h,000h,000h ; a
defb 000h,070h,07eh,076h,07eh,07eh,000h,000h ; b
defb 000h,000h,07eh,060h,07eh,07eh,000h,000h ; c
defb 000h,00eh,07eh,06eh,07eh,07eh,000h,000h ; d
defb 000h,000h,07eh,076h,07ch,07eh,000h,000h ; e
defb 000h,01eh,01ch,03eh,01ch,01ch,000h,000h ; f
defb 000h,000h,07eh,06eh,07eh,00eh,07eh,000h ; g
defb 000h,070h,07eh,076h,076h,076h,000h,000h ; h
defb 000h,038h,000h,038h,038h,038h,000h,000h ; i
defb 000h,01ch,000h,01ch,01ch,01ch,03ch,000h ; j
defb 000h,070h,076h,07ch,076h,076h,000h,000h ; k
defb 000h,03ch,01ch,01ch,01ch,01ch,000h,000h ; l
defb 000h,000h,0eeh,0feh,0feh,0d6h,000h,000h ; m
defb 000h,000h,07eh,076h,076h,076h,000h,000h ; n
defb 000h,000h,07eh,076h,07eh,07eh,000h,000h ; o
defb 000h,000h,07eh,076h,07eh,07eh,070h,000h ; p
defb 000h,000h,07eh,06eh,07eh,07eh,00eh,000h ; q
defb 000h,000h,07eh,076h,070h,070h,000h,000h ; r
defb 000h,000h,07eh,078h,01eh,07eh,000h,000h ; s
defb 000h,038h,07eh,038h,03eh,03eh,000h,000h ; t
defb 000h,000h,076h,076h,076h,07eh,000h,000h ; u
defb 000h,000h,076h,076h,07ch,078h,000h,000h ; v
defb 000h,000h,0d6h,0feh,0feh,0eeh,000h,000h ; w
defb 000h,000h,076h,03ch,07eh,06eh,000h,000h ; x
defb 000h,000h,06eh,06eh,07eh,00eh,07eh,000h ; y
defb 000h,000h,07eh,01eh,078h,07eh,000h,000h ; z
defb 000h,01eh,01ch,078h,01ch,01eh,000h,000h ; {
defb 000h,038h,038h,038h,038h,038h,000h,000h ; |
defb 000h,078h,038h,01eh,038h,078h,000h,000h ; }
defb 000h,076h,06eh,000h,000h,000h,000h,000h ; ~
defb 07fh,041h,03eh,030h,03eh,03eh,041h,07fh ; ©
end 32768