;
; systemfont.asm -- 7-bit high font for Coke machine
; drawn by David Williams, Sept 16 1998
;
; About standard mode fonts:
; The last byte in the character description is signaled by the high
; bit set.  This has several advantages over a null-terminator --
; You can have spaces in the middle of the char, or have a string of chars
; (such as underlines) with no spaces between them.
;
; For example, here is what an uppercase 'A' might look like:
;
; bit 0 : 0 0 1 0 0 0  = $7C,$0A,$09,$0A,$7C,$80
;     1 : 0 1 0 1 0 0
;     2 : 1 0 0 0 1 0    The blank vertical line at the end is just
;     3 : 1 1 1 1 1 0    so there is some space between each letter.
;     4 : 1 0 0 0 1 0 
;     5 : 1 0 0 0 1 0
;     6 : 1 0 0 0 1 0
;     7 : 0 0 0 0 0 1
;
; This file defines the system font, it's plain and readable.
; The custom, user-downloadable fonts can be fancy and cursive.  :)
;

; org is always $00

	org	$00

; number of chars

	dc.b	128

; lookup table

	dc.w	.ch0
	dc.w	.ch1
	dc.w	.ch2
	dc.w	.ch3
	dc.w	.ch4
	dc.w	.ch5
	dc.w	.ch6
	dc.w	.ch7
	dc.w	.ch8
	dc.w	.ch9
	dc.w	.ch10
	dc.w	.ch11
	dc.w	.ch12
	dc.w	.ch13
	dc.w	.ch14
	dc.w	.ch15
	dc.w	.ch16
	dc.w	.ch17
	dc.w	.ch18
	dc.w	.ch19
	dc.w	.ch20
	dc.w	.ch21
	dc.w	.ch22
	dc.w	.ch23
	dc.w	.ch24
	dc.w	.ch25
	dc.w	.ch26
	dc.w	.ch27
	dc.w	.ch28
	dc.w	.ch29
	dc.w	.ch30
	dc.w	.ch31
	dc.w	.ch32
	dc.w	.ch33
	dc.w	.ch34
	dc.w	.ch35
	dc.w	.ch36
	dc.w	.ch37
	dc.w	.ch38
	dc.w	.ch39
	dc.w	.ch40
	dc.w	.ch41
	dc.w	.ch42
	dc.w	.ch43
	dc.w	.ch44
	dc.w	.ch45
	dc.w	.ch46
	dc.w	.ch47
	dc.w	.ch48
	dc.w	.ch49
	dc.w	.ch50
	dc.w	.ch51
	dc.w	.ch52
	dc.w	.ch53
	dc.w	.ch54
	dc.w	.ch55
	dc.w	.ch56
	dc.w	.ch57
	dc.w	.ch58
	dc.w	.ch59
	dc.w	.ch60
	dc.w	.ch61
	dc.w	.ch62
	dc.w	.ch63
	dc.w	.ch64
	dc.w	.ch65
	dc.w	.ch66
	dc.w	.ch67
	dc.w	.ch68
	dc.w	.ch69
	dc.w	.ch70
	dc.w	.ch71
	dc.w	.ch72
	dc.w	.ch73
	dc.w	.ch74
	dc.w	.ch75
	dc.w	.ch76
	dc.w	.ch77
	dc.w	.ch78
	dc.w	.ch79
	dc.w	.ch80
	dc.w	.ch81
	dc.w	.ch82
	dc.w	.ch83
	dc.w	.ch84
	dc.w	.ch85
	dc.w	.ch86
	dc.w	.ch87
	dc.w	.ch88
	dc.w	.ch89
	dc.w	.ch90
	dc.w	.ch91
	dc.w	.ch92
	dc.w	.ch93
	dc.w	.ch94
	dc.w	.ch95
	dc.w	.ch96
	dc.w	.ch97
	dc.w	.ch98
	dc.w	.ch99
	dc.w	.ch100
	dc.w	.ch101
	dc.w	.ch102
	dc.w	.ch103
	dc.w	.ch104
	dc.w	.ch105
	dc.w	.ch106
	dc.w	.ch107
	dc.w	.ch108
	dc.w	.ch109
	dc.w	.ch110
	dc.w	.ch111
	dc.w	.ch112
	dc.w	.ch113
	dc.w	.ch114
	dc.w	.ch115
	dc.w	.ch116
	dc.w	.ch117
	dc.w	.ch118
	dc.w	.ch119
	dc.w	.ch120
	dc.w	.ch121
	dc.w	.ch122
	dc.w	.ch123
	dc.w	.ch124
	dc.w	.ch125
	dc.w	.ch126
	dc.w	.ch127

; then the font definition

.ch0:		dc.b	$08,$14,$08,$14,$08,$80	; infinity
.ch1:		dc.b	$3E,$55,$61,$55,$3E,$80	; smiley face
.ch2:		dc.b	$3E,$65,$51,$65,$3E,$80	; frowny face
.ch3:		dc.b	$0C,$12,$24,$12,$0C,$80	; heart
.ch4:		dc.b	$08,$14,$22,$14,$08,$80	; diamond
.ch5:		dc.b	$7A,$11,$0A,$71,$80	; spanish "enye"
.ch6:		dc.b	$D7,$80			; upside down exclamation
.ch7:		dc.b	$0C,$0C,$80		; bullet
.ch8:		dc.b	$14,$14,$94		; horiz double line
.ch9:		dc.b	$12,$1D,$12,$80		; plus or minus
.ch10:		dc.b	$04,$7E,$02,$7C,$04,$80 ; pi
.ch11:		dc.b	$41,$65,$49,$41,$63,$80	; sigma
.ch12:		dc.b	$02,$01,$02,$81		; zipper line (top)
.ch13:		dc.b	$40,$20,$40,$A0		; zipper line (bottom)
.ch14:		dc.b	$08,$10,$08,$90		; zipper line (middle)
.ch15:		dc.b	$08,$1C,$2A,$88		; left arrow-head (joining)
.ch16:		dc.b	$7F,$3E,$1C,$08,$80	; right pointing triangle
.ch17:		dc.b	$08,$1C,$3E,$7F,$80	; left pointing triangle
.ch18:		dc.b	$22,$7F,$22,$80		; up-down arrow
.ch19:		dc.b	$5F,$00,$5F,$80		; double exclamation
.ch20:		dc.b	$01,$01,$81		; horiz line (top)
.ch21:		dc.b	$40,$40,$C0		; horiz line (bottom)
.ch22:		dc.b	$08,$08,$88		; horiz line (mid)
.ch23:		dc.b	$7F,$7F,$80		; medium vertical bar
.ch24:		dc.b	$04,$02,$7F,$02,$04,$80	; up arrow
.ch25:		dc.b	$10,$20,$7F,$20,$10,$80	; down arrow
.ch26:		dc.b	$08,$08,$2A,$1C,$08,$80	; right arrow
.ch27:		dc.b	$08,$1C,$2A,$08,$08,$80	; left arrow
.ch28:		dc.b	$7F,$7F,$7F,$80		; thick vertical bar
.ch29:		dc.b	$08,$1C,$08,$1C,$08,$80	; left-right arrow
.ch30:		dc.b	$40,$70,$7C,$70,$40,$80	; up pointing triangle
.ch31:		dc.b	$01,$0D,$1F,$0D,$01,$80	; down pointing triangle
.ch32:		dc.b	$00,$00,$80		;  
.ch33:		dc.b	$5F,$80			; !
.ch34:		dc.b	$03,$00,$03,$80		; "
.ch35:		dc.b	$14,$3E,$14,$3E,$14,$80	; #
.ch36:		dc.b	$24,$2A,$6B,$2A,$12,$80	; $
.ch37:		dc.b	$22,$15,$2A,$54,$22,$80	; %
.ch38:		dc.b	$3A,$45,$32,$50,$80	; &
.ch39:		dc.b	$02,$01,$80		; '
.ch40:		dc.b	$1C,$22,$41,$80		; (
.ch41:		dc.b	$41,$22,$1C,$80		; )
.ch42:		dc.b	$08,$2A,$1C,$2A,$08,$80	; *
.ch43:		dc.b	$08,$08,$3E,$08,$08,$80	; +
.ch44:		dc.b	$40,$20,$80		; ,
.ch45:		dc.b	$08,$08,$08,$80		; -
.ch46:		dc.b	$40,$80			; .
.ch47:		dc.b	$40,$30,$08,$06,$01,$80	; /
.ch48:		dc.b	$6E,$51,$49,$45,$6E,$80	; 0
.ch49:		dc.b	$04,$43,$7F,$40,$80	; 1
.ch50:		dc.b	$42,$61,$51,$4A,$44,$80	; 2
.ch51:		dc.b	$22,$41,$49,$36,$80	; 3
.ch52:		dc.b	$18,$17,$10,$7E,$10,$80	; 4
.ch53:		dc.b	$2F,$45,$45,$29,$11,$80	; 5
.ch54:		dc.b	$38,$48,$4C,$4A,$39,$80	; 6
.ch55:		dc.b	$01,$61,$11,$0D,$03,$80	; 7
.ch56:		dc.b	$36,$49,$49,$36,$80	; 8
.ch57:		dc.b	$46,$49,$29,$1E,$80	; 9
.ch58:		dc.b	$14,$80			; colon
.ch59:		dc.b	$40,$34,$80		; ;
.ch60:		dc.b	$08,$14,$22,$41,$80	; <
.ch61:		dc.b	$14,$14,$14,$80		; =
.ch62:		dc.b	$41,$22,$14,$08,$80	; >
.ch63:		dc.b	$02,$01,$59,$05,$02,$80	; ?
.ch64:		dc.b	$3E,$41,$49,$55,$5E,$80	; @
.ch65:		dc.b	$7C,$0A,$09,$0A,$7C,$80	; A
.ch66:		dc.b	$7F,$49,$49,$49,$36,$80	; B
.ch67:		dc.b	$1C,$22,$41,$41,$22,$80	; C
.ch68:		dc.b	$7F,$41,$41,$22,$1C,$80	; D
.ch69:		dc.b	$7F,$49,$49,$41,$80	; E
.ch70:		dc.b	$7F,$09,$09,$01,$80	; F
.ch71:		dc.b	$1C,$22,$41,$31,$72,$80	; G
.ch72:		dc.b	$7F,$08,$08,$08,$7F,$80	; H
.ch73:		dc.b	$41,$7F,$41,$80		; I
.ch74:		dc.b	$30,$41,$3F,$01,$80	; J
.ch75:		dc.b	$7F,$08,$14,$22,$41,$80	; K
.ch76:		dc.b	$7F,$40,$40,$40,$80	; L
.ch77:		dc.b	$7F,$06,$38,$06,$7F,$80	; M
.ch78:		dc.b	$7F,$06,$08,$30,$7F,$80	; N
.ch79:		dc.b	$3E,$41,$41,$41,$3E,$80	; O
.ch80:		dc.b	$7F,$09,$09,$09,$06,$80	; P
.ch81:		dc.b	$1E,$21,$21,$61,$5E,$80	; Q
.ch82:		dc.b	$7F,$09,$09,$19,$66,$80	; R
.ch83:		dc.b	$26,$49,$49,$32,$80	; S
.ch84:		dc.b	$01,$01,$7F,$01,$01,$80	; T
.ch85:		dc.b	$3F,$40,$40,$40,$3F,$80	; U
.ch86:		dc.b	$1F,$20,$40,$20,$1F,$80	; V
.ch87:		dc.b	$0F,$70,$0C,$70,$0F,$80	; W
.ch88:		dc.b	$41,$36,$08,$36,$41,$80	; X
.ch89:		dc.b	$03,$04,$78,$04,$03,$80	; Y
.ch90:		dc.b	$61,$51,$49,$45,$43,$80	; Z
.ch91:		dc.b	$7F,$41,$41,$80		; [
.ch92:		dc.b	$01,$06,$08,$30,$40,$80	; \
.ch93:		dc.b	$41,$41,$7F,$80		; ]
.ch94:		dc.b	$02,$01,$02,$80		; ^
.ch95:		dc.b	$40,$40,$40,$40,$80	; _
.ch96:		dc.b	$01,$02,$80		; `
.ch97:		dc.b	$20,$54,$54,$78,$80	; a
.ch98:		dc.b	$7E,$48,$48,$30,$80	; b
.ch99:		dc.b	$38,$44,$44,$28,$80	; c
.ch100:		dc.b	$30,$48,$48,$7F,$80	; d
.ch101:		dc.b	$38,$54,$54,$18,$80	; e
.ch102:		dc.b	$08,$7E,$09,$02,$80	; f
.ch103:		dc.b	$4C,$52,$52,$3E,$80	; g
.ch104:		dc.b	$7E,$08,$08,$70,$80	; h
.ch105:		dc.b	$48,$7A,$40,$80		; i
.ch106:		dc.b	$20,$48,$3A,$80		; j
.ch107:		dc.b	$7E,$10,$28,$44,$80	; k
.ch108:		dc.b	$42,$7E,$40,$80		; l
.ch109:		dc.b	$7C,$04,$38,$04,$78,$80	; m
.ch110:		dc.b	$7C,$04,$04,$78,$80	; n
.ch111:		dc.b	$38,$44,$44,$38,$80	; o
.ch112:		dc.b	$7C,$14,$14,$08,$80	; p
.ch113:		dc.b	$08,$14,$14,$7C,$80	; q
.ch114:		dc.b	$7C,$08,$04,$08,$80	; r
.ch115:		dc.b	$48,$54,$54,$24,$80	; s
.ch116:		dc.b	$08,$3C,$48,$80		; t
.ch117:		dc.b	$3C,$40,$40,$7C,$80	; u
.ch118:		dc.b	$1C,$20,$40,$20,$1C,$80	; v
.ch119:		dc.b	$1C,$60,$18,$60,$1C,$80	; w
.ch120:		dc.b	$44,$28,$10,$28,$44,$80	; x
.ch121:		dc.b	$4C,$50,$30,$1C,$80	; y
.ch122:		dc.b	$44,$64,$54,$4C,$44,$80	; z
.ch123:		dc.b	$08,$36,$41,$80		; {
.ch124:		dc.b	$7F,$80			; |
.ch125:		dc.b	$41,$36,$08,$80		; }
.ch126:		dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80	; clear screen (~)
.ch127:		dc.b	$1C,$38,$76,$79,$69,$60,$46,$49,$69,$66,$60,$2F,$34,$3B,$30,$3F,$1D,$09,$06,$84; Coke wave

; end of font
