a2d/desktop/inc/font.inc
2018-03-22 09:13:26 -07:00

213 lines
8.8 KiB
PHP

;;; ============================================================
;;; Font
.proc font_definition
count := 128
height := 9
.assert * = font_flag, error, "Entry point mismatch"
.byte $00 ; type: 0=regular, $80=double-width
.assert * = font_last_char, error, "Entry point mismatch"
.byte count - 1 ; lastchar
.assert * = font_height, error, "Entry point mismatch"
.byte height ; height
.assert * = font_width_table, error, "Entry point mismatch"
.byte $01,$07,$07,$07,$07,$07,$01,$07
.byte $07,$07,$07,$07,$07,$07,$07,$07
.byte $07,$03,$07,$06,$07,$07,$07,$07
.byte $07,$07,$07,$07,$07,$07,$07,$07
.byte $05,$03,$04,$07,$06,$06,$06,$02
.byte $03,$03,$06,$06,$03,$06,$03,$07
.byte $06,$06,$06,$06,$06,$06,$06,$06
.byte $06,$06,$03,$03,$05,$06,$05,$06
.byte $07,$07,$07,$07,$07,$07,$07,$07
.byte $07,$07,$07,$07,$07,$07,$07,$07
.byte $07,$07,$07,$07,$07,$07,$06,$07
.byte $07,$07,$07,$05,$06,$06,$04,$06
.byte $05,$07,$07,$06,$07,$06,$06,$06
.byte $06,$03,$05,$06,$03,$07,$06,$06
.byte $06,$06,$06,$06,$06,$06,$06,$07
.byte $06,$06,$06,$04,$02,$04,$05,$07
.assert * = font_glyphs, error, "Entry point mismatch"
;; For single-width fonts:
;; glyph0-row0, glyph1-row0, ...
;; glyph0-row1, glyph1-row1, ...
;; ...
;; For double-width fonts (col A, B)
;; glyph0-row0a, glyph1-row0a, ...
;; glyph0-row0b, glyph1-row0b, ...
;; glyph0-row1a, glyph1-row1a, ...
;; glyph0-row1b, glyph1-row1b, ...
;; ...
;; row 0
.byte $00,$00,$00,$3F,$77,$01,$01,$00
.byte $00,$7F,$00,$00,$7F,$20,$3E,$3E
.byte $00,$00,$3C,$00,$00,$00,$00,$00
.byte $14,$55,$2A,$00,$7F,$00,$10,$10
.byte $00,$03,$05,$12,$04,$03,$02,$01
.byte $02,$01,$00,$00,$00,$00,$00,$00
.byte $0E,$0C,$0E,$0E,$1B,$1F,$0E,$1F
.byte $0E,$0E,$00,$00,$00,$00,$00,$0E
.byte $00,$1E,$1F,$1E,$1F,$3F,$3F,$1E
.byte $33,$3F,$3E,$33,$03,$33,$33,$1E
.byte $1F,$1E,$1F,$1E,$3F,$33,$1B,$33
.byte $33,$33,$3F,$0F,$00,$0F,$02,$00
.byte $03,$00,$03,$00,$30,$00,$1C,$00
.byte $03,$03,$0C,$03,$03,$00,$00,$00
.byte $00,$00,$00,$00,$06,$00,$00,$00
.byte $00,$00,$00,$04,$01,$01,$05,$00
;; row 1
.byte $00,$7F,$00,$21,$1C,$03,$01,$00
.byte $00,$01,$08,$08,$40,$20,$41,$41
.byte $00,$00,$42,$00,$00,$00,$08,$00
.byte $14,$2A,$55,$00,$3F,$40,$08,$08
.byte $00,$03,$05,$12,$1E,$13,$05,$01
.byte $01,$02,$04,$04,$00,$00,$00,$30
.byte $1B,$0F,$1B,$1B,$1B,$03,$1B,$18
.byte $1B,$1B,$00,$00,$0C,$00,$03,$1B
.byte $1E,$33,$33,$33,$33,$03,$03,$33
.byte $33,$0C,$18,$1B,$03,$3F,$33,$33
.byte $33,$33,$33,$33,$0C,$33,$1B,$33
.byte $33,$33,$30,$03,$00,$0C,$05,$00
.byte $06,$00,$03,$00,$30,$00,$06,$00
.byte $03,$00,$00,$03,$03,$00,$00,$00
.byte $00,$00,$00,$00,$06,$00,$00,$00
.byte $00,$00,$00,$02,$01,$02,$0A,$00
;; row 2
.byte $00,$41,$00,$12,$08,$07,$01,$00
.byte $0C,$01,$08,$1C,$40,$20,$5D,$5D
.byte $77,$03,$04,$1F,$0C,$18,$1C,$0C
.byte $14,$55,$2A,$0C,$1F,$60,$36,$36
.byte $00,$03,$00,$3F,$05,$08,$05,$00
.byte $01,$02,$15,$04,$00,$00,$00,$18
.byte $1B,$0C,$18,$18,$1B,$0F,$03,$0C
.byte $1B,$1B,$03,$03,$06,$0F,$06,$18
.byte $21,$33,$33,$03,$33,$03,$03,$03
.byte $33,$0C,$18,$0F,$03,$3F,$37,$33
.byte $33,$33,$33,$03,$0C,$33,$1B,$33
.byte $1E,$33,$18,$03,$01,$0C,$00,$00
.byte $0C,$1E,$1F,$1E,$3E,$0E,$06,$0E
.byte $0F,$03,$0C,$1B,$03,$1F,$0F,$0E
.byte $0F,$1E,$0F,$1E,$1F,$1B,$1B,$23
.byte $1B,$1B,$1F,$02,$01,$02,$00,$00
;; row 3
.byte $00,$41,$3F,$0C,$08,$0F,$01,$00
.byte $06,$01,$08,$3E,$40,$24,$45,$55
.byte $52,$02,$08,$0A,$00,$30,$36,$12
.byte $77,$2A,$55,$1E,$4E,$31,$7F,$49
.byte $00,$03,$00,$12,$0E,$04,$02,$00
.byte $01,$02,$0E,$1F,$00,$1F,$00,$0C
.byte $1B,$0C,$0C,$0C,$1F,$18,$0F,$06
.byte $0E,$1E,$00,$00,$03,$00,$0C,$0C
.byte $2D,$3F,$1F,$03,$33,$0F,$0F,$3B
.byte $3F,$0C,$18,$0F,$03,$33,$3B,$33
.byte $1F,$33,$1F,$1E,$0C,$33,$1B,$33
.byte $0C,$1E,$0C,$03,$02,$0C,$00,$00
.byte $00,$30,$33,$03,$33,$1B,$0F,$1B
.byte $1B,$03,$0C,$0F,$03,$2B,$1B,$1B
.byte $1B,$1B,$1B,$03,$06,$1B,$1B,$2B
.byte $0E,$1B,$18,$01,$01,$04,$00,$2A
;; row 4
.byte $00,$01,$20,$0C,$08,$1F,$01,$7F
.byte $7F,$01,$6B,$6B,$40,$26,$45,$4D
.byte $12,$02,$3E,$0A,$3F,$7F,$63,$21
.byte $00,$55,$2A,$3F,$64,$1B,$3F,$21
.byte $00,$03,$00,$12,$14,$02,$15,$00
.byte $01,$02,$15,$04,$00,$00,$00,$06
.byte $1B,$0C,$06,$18,$18,$18,$1B,$03
.byte $1B,$10,$00,$00,$06,$0F,$06,$06
.byte $3D,$33,$33,$03,$33,$03,$03,$33
.byte $33,$0C,$18,$0F,$03,$33,$33,$33
.byte $03,$33,$33,$30,$0C,$33,$1B,$3F
.byte $1E,$0C,$06,$03,$04,$0C,$00,$00
.byte $00,$3E,$33,$03,$33,$1F,$06,$1B
.byte $1B,$03,$0C,$07,$03,$2B,$1B,$1B
.byte $1B,$1B,$03,$0E,$06,$1B,$1B,$2B
.byte $04,$1B,$0C,$02,$01,$02,$00,$14
;; row 5
.byte $00,$01,$20,$12,$08,$3F,$01,$00
.byte $06,$01,$3E,$08,$40,$3F,$5D,$55
.byte $12,$02,$10,$0A,$00,$30,$7F,$12
.byte $77,$2A,$55,$1E,$71,$0E,$3F,$21
.byte $00,$00,$00,$3F,$0F,$19,$09,$00
.byte $01,$02,$04,$04,$00,$00,$00,$03
.byte $1B,$0C,$03,$1B,$18,$1B,$1B,$03
.byte $1B,$1B,$03,$03,$0C,$00,$03,$00
.byte $1D,$33,$33,$33,$33,$03,$03,$33
.byte $33,$0C,$1B,$1B,$03,$33,$33,$33
.byte $03,$33,$33,$33,$0C,$33,$0E,$3F
.byte $33,$0C,$03,$03,$08,$0C,$00,$00
.byte $00,$33,$33,$03,$33,$03,$06,$1B
.byte $1B,$03,$0C,$0F,$03,$2B,$1B,$1B
.byte $1B,$1B,$03,$18,$06,$1B,$0E,$2B
.byte $0E,$1B,$06,$02,$01,$02,$00,$2A
;; row 6
.byte $00,$01,$20,$2D,$08,$0D,$01,$00
.byte $0C,$01,$1C,$08,$40,$06,$41,$41
.byte $00,$00,$1A,$0A,$0C,$18,$00,$0C
.byte $14,$55,$2A,$0C,$7B,$04,$7E,$6A
.byte $00,$03,$00,$12,$04,$18,$16,$00
.byte $02,$01,$00,$00,$02,$00,$03,$00
.byte $0E,$1F,$1F,$0E,$18,$0E,$0E,$03
.byte $0E,$0E,$00,$03,$00,$00,$00,$06
.byte $01,$33,$1F,$1E,$1F,$3F,$03,$1E
.byte $33,$3F,$0E,$33,$3F,$33,$33,$1E
.byte $03,$1E,$33,$1E,$0C,$1E,$04,$33
.byte $33,$0C,$3F,$0F,$10,$0F,$00,$00
.byte $00,$3F,$1F,$1E,$3E,$1E,$06,$1E
.byte $1B,$03,$0C,$1B,$03,$2B,$1B,$0E
.byte $0F,$1E,$03,$0F,$06,$1E,$04,$1F
.byte $1B,$1E,$1F,$04,$01,$01,$00,$14
;; row 7
.byte $00,$7F,$3F,$3F,$1C,$18,$01,$00
.byte $00,$01,$08,$08,$40,$04,$3E,$3E
.byte $00,$00,$4F,$00,$00,$00,$00,$00
.byte $14,$2A,$55,$00,$7F,$00,$36,$36
.byte $00,$00,$00,$12,$00,$00,$00,$00
.byte $00,$00,$00,$00,$02,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$01,$00,$00,$00,$00
.byte $3E,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$30,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$1F
.byte $00,$00,$00,$00,$00,$00,$00,$18
.byte $00,$00,$0C,$00,$00,$00,$00,$00
.byte $03,$18,$00,$00,$00,$00,$00,$00
.byte $00,$18,$00,$00,$00,$00,$00,$2A
;; row 8
.byte $00,$00,$00,$00,$77,$30,$01,$00
.byte $00,$7F,$00,$00,$7F,$00,$00,$00
.byte $00,$00,$7A,$00,$00,$00,$00,$00
.byte $14,$55,$2A,$00,$7F,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$01,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$0E
.byte $00,$00,$07,$00,$00,$00,$00,$00
.byte $03,$18,$00,$00,$00,$00,$00,$00
.byte $00,$0E,$00,$00,$00,$00,$00,$00
;; end of font glyphs
.assert * = font_definition + 3 + count + count * height, error, "Font length mismatch"
.endproc