add binary font + fixing error

This commit is contained in:
Frater 2026-02-23 18:04:20 +01:00
commit 413f4b6f79
9 changed files with 1078 additions and 914 deletions

862
src/common/char_bold.asm Normal file
View file

@ -0,0 +1,862 @@
; ============================================================================
; Font 8x8 (printable ASCII 0x20..0x7E) -> 95 glyphs * 8 = 760 bytes
; - bit7 = gauche, bit0 = droite
; - 1 byte = 1 scanline (haut -> bas)
; ============================================================================
font8x8_bold:
; 0x20 ' '
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x21 '!'
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
db 00011000b
db 00000000b
; 0x22 '"'
db 01100110b
db 01100110b
db 00100100b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x23 '#'
db 00100100b
db 00100100b
db 01111110b
db 00100100b
db 01111110b
db 00100100b
db 00100100b
db 00000000b
; 0x24 '$'
db 00011000b
db 00111110b
db 01100000b
db 00111100b
db 00000110b
db 01111100b
db 00011000b
db 00000000b
; 0x25 '%'
db 01100010b
db 01100110b
db 00001100b
db 00011000b
db 00110000b
db 01100110b
db 01000110b
db 00000000b
; 0x26 '&'
db 00111000b
db 01101100b
db 00111000b
db 01110110b
db 11011100b
db 11001100b
db 01110110b
db 00000000b
; 0x27 '''
db 00011000b
db 00011000b
db 00110000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x28 '('
db 00001100b
db 00011000b
db 00110000b
db 00110000b
db 00110000b
db 00011000b
db 00001100b
db 00000000b
; 0x29 ')'
db 00110000b
db 00011000b
db 00001100b
db 00001100b
db 00001100b
db 00011000b
db 00110000b
db 00000000b
; 0x2A '*'
db 00000000b
db 01100110b
db 00111100b
db 11111111b
db 00111100b
db 01100110b
db 00000000b
db 00000000b
; 0x2B '+'
db 00000000b
db 00011000b
db 00011000b
db 01111110b
db 00011000b
db 00011000b
db 00000000b
db 00000000b
; 0x2C ','
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00110000b
; 0x2D '-'
db 00000000b
db 00000000b
db 00000000b
db 01111110b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x2E '.'
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00000000b
; 0x2F '/'
db 00000110b
db 00001100b
db 00011000b
db 00110000b
db 01100000b
db 11000000b
db 10000000b
db 00000000b
; 0x30 '0'
db 00111100b
db 01100110b
db 01101110b
db 01110110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x31 '1'
db 00011000b
db 00111000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x32 '2'
db 00111100b
db 01100110b
db 00000110b
db 00001100b
db 00011000b
db 00110000b
db 01111110b
db 00000000b
; 0x33 '3'
db 00111100b
db 01100110b
db 00000110b
db 00011100b
db 00000110b
db 01100110b
db 00111100b
db 00000000b
; 0x34 '4'
db 00001100b
db 00011100b
db 00111100b
db 01101100b
db 01111110b
db 00001100b
db 00001100b
db 00000000b
; 0x35 '5'
db 01111110b
db 01100000b
db 01111100b
db 00000110b
db 00000110b
db 01100110b
db 00111100b
db 00000000b
; 0x36 '6'
db 00011100b
db 00110000b
db 01100000b
db 01111100b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x37 '7'
db 01111110b
db 01100110b
db 00000110b
db 00001100b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x38 '8'
db 00111100b
db 01100110b
db 01100110b
db 00111100b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x39 '9'
db 00111100b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00001100b
db 00111000b
db 00000000b
; 0x3A ':'
db 00000000b
db 00011000b
db 00011000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00000000b
; 0x3B ';'
db 00000000b
db 00011000b
db 00011000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00110000b
; 0x3C '<'
db 00001110b
db 00011100b
db 00111000b
db 01110000b
db 00111000b
db 00011100b
db 00001110b
db 00000000b
; 0x3D '='
db 00000000b
db 00000000b
db 01111110b
db 00000000b
db 01111110b
db 00000000b
db 00000000b
db 00000000b
; 0x3E '>'
db 01110000b
db 00111000b
db 00011100b
db 00001110b
db 00011100b
db 00111000b
db 01110000b
db 00000000b
; 0x3F '?'
db 00111100b
db 01100110b
db 00000110b
db 00001100b
db 00011000b
db 00000000b
db 00011000b
db 00000000b
; 0x40 '@'
db 00111100b
db 01100110b
db 01101110b
db 01101010b
db 01101110b
db 01100000b
db 00111100b
db 00000000b
; 0x41 'A'
db 00011000b
db 00111100b
db 01100110b
db 01100110b
db 01111110b
db 01100110b
db 01100110b
db 00000000b
; 0x42 'B'
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 00000000b
; 0x43 'C'
db 00111100b
db 01100110b
db 01100000b
db 01100000b
db 01100000b
db 01100110b
db 00111100b
db 00000000b
; 0x44 'D'
db 01111000b
db 01101100b
db 01100110b
db 01100110b
db 01100110b
db 01101100b
db 01111000b
db 00000000b
; 0x45 'E'
db 01111110b
db 01100000b
db 01100000b
db 01111100b
db 01100000b
db 01100000b
db 01111110b
db 00000000b
; 0x46 'F'
db 01111110b
db 01100000b
db 01100000b
db 01111100b
db 01100000b
db 01100000b
db 01100000b
db 00000000b
; 0x47 'G'
db 00111100b
db 01100110b
db 01100000b
db 01101110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x48 'H'
db 01100110b
db 01100110b
db 01100110b
db 01111110b
db 01100110b
db 01100110b
db 01100110b
db 00000000b
; 0x49 'I'
db 00111100b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x4A 'J'
db 00011110b
db 00001100b
db 00001100b
db 00001100b
db 00001100b
db 01101100b
db 00111000b
db 00000000b
; 0x4B 'K'
db 01100110b
db 01101100b
db 01111000b
db 01110000b
db 01111000b
db 01101100b
db 01100110b
db 00000000b
; 0x4C 'L'
db 01100000b
db 01100000b
db 01100000b
db 01100000b
db 01100000b
db 01100000b
db 01111110b
db 00000000b
; 0x4D 'M'
db 01100011b
db 01110111b
db 01111111b
db 01101011b
db 01100011b
db 01100011b
db 01100011b
db 00000000b
; 0x4E 'N'
db 01100110b
db 01110110b
db 01111110b
db 01111110b
db 01101110b
db 01100110b
db 01100110b
db 00000000b
; 0x4F 'O'
db 00111100b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x50 'P'
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01100000b
db 01100000b
db 01100000b
db 00000000b
; 0x51 'Q'
db 00111100b
db 01100110b
db 01100110b
db 01100110b
db 01101110b
db 00111100b
db 00001110b
db 00000000b
; 0x52 'R'
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01111000b
db 01101100b
db 01100110b
db 00000000b
; 0x53 'S'
db 00111100b
db 01100110b
db 01100000b
db 00111100b
db 00000110b
db 01100110b
db 00111100b
db 00000000b
; 0x54 'T'
db 01111110b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x55 'U'
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x56 'V'
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00000000b
; 0x57 'W'
db 01100011b
db 01100011b
db 01100011b
db 01101011b
db 01111111b
db 01110111b
db 01100011b
db 00000000b
; 0x58 'X'
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00111100b
db 01100110b
db 01100110b
db 00000000b
; 0x59 'Y'
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x5A 'Z'
db 01111110b
db 00000110b
db 00001100b
db 00011000b
db 00110000b
db 01100000b
db 01111110b
db 00000000b
; 0x5B '['
db 00111100b
db 00110000b
db 00110000b
db 00110000b
db 00110000b
db 00110000b
db 00111100b
db 00000000b
; 0x5C '\'
db 11000000b
db 01100000b
db 00110000b
db 00011000b
db 00001100b
db 00000110b
db 00000010b
db 00000000b
; 0x5D ']'
db 00111100b
db 00001100b
db 00001100b
db 00001100b
db 00001100b
db 00001100b
db 00111100b
db 00000000b
; 0x5E '^'
db 00010000b
db 00111000b
db 01101100b
db 11000110b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x5F '_'
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 11111111b
db 00000000b
; 0x60 '`'
db 00110000b
db 00011000b
db 00001100b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x61 'a'
db 00000000b
db 00000000b
db 00111100b
db 00000110b
db 00111110b
db 01100110b
db 00111110b
db 00000000b
; 0x62 'b'
db 01100000b
db 01100000b
db 01111100b
db 01100110b
db 01100110b
db 01100110b
db 01111100b
db 00000000b
; 0x63 'c'
db 00000000b
db 00000000b
db 00111100b
db 01100110b
db 01100000b
db 01100110b
db 00111100b
db 00000000b
; 0x64 'd'
db 00000110b
db 00000110b
db 00111110b
db 01100110b
db 01100110b
db 01100110b
db 00111110b
db 00000000b
; 0x65 'e'
db 00000000b
db 00000000b
db 00111100b
db 01100110b
db 01111110b
db 01100000b
db 00111100b
db 00000000b
; 0x66 'f'
db 00011100b
db 00110000b
db 00110000b
db 01111100b
db 00110000b
db 00110000b
db 00110000b
db 00000000b
; 0x67 'g'
db 00000000b
db 00000000b
db 00111110b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00111100b
; 0x68 'h'
db 01100000b
db 01100000b
db 01111100b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00000000b
; 0x69 'i'
db 00011000b
db 00000000b
db 00111000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x6A 'j'
db 00001100b
db 00000000b
db 00001100b
db 00001100b
db 00001100b
db 01101100b
db 01101100b
db 00111000b
; 0x6B 'k'
db 01100000b
db 01100000b
db 01100110b
db 01101100b
db 01111000b
db 01101100b
db 01100110b
db 00000000b
; 0x6C 'l'
db 00111000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x6D 'm'
db 00000000b
db 00000000b
db 01101100b
db 01111110b
db 01111110b
db 01101011b
db 01100011b
db 00000000b
; 0x6E 'n'
db 00000000b
db 00000000b
db 01111100b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00000000b
; 0x6F 'o'
db 00000000b
db 00000000b
db 00111100b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x70 'p'
db 00000000b
db 00000000b
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01100000b
db 01100000b
; 0x71 'q'
db 00000000b
db 00000000b
db 00111110b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00000110b
; 0x72 'r'
db 00000000b
db 00000000b
db 01101100b
db 01110110b
db 01100000b
db 01100000b
db 01100000b
db 00000000b
; 0x73 's'
db 00000000b
db 00000000b
db 00111110b
db 01100000b
db 00111100b
db 00000110b
db 01111100b
db 00000000b
; 0x74 't'
db 00110000b
db 00110000b
db 01111100b
db 00110000b
db 00110000b
db 00110000b
db 00011100b
db 00000000b
; 0x75 'u'
db 00000000b
db 00000000b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111110b
db 00000000b
; 0x76 'v'
db 00000000b
db 00000000b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00000000b
; 0x77 'w'
db 00000000b
db 00000000b
db 01100011b
db 01100011b
db 01101011b
db 01111111b
db 00110110b
db 00000000b
; 0x78 'x'
db 00000000b
db 00000000b
db 01100110b
db 00111100b
db 00011000b
db 00111100b
db 01100110b
db 00000000b
; 0x79 'y'
db 00000000b
db 00000000b
db 01100110b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00111100b
; 0x7A 'z'
db 00000000b
db 00000000b
db 01111110b
db 00001100b
db 00011000b
db 00110000b
db 01111110b
db 00000000b
; 0x7B '{'
db 00001110b
db 00011000b
db 00011000b
db 01110000b
db 00011000b
db 00011000b
db 00001110b
db 00000000b
; 0x7C '|'
db 00011000b
db 00011000b
db 00011000b
db 00000000b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x7D '}'
db 01110000b
db 00011000b
db 00011000b
db 00001110b
db 00011000b
db 00011000b
db 01110000b
db 00000000b
; 0x7E '~'
db 01110110b
db 11011100b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b

142
src/common/char_light.asm Normal file
View file

@ -0,0 +1,142 @@
; ============================================================================
; Font 8x8 (printable ASCII 0x20..0x7E) -> 95 glyphs * 8 = 760 bytes
; - bit7 = gauche, bit0 = droite
; - 1 byte = 1 scanline (haut -> bas)
; ============================================================================
;---------------------------------------------------------
; Font8x8 - Police de caractères fine pour NASM
; Format : 8x8 pixels, 1 byte par ligne
; Range : ASCII 0x20 (' ') to 0x7E ('~')
;---------------------------------------------------------
section .data
font8x8_light:
; 0x20 ( )
db 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b
; 0x21 (!)
db 00011000b, 00011000b, 00011000b, 00011000b, 00000000b, 00000000b, 00011000b, 00000000b
; 0x22 (")
db 01101100b, 01101100b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b
; 0x23 (#)
db 01101100b, 01101100b, 11111111b, 01101100b, 11111111b, 01101100b, 01101100b, 00000000b
; 0x24 ($)
db 00011000b, 00111110b, 01100000b, 00111100b, 00000110b, 01111100b, 00011000b, 00000000b
; 0x25 (%)
db 11000110b, 11000110b, 00001100b, 00011000b, 00110000b, 01100011b, 01100011b, 00000000b
; 0x26 (&)
db 00111000b, 01101100b, 00111000b, 00110110b, 01100011b, 01100110b, 00111011b, 00000000b
; 0x27 (')
db 00011000b, 00011000b, 00110000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b
; 0x28 (()
db 00001100b, 00011000b, 00110000b, 00110000b, 00110000b, 00011000b, 00001100b, 00000000b
; 0x29 ())
db 00110000b, 00011000b, 00001100b, 00001100b, 00001100b, 00011000b, 00110000b, 00000000b
; 0x2A (*)
db 00000000b, 01100110b, 00111100b, 11111111b, 00111100b, 01100110b, 00000000b, 00000000b
; 0x2B (+)
db 00000000b, 00011000b, 00011000b, 01111110b, 00011000b, 00011000b, 00000000b, 00000000b
; 0x2C (,)
db 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00011000b, 00011000b, 00110000b
; 0x2D (-)
db 00000000b, 00000000b, 00000000b, 01111110b, 00000000b, 00000000b, 00000000b, 00000000b
; 0x2E (.)
db 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00011000b, 00011000b, 00000000b
; 0x2F (/)
db 00000010b, 00000110b, 00001100b, 00011000b, 00110000b, 01100000b, 11000000b, 00000000b
; 0x30-0x39 (0-9)
db 00111100b, 01100110b, 01101110b, 01110110b, 01100110b, 00111100b, 00000000b, 00000000b
db 00011000b, 00111000b, 00011000b, 00011000b, 00011000b, 00111100b, 00000000b, 00000000b
db 00111100b, 01100110b, 00001100b, 00110000b, 01100000b, 11111111b, 00000000b, 00000000b
db 00111100b, 01100110b, 00001100b, 00111100b, 00001100b, 01100110b, 00111100b, 00000000b
db 00001100b, 00011100b, 00111100b, 01101100b, 11111111b, 00001100b, 00001100b, 00000000b
db 01111111b, 01100000b, 01111100b, 00000110b, 00000110b, 01111100b, 00000000b, 00000000b
db 00111100b, 01100000b, 01111100b, 01100110b, 01100110b, 00111100b, 00000000b, 00000000b
db 01111111b, 00000110b, 00001100b, 00011000b, 00110000b, 00110000b, 00000000b, 00000000b
db 00111100b, 01100110b, 00111100b, 01100110b, 01100110b, 00111100b, 00000000b, 00000000b
db 00111100b, 01100110b, 00111110b, 00000110b, 00000110b, 00111100b, 00000000b, 00000000b
; 0x3A (:)
db 00000000b, 00000000b, 00011000b, 00000000b, 00011000b, 00000000b, 00000000b, 00000000b
; 0x3B (;)
db 00000000b, 00000000b, 00011000b, 00000000b, 00011000b, 00011000b, 00110000b, 00000000b
; 0x3C (<)
db 00001100b, 00011000b, 00110000b, 01100000b, 00110000b, 00011000b, 00001100b, 00000000b
; 0x3D (=)
db 00000000b, 00000000b, 01111110b, 00000000b, 01111110b, 00000000b, 00000000b, 00000000b
; 0x3E (>)
db 00110000b, 00011000b, 00001100b, 00000110b, 00001100b, 00011000b, 00110000b, 00000000b
; 0x3F (?)
db 00111100b, 01100110b, 00000110b, 00001100b, 00011000b, 00000000b, 00011000b, 00000000b
; 0x40 (@)
db 00111100b, 01100110b, 01101110b, 01101010b, 01101100b, 01100000b, 00111100b, 00000000b
; 0x41-0x5A (A-Z)
db 00011000b, 00111100b, 01100110b, 01100110b, 01111110b, 01100110b, 01100110b, 00000000b ; A
db 01111100b, 01100110b, 01100110b, 01111100b, 01100110b, 01100110b, 01111100b, 00000000b ; B
db 00111100b, 01100110b, 01100000b, 01100000b, 01100000b, 01100110b, 00111100b, 00000000b ; C
db 01111000b, 01101100b, 01100110b, 01100110b, 01100110b, 01101100b, 01111000b, 00000000b ; D
db 01111110b, 01100000b, 01100000b, 01111100b, 01100000b, 01100000b, 01111110b, 00000000b ; E
db 01111110b, 01100000b, 01100000b, 01111100b, 01100000b, 01100000b, 01100000b, 00000000b ; F
db 00111100b, 01100110b, 01100000b, 01100111b, 01100110b, 01100110b, 00111111b, 00000000b ; G
db 01100110b, 01100110b, 01100110b, 01111110b, 01100110b, 01100110b, 01100110b, 00000000b ; H
db 00111100b, 00011000b, 00011000b, 00011000b, 00011000b, 00011000b, 00111100b, 00000000b ; I
db 00011110b, 00001100b, 00001100b, 00001100b, 00001100b, 01101100b, 00111000b, 00000000b ; J
db 01100110b, 01101100b, 01111000b, 01110000b, 01111000b, 01101100b, 01100110b, 00000000b ; K
db 01100000b, 01100000b, 01100000b, 01100000b, 01100000b, 01100000b, 01111110b, 00000000b ; L
db 11000011b, 11100111b, 11111111b, 11011011b, 11000011b, 11000011b, 11000011b, 00000000b ; M
db 11000110b, 11100110b, 11110110b, 11011110b, 11001110b, 11000110b, 11000110b, 00000000b ; N
db 00111100b, 01100110b, 01100110b, 01100110b, 01100110b, 01100110b, 00111100b, 00000000b ; O
db 01111100b, 01100110b, 01100110b, 01111100b, 01100000b, 01100000b, 01100000b, 00000000b ; P
db 00111100b, 01100110b, 01100110b, 01100110b, 01101010b, 01100110b, 00111111b, 00000001b ; Q
db 01111100b, 01100110b, 01100110b, 01111100b, 01101100b, 01100110b, 01100110b, 00000000b ; R
db 00111110b, 01100000b, 01100000b, 00111100b, 00000110b, 00000110b, 01111100b, 00000000b ; S
db 11111111b, 00011000b, 00011000b, 00011000b, 00011000b, 00011000b, 00011000b, 00000000b ; T
db 01100110b, 01100110b, 01100110b, 01100110b, 01100110b, 01100110b, 00111100b, 00000000b ; U
db 01100110b, 01100110b, 01100110b, 01100110b, 01100110b, 00111100b, 00011000b, 00000000b ; V
db 11000011b, 11000011b, 11000011b, 11011011b, 11111111b, 11100111b, 11000011b, 00000000b ; W
db 01100110b, 01100110b, 00111100b, 00011000b, 00111100b, 01100110b, 01100110b, 00000000b ; X
db 01100110b, 01100110b, 01100110b, 00111100b, 00011000b, 00011000b, 00011000b, 00000000b ; Y
db 11111111b, 00000110b, 00001100b, 00011000b, 00110000b, 01100000b, 11111111b, 00000000b ; Z
; 0x5B-0x60
db 00111100b, 00110000b, 00110000b, 00110000b, 00110000b, 00110000b, 00111100b, 00000000b ; [
db 11000000b, 01100000b, 00110000b, 00011000b, 00001100b, 00000110b, 00000011b, 00000000b
db 00111100b, 00001100b, 00001100b, 00001100b, 00001100b, 00001100b, 00111100b, 00000000b ; ]
db 00011000b, 00111100b, 01100110b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b ; ^
db 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 11111111b ; _
db 00110000b, 00011000b, 00001100b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b ; `
; 0x61-0x7A (a-z)
db 00000000b, 00000000b, 00111100b, 00000110b, 00111110b, 01100110b, 00111110b, 00000000b ; a
db 01100000b, 01100000b, 01111100b, 01100110b, 01100110b, 01100110b, 01111100b, 00000000b ; b
db 00000000b, 00000000b, 00111100b, 01100000b, 01100000b, 01100000b, 00111100b, 00000000b ; c
db 00000110b, 00000110b, 00111110b, 01100110b, 01100110b, 01100110b, 00111110b, 00000000b ; d
db 00000000b, 00000000b, 00111100b, 01100110b, 01111110b, 01100000b, 00111100b, 00000000b ; e
db 00011100b, 00110000b, 01111100b, 00110000b, 00110000b, 00110000b, 00110000b, 00000000b ; f
db 00000000b, 00111110b, 01100110b, 01100110b, 00111110b, 00000110b, 00111100b, 00000000b ; g
db 01100000b, 01100000b, 01101100b, 01110110b, 01100110b, 01100110b, 01100110b, 00000000b ; h
db 00011000b, 00000000b, 00111000b, 00011000b, 00011000b, 00011000b, 00111100b, 00000000b ; i
db 00001100b, 00000000b, 00011100b, 00001100b, 00001100b, 00001100b, 01101100b, 00111000b ; j
db 01100000b, 01100000b, 01100110b, 01101100b, 01111000b, 01101100b, 01100110b, 00000000b ; k
db 00111000b, 00011000b, 00011000b, 00011000b, 00011000b, 00011000b, 00111100b, 00000000b ; l
db 00000000b, 00000000b, 11010110b, 11111111b, 11011011b, 11011011b, 11011011b, 00000000b ; m
db 00000000b, 00000000b, 01111100b, 01100110b, 01100110b, 01100110b, 01100110b, 00000000b ; n
db 00000000b, 00000000b, 00111100b, 01100110b, 01100110b, 01100110b, 00111100b, 00000000b ; o
db 00000000b, 00000000b, 01111100b, 01100110b, 01100110b, 01111100b, 01100000b, 01100000b ; p
db 00000000b, 00000000b, 00111110b, 01100110b, 01100110b, 00111110b, 00000110b, 00000110b ; q
db 00000000b, 00000000b, 01101100b, 01110110b, 01100000b, 01100000b, 01100000b, 00000000b ; r
db 00000000b, 00000000b, 00111110b, 01100000b, 00111100b, 00000110b, 01111100b, 00000000b ; s
db 00010000b, 00110000b, 01111100b, 00110000b, 00110000b, 00110000b, 00011100b, 00000000b ; t
db 00000000b, 00000000b, 01100110b, 01100110b, 01100110b, 01101100b, 00110110b, 00000000b ; u
db 00000000b, 00000000b, 01100110b, 01100110b, 01100110b, 00111100b, 00011000b, 00000000b ; v
db 00000000b, 00000000b, 11000011b, 11000011b, 11011011b, 11111111b, 01100110b, 00000000b ; w
db 00000000b, 00000000b, 01100110b, 00111100b, 00011000b, 00111100b, 01100110b, 00000000b ; x
db 00000000b, 00000000b, 01100110b, 01100110b, 00111110b, 00000110b, 00111100b, 00000000b ; y
db 00000000b, 00000000b, 01111110b, 00001100b, 00011000b, 00110000b, 01111110b, 00000000b ; z
; 0x7B-0x7E
db 00001100b, 00011000b, 00011000b, 00110000b, 00011000b, 00011000b, 00001100b, 00000000b ; {
db 00011000b, 00011000b, 00011000b, 00000000b, 00011000b, 00011000b, 00011000b, 00000000b ; |
db 00110000b, 00011000b, 00011000b, 00001100b, 00011000b, 00011000b, 00110000b, 00000000b ; }
db 01101110b, 11011011b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b, 00000000b ; ~

View file

@ -1,862 +1,26 @@
; ============================================================================
; Font 8x8 (printable ASCII 0x20..0x7E) -> 95 glyphs * 8 = 760 bytes
; - bit7 = gauche, bit0 = droite
; - 1 byte = 1 scanline (haut -> bas)
; ============================================================================
font8x8:
; 0x20 ' '
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x21 '!'
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
db 00011000b
db 00000000b
; 0x22 '"'
db 01100110b
db 01100110b
db 00100100b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x23 '#'
db 00100100b
db 00100100b
db 01111110b
db 00100100b
db 01111110b
db 00100100b
db 00100100b
db 00000000b
; 0x24 '$'
db 00011000b
db 00111110b
db 01100000b
db 00111100b
db 00000110b
db 01111100b
db 00011000b
db 00000000b
; 0x25 '%'
db 01100010b
db 01100110b
db 00001100b
db 00011000b
db 00110000b
db 01100110b
db 01000110b
db 00000000b
; 0x26 '&'
db 00111000b
db 01101100b
db 00111000b
db 01110110b
db 11011100b
db 11001100b
db 01110110b
db 00000000b
; 0x27 '''
db 00011000b
db 00011000b
db 00110000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x28 '('
db 00001100b
db 00011000b
db 00110000b
db 00110000b
db 00110000b
db 00011000b
db 00001100b
db 00000000b
; 0x29 ')'
db 00110000b
db 00011000b
db 00001100b
db 00001100b
db 00001100b
db 00011000b
db 00110000b
db 00000000b
; 0x2A '*'
db 00000000b
db 01100110b
db 00111100b
db 11111111b
db 00111100b
db 01100110b
db 00000000b
db 00000000b
; 0x2B '+'
db 00000000b
db 00011000b
db 00011000b
db 01111110b
db 00011000b
db 00011000b
db 00000000b
db 00000000b
; 0x2C ','
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00110000b
; 0x2D '-'
db 00000000b
db 00000000b
db 00000000b
db 01111110b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x2E '.'
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00000000b
; 0x2F '/'
db 00000110b
db 00001100b
db 00011000b
db 00110000b
db 01100000b
db 11000000b
db 10000000b
db 00000000b
; 0x30 '0'
db 00111100b
db 01100110b
db 01101110b
db 01110110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x31 '1'
db 00011000b
db 00111000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x32 '2'
db 00111100b
db 01100110b
db 00000110b
db 00001100b
db 00011000b
db 00110000b
db 01111110b
db 00000000b
; 0x33 '3'
db 00111100b
db 01100110b
db 00000110b
db 00011100b
db 00000110b
db 01100110b
db 00111100b
db 00000000b
; 0x34 '4'
db 00001100b
db 00011100b
db 00111100b
db 01101100b
db 01111110b
db 00001100b
db 00001100b
db 00000000b
; 0x35 '5'
db 01111110b
db 01100000b
db 01111100b
db 00000110b
db 00000110b
db 01100110b
db 00111100b
db 00000000b
; 0x36 '6'
db 00011100b
db 00110000b
db 01100000b
db 01111100b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x37 '7'
db 01111110b
db 01100110b
db 00000110b
db 00001100b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x38 '8'
db 00111100b
db 01100110b
db 01100110b
db 00111100b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x39 '9'
db 00111100b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00001100b
db 00111000b
db 00000000b
; 0x3A ':'
db 00000000b
db 00011000b
db 00011000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00000000b
; 0x3B ';'
db 00000000b
db 00011000b
db 00011000b
db 00000000b
db 00000000b
db 00011000b
db 00011000b
db 00110000b
; 0x3C '<'
db 00001110b
db 00011100b
db 00111000b
db 01110000b
db 00111000b
db 00011100b
db 00001110b
db 00000000b
; 0x3D '='
db 00000000b
db 00000000b
db 01111110b
db 00000000b
db 01111110b
db 00000000b
db 00000000b
db 00000000b
; 0x3E '>'
db 01110000b
db 00111000b
db 00011100b
db 00001110b
db 00011100b
db 00111000b
db 01110000b
db 00000000b
; 0x3F '?'
db 00111100b
db 01100110b
db 00000110b
db 00001100b
db 00011000b
db 00000000b
db 00011000b
db 00000000b
; 0x40 '@'
db 00111100b
db 01100110b
db 01101110b
db 01101010b
db 01101110b
db 01100000b
db 00111100b
db 00000000b
; 0x41 'A'
db 00011000b
db 00111100b
db 01100110b
db 01100110b
db 01111110b
db 01100110b
db 01100110b
db 00000000b
; 0x42 'B'
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 00000000b
; 0x43 'C'
db 00111100b
db 01100110b
db 01100000b
db 01100000b
db 01100000b
db 01100110b
db 00111100b
db 00000000b
; 0x44 'D'
db 01111000b
db 01101100b
db 01100110b
db 01100110b
db 01100110b
db 01101100b
db 01111000b
db 00000000b
; 0x45 'E'
db 01111110b
db 01100000b
db 01100000b
db 01111100b
db 01100000b
db 01100000b
db 01111110b
db 00000000b
; 0x46 'F'
db 01111110b
db 01100000b
db 01100000b
db 01111100b
db 01100000b
db 01100000b
db 01100000b
db 00000000b
; 0x47 'G'
db 00111100b
db 01100110b
db 01100000b
db 01101110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x48 'H'
db 01100110b
db 01100110b
db 01100110b
db 01111110b
db 01100110b
db 01100110b
db 01100110b
db 00000000b
; 0x49 'I'
db 00111100b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x4A 'J'
db 00011110b
db 00001100b
db 00001100b
db 00001100b
db 00001100b
db 01101100b
db 00111000b
db 00000000b
; 0x4B 'K'
db 01100110b
db 01101100b
db 01111000b
db 01110000b
db 01111000b
db 01101100b
db 01100110b
db 00000000b
; 0x4C 'L'
db 01100000b
db 01100000b
db 01100000b
db 01100000b
db 01100000b
db 01100000b
db 01111110b
db 00000000b
; 0x4D 'M'
db 01100011b
db 01110111b
db 01111111b
db 01101011b
db 01100011b
db 01100011b
db 01100011b
db 00000000b
; 0x4E 'N'
db 01100110b
db 01110110b
db 01111110b
db 01111110b
db 01101110b
db 01100110b
db 01100110b
db 00000000b
; 0x4F 'O'
db 00111100b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x50 'P'
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01100000b
db 01100000b
db 01100000b
db 00000000b
; 0x51 'Q'
db 00111100b
db 01100110b
db 01100110b
db 01100110b
db 01101110b
db 00111100b
db 00001110b
db 00000000b
; 0x52 'R'
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01111000b
db 01101100b
db 01100110b
db 00000000b
; 0x53 'S'
db 00111100b
db 01100110b
db 01100000b
db 00111100b
db 00000110b
db 01100110b
db 00111100b
db 00000000b
; 0x54 'T'
db 01111110b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x55 'U'
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x56 'V'
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00000000b
; 0x57 'W'
db 01100011b
db 01100011b
db 01100011b
db 01101011b
db 01111111b
db 01110111b
db 01100011b
db 00000000b
; 0x58 'X'
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00111100b
db 01100110b
db 01100110b
db 00000000b
; 0x59 'Y'
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x5A 'Z'
db 01111110b
db 00000110b
db 00001100b
db 00011000b
db 00110000b
db 01100000b
db 01111110b
db 00000000b
; 0x5B '['
db 00111100b
db 00110000b
db 00110000b
db 00110000b
db 00110000b
db 00110000b
db 00111100b
db 00000000b
; 0x5C '\'
db 11000000b
db 01100000b
db 00110000b
db 00011000b
db 00001100b
db 00000110b
db 00000010b
db 00000000b
; 0x5D ']'
db 00111100b
db 00001100b
db 00001100b
db 00001100b
db 00001100b
db 00001100b
db 00111100b
db 00000000b
; 0x5E '^'
db 00010000b
db 00111000b
db 01101100b
db 11000110b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x5F '_'
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 11111111b
db 00000000b
; 0x60 '`'
db 00110000b
db 00011000b
db 00001100b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; 0x61 'a'
db 00000000b
db 00000000b
db 00111100b
db 00000110b
db 00111110b
db 01100110b
db 00111110b
db 00000000b
; 0x62 'b'
db 01100000b
db 01100000b
db 01111100b
db 01100110b
db 01100110b
db 01100110b
db 01111100b
db 00000000b
; 0x63 'c'
db 00000000b
db 00000000b
db 00111100b
db 01100110b
db 01100000b
db 01100110b
db 00111100b
db 00000000b
; 0x64 'd'
db 00000110b
db 00000110b
db 00111110b
db 01100110b
db 01100110b
db 01100110b
db 00111110b
db 00000000b
; 0x65 'e'
db 00000000b
db 00000000b
db 00111100b
db 01100110b
db 01111110b
db 01100000b
db 00111100b
db 00000000b
; 0x66 'f'
db 00011100b
db 00110000b
db 00110000b
db 01111100b
db 00110000b
db 00110000b
db 00110000b
db 00000000b
; 0x67 'g'
db 00000000b
db 00000000b
db 00111110b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00111100b
; 0x68 'h'
db 01100000b
db 01100000b
db 01111100b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00000000b
; 0x69 'i'
db 00011000b
db 00000000b
db 00111000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x6A 'j'
db 00001100b
db 00000000b
db 00001100b
db 00001100b
db 00001100b
db 01101100b
db 01101100b
db 00111000b
; 0x6B 'k'
db 01100000b
db 01100000b
db 01100110b
db 01101100b
db 01111000b
db 01101100b
db 01100110b
db 00000000b
; 0x6C 'l'
db 00111000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00011000b
db 00111100b
db 00000000b
; 0x6D 'm'
db 00000000b
db 00000000b
db 01101100b
db 01111110b
db 01111110b
db 01101011b
db 01100011b
db 00000000b
; 0x6E 'n'
db 00000000b
db 00000000b
db 01111100b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00000000b
; 0x6F 'o'
db 00000000b
db 00000000b
db 00111100b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00000000b
; 0x70 'p'
db 00000000b
db 00000000b
db 01111100b
db 01100110b
db 01100110b
db 01111100b
db 01100000b
db 01100000b
; 0x71 'q'
db 00000000b
db 00000000b
db 00111110b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00000110b
; 0x72 'r'
db 00000000b
db 00000000b
db 01101100b
db 01110110b
db 01100000b
db 01100000b
db 01100000b
db 00000000b
; 0x73 's'
db 00000000b
db 00000000b
db 00111110b
db 01100000b
db 00111100b
db 00000110b
db 01111100b
db 00000000b
; 0x74 't'
db 00110000b
db 00110000b
db 01111100b
db 00110000b
db 00110000b
db 00110000b
db 00011100b
db 00000000b
; 0x75 'u'
db 00000000b
db 00000000b
db 01100110b
db 01100110b
db 01100110b
db 01100110b
db 00111110b
db 00000000b
; 0x76 'v'
db 00000000b
db 00000000b
db 01100110b
db 01100110b
db 01100110b
db 00111100b
db 00011000b
db 00000000b
; 0x77 'w'
db 00000000b
db 00000000b
db 01100011b
db 01100011b
db 01101011b
db 01111111b
db 00110110b
db 00000000b
; 0x78 'x'
db 00000000b
db 00000000b
db 01100110b
db 00111100b
db 00011000b
db 00111100b
db 01100110b
db 00000000b
; 0x79 'y'
db 00000000b
db 00000000b
db 01100110b
db 01100110b
db 01100110b
db 00111110b
db 00000110b
db 00111100b
; 0x7A 'z'
db 00000000b
db 00000000b
db 01111110b
db 00001100b
db 00011000b
db 00110000b
db 01111110b
db 00000000b
; 0x7B '{'
db 00001110b
db 00011000b
db 00011000b
db 01110000b
db 00011000b
db 00011000b
db 00001110b
db 00000000b
; 0x7C '|'
db 00011000b
db 00011000b
db 00011000b
db 00000000b
db 00011000b
db 00011000b
db 00011000b
db 00000000b
; 0x7D '}'
db 01110000b
db 00011000b
db 00011000b
db 00001110b
db 00011000b
db 00011000b
db 01110000b
db 00000000b
; 0x7E '~'
db 01110110b
db 11011100b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
; =============================================================================
; Project : Custom BIOS / ROM
; File : chartable.asm
; Author : frater
;
; License : GNU General Public License v3.0 or later (GPL-3.0+)
;
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program. If not, see <https://www.gnu.org/licenses/>.
;
; =============================================================================
font8x8:
; on importe uniquement les caractères entre ' ' (0x20) et '~' (0x7E)
incbin "./assets/FM-T-437.F08", 0x20*8, 0x7e*8
;incbin "./assets/CGA-TH.F08", 0x20*8, 0x7e*8