; Apple II font based on the one in ROM that sadly we can't access ; For II/II+ was uppercase only 5x7 using 2513 character generator ; For IIe moved to 5x8 though the descenders on lowercase can touch next line ; This is fixed-width can only put the fonts easily in a 40x24 grid hgr_put_char: lda #10 sta CURSOR_X lda #10 sta CURSOR_Y lda #<(hgr_font+(('A'-$20)*8)) sta INL lda #>(hgr_font+(('A'-$20)*8)) sta INH jsr hgr_draw_sprite_1x8 rts .include "hgr_1x8_sprite.s" ; we skip control chars before $20 hgr_font: ; ' ' $20 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 ; ! $21 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $00 ; 00000 .byte $04 ; 00100 .byte $00 ; " $22 .byte $0a ; 01010 .byte $0a ; 01010 .byte $0a ; 01010 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; # .byte $0a ; 01010 .byte $0a ; 01010 .byte $1f ; 11111 .byte $0a ; 01010 .byte $1f ; 11111 .byte $0a ; 01010 .byte $0a ; 01010 .byte $00 ; $ .byte $04 ; 00100 .byte $0f ; 01111 .byte $14 ; 10100 .byte $0e ; 01110 .byte $05 ; 00101 .byte $1e ; 11110 .byte $04 ; 00100 .byte $00 ; % .byte $18 ; 11000 .byte $19 ; 11001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $13 ; 10011 .byte $03 ; 00011 .byte $00 ; & .byte $08 ; 01000 .byte $14 ; 10100 .byte $14 ; 10100 .byte $08 ; 01000 .byte $15 ; 10101 .byte $12 ; 10010 .byte $0d ; 01101 .byte $00 ; ' .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; ( .byte $04 ; 00100 .byte $08 ; 01000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $08 ; 01000 .byte $04 ; 00100 .byte $00 ; ) .byte $04 ; 00100 .byte $02 ; 00010 .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $00 ; * .byte $04 ; 00100 .byte $15 ; 10101 .byte $0e ; 01110 .byte $04 ; 00100 .byte $0e ; 01110 .byte $15 ; 10101 .byte $04 ; 00100 .byte $00 ; + .byte $00 ; 00000 .byte $04 ; 00100 .byte $04 ; 00100 .byte $1f ; 11111 .byte $04 ; 00100 .byte $04 ; 00100 .byte $00 ; 00000 .byte $00 ; , .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $04 ; 00100 .byte $04 ; 00100 .byte $08 ; 01000 .byte $00 ; - .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $1f ; 11111 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 01000 .byte $00 ; . .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $04 ; 00100 .byte $00 ; / .byte $00 ; 00000 .byte $01 ; 00001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $10 ; 10000 .byte $00 ; 00100 .byte $00 ; 0 .byte $0e ; 01110 .byte $11 ; 10001 .byte $13 ; 10011 .byte $15 ; 10101 .byte $19 ; 11001 .byte $11 ; 10001 .byte $0e ; 01110 .byte $00 ; 1 .byte $04 ; 00100 .byte $0c ; 01100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $0e ; 01110 .byte $00 ; 2 .byte $0e ; 01110 .byte $11 ; 10001 .byte $01 ; 00001 .byte $06 ; 00110 .byte $08 ; 01000 .byte $10 ; 10000 .byte $1f ; 11111 .byte $00 ; 3 .byte $1f ; 11111 .byte $01 ; 00001 .byte $02 ; 00010 .byte $06 ; 00110 .byte $01 ; 00001 .byte $11 ; 10001 .byte $0e ; 01110 .byte $00 ; 4 .byte $02 ; 00010 .byte $06 ; 00110 .byte $0a ; 01010 .byte $12 ; 10010 .byte $1f ; 11111 .byte $02 ; 00010 .byte $02 ; 00010 .byte $00 ; 5 .byte $1f ; 11111 .byte $10 ; 10000 .byte $1e ; 11110 .byte $01 ; 00001 .byte $01 ; 00001 .byte $11 ; 10001 .byte $0e ; 01110 .byte $00 ; 6 .byte $07 ; 00111 .byte $08 ; 01000 .byte $10 ; 10000 .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 .byte $00 ; 7 .byte $1f ; 11111 .byte $01 ; 00001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $08 ; 01000 .byte $08 ; 01000 .byte $00 ; 8 .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 .byte $00 ; 9 .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0f ; 01111 .byte $01 ; 00001 .byte $02 ; 00010 .byte $1c ; 11100 .byte $00 ; : .byte $00 ; 00000 .byte $00 ; 00000 .byte $04 ; 00100 .byte $00 ; 00000 .byte $04 ; 00100 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; ; .byte $00 ; 00000 .byte $00 ; 00000 .byte $04 ; 00100 .byte $00 ; 00000 .byte $04 ; 00100 .byte $04 ; 00100 .byte $08 ; 01000 .byte $00 ; < .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $10 ; 10000 .byte $08 ; 01000 .byte $04 ; 00100 .byte $02 ; 00010 .byte $00 ; = .byte $00 ; 00000 .byte $00 ; 00000 .byte $1f ; 11111 .byte $00 ; 00000 .byte $1f ; 11111 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; > .byte $08 ; 01000 .byte $04 ; 00100 .byte $02 ; 00010 .byte $01 ; 00001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $00 ; ? .byte $0e ; 01110 .byte $11 ; 10001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $04 ; 00100 .byte $00 ; 00000 .byte $04 ; 00100 .byte $00 ; @ .byte $0e ; 01110 .byte $11 ; 10001 .byte $15 ; 10101 .byte $17 ; 10111 .byte $16 ; 10110 .byte $10 ; 10000 .byte $0f ; 01111 .byte $00 ; A .byte $04 ; 00100 .byte $0a ; 01010 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1f ; 11111 .byte $11 ; 10001 .byte $11 ; 10001 .byte $00 .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 ; B .byte $0e ; 01110 .byte $11 ; 10001 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $11 ; 10001 .byte $0e ; 01110 ; C .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 ; D .byte $1f ; 11111 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1e ; 11110 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1f ; 11111 ; E .byte $1f ; 11111 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1e ; 11110 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 ; F .byte $0f ; 01111 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $13 ; 10011 .byte $11 ; 10001 .byte $0f ; 01111 ; G .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1f ; 11111 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 ; H .byte $0e ; 01110 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $0e ; 01110 ; I .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $11 ; 10001 .byte $0e ; 01110 ; J .byte $11 ; 10001 .byte $12 ; 10010 .byte $14 ; 10100 .byte $18 ; 11000 .byte $14 ; 10100 .byte $12 ; 10010 .byte $11 ; 10001 ; K .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1f ; 11111 ; L .byte $11 ; 10001 .byte $1b ; 11011 .byte $15 ; 10101 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 ; M .byte $11 ; 10001 .byte $11 ; 10001 .byte $19 ; 11001 .byte $15 ; 10101 .byte $13 ; 10011 .byte $11 ; 10001 .byte $11 ; 10001 ; N .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 ; O .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 ; P .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $15 ; 10101 .byte $12 ; 10010 .byte $0d ; 01101 ; Q .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 .byte $14 ; 10100 .byte $12 ; 10010 .byte $11 ; 10001 ; R .byte $0e ; 01110 .byte $11 ; 10001 .byte $10 ; 10000 .byte $0e ; 01110 .byte $01 ; 00001 .byte $11 ; 10001 .byte $0e ; 01110 ; S .byte $1f ; 11111 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 ; T .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 ; U .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0a ; 01010 .byte $04 ; 00100 ; V .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $15 ; 10101 .byte $15 ; 10101 .byte $1b ; 11011 .byte $11 ; 10001 ; W .byte $11 ; 10001 .byte $11 ; 10001 .byte $0a ; 01010 .byte $04 ; 00100 .byte $0a ; 01010 .byte $11 ; 10001 .byte $11 ; 10001 ; X .byte $11 ; 10001 .byte $11 ; 10001 .byte $0a ; 01010 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 ; Y .byte $1f ; 11111 .byte $01 ; 00001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $10 ; 10000 .byte $1f ; 11111 ; Z .byte $1f ; 11111 .byte $18 ; 11000 .byte $18 ; 11000 .byte $18 ; 11000 .byte $18 ; 11000 .byte $18 ; 11000 .byte $1f ; 11111 ; [ .byte $00 ; 00000 .byte $10 ; 10000 .byte $08 ; 01000 .byte $04 ; 00100 .byte $02 ; 00010 .byte $01 ; 00001 .byte $00 ; 00000 ; \. .byte $1f ; 11111 .byte $03 ; 00011 .byte $03 ; 00011 .byte $03 ; 00011 .byte $03 ; 00011 .byte $03 ; 00011 .byte $1f ; 11111 ; ] .byte $00 ; 00000 .byte $00 ; 00000 .byte $04 ; 00100 .byte $0a ; 01010 .byte $11 ; 10001 .byte $00 ; 00000 .byte $00 ; 00000 ; ^ .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $1f ; 11111 ; _ ;******************* ; Lowercase ;******************* .byte $0e ; 01110 .byte $11 ; 10001 .byte $15 ; 10101 .byte $17 ; 10111 .byte $16 ; 10110 .byte $10 ; 10000 .byte $0f ; 01111 ; @ .byte $04 ; 00100 .byte $0a ; 01010 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1f ; 11111 .byte $11 ; 10001 .byte $11 ; 10001 ; A .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 ; B .byte $0e ; 01110 .byte $11 ; 10001 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $11 ; 10001 .byte $0e ; 01110 ; C .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 ; D .byte $1f ; 11111 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1e ; 11110 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1f ; 11111 ; E .byte $1f ; 11111 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1e ; 11110 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 ; F .byte $0f ; 01111 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $13 ; 10011 .byte $11 ; 10001 .byte $0f ; 01111 ; G .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1f ; 11111 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 ; H .byte $0e ; 01110 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $0e ; 01110 ; I .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $01 ; 00001 .byte $11 ; 10001 .byte $0e ; 01110 ; J .byte $11 ; 10001 .byte $12 ; 10010 .byte $14 ; 10100 .byte $18 ; 11000 .byte $14 ; 10100 .byte $12 ; 10010 .byte $11 ; 10001 ; K .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 .byte $1f ; 11111 ; L .byte $11 ; 10001 .byte $1b ; 11011 .byte $15 ; 10101 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 ; M .byte $11 ; 10001 .byte $11 ; 10001 .byte $19 ; 11001 .byte $15 ; 10101 .byte $13 ; 10011 .byte $11 ; 10001 .byte $11 ; 10001 ; N .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 ; O .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 .byte $10 ; 10000 .byte $10 ; 10000 .byte $10 ; 10000 ; P .byte $0e ; 01110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $15 ; 10101 .byte $12 ; 10010 .byte $0d ; 01101 ; Q .byte $1e ; 11110 .byte $11 ; 10001 .byte $11 ; 10001 .byte $1e ; 11110 .byte $14 ; 10100 .byte $12 ; 10010 .byte $11 ; 10001 ; R .byte $0e ; 01110 .byte $11 ; 10001 .byte $10 ; 10000 .byte $0e ; 01110 .byte $01 ; 00001 .byte $11 ; 10001 .byte $0e ; 01110 ; S .byte $1f ; 11111 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 ; T .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0e ; 01110 ; U .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $0a ; 01010 .byte $04 ; 00100 ; V .byte $11 ; 10001 .byte $11 ; 10001 .byte $11 ; 10001 .byte $15 ; 10101 .byte $15 ; 10101 .byte $1b ; 11011 .byte $11 ; 10001 ; W .byte $11 ; 10001 .byte $11 ; 10001 .byte $0a ; 01010 .byte $04 ; 00100 .byte $0a ; 01010 .byte $11 ; 10001 .byte $11 ; 10001 ; X .byte $11 ; 10001 .byte $11 ; 10001 .byte $0a ; 01010 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 .byte $04 ; 00100 ; Y .byte $1f ; 11111 .byte $01 ; 00001 .byte $02 ; 00010 .byte $04 ; 00100 .byte $08 ; 01000 .byte $10 ; 10000 .byte $1f ; 11111 ; Z .byte $1f ; 11111 .byte $18 ; 11000 .byte $18 ; 11000 .byte $18 ; 11000 .byte $18 ; 11000 .byte $18 ; 11000 .byte $1f ; 11111 ; [ .byte $00 ; 00000 .byte $10 ; 10000 .byte $08 ; 01000 .byte $04 ; 00100 .byte $02 ; 00010 .byte $01 ; 00001 .byte $00 ; 00000 ; \. .byte $1f ; 11111 .byte $03 ; 00011 .byte $03 ; 00011 .byte $03 ; 00011 .byte $03 ; 00011 .byte $03 ; 00011 .byte $1f ; 11111 ; ] .byte $00 ; 00000 .byte $00 ; 00000 .byte $04 ; 00100 .byte $0a ; 01010 .byte $11 ; 10001 .byte $00 ; 00000 .byte $00 ; 00000 ; ^ .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $00 ; 00000 .byte $1f ; 11111 ; _