add binary font + fixing error
This commit is contained in:
parent
36e72bb399
commit
413f4b6f79
9 changed files with 1078 additions and 914 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -9,3 +9,4 @@ gfx/
|
|||
roms/
|
||||
tools/
|
||||
doc/generated
|
||||
assets/
|
||||
|
|
|
|||
22
src/boot.asm
22
src/boot.asm
|
|
@ -65,11 +65,11 @@ section .text
|
|||
%include "./gui/lib-api.asm"
|
||||
|
||||
; --- Données texte ---
|
||||
str_quit db "Quitter", 0
|
||||
str_quit db "Quit", 0
|
||||
str_hello db "Hello", 0
|
||||
str_option1 db "option 1", 0
|
||||
str_option2 db "option 2", 0
|
||||
str_option3 db "option 3", 0
|
||||
str_option1 db "option A", 0
|
||||
str_option2 db "option BA", 0
|
||||
str_option3 db "option BBA", 0
|
||||
|
||||
entrycode:
|
||||
cli
|
||||
|
|
@ -81,8 +81,6 @@ entrycode:
|
|||
call ivt_setup ; configuration d'une table d'interruption "dummy"
|
||||
call bda_setup ; initialisation du BDA
|
||||
|
||||
ISADBG ISA_GREEN, 1
|
||||
|
||||
; Install IRQ 0 : timer_isr
|
||||
mov ax,cs
|
||||
mov dx,ax
|
||||
|
|
@ -106,8 +104,7 @@ entrycode:
|
|||
; on active le mode graphique
|
||||
GFX INIT
|
||||
call mouse_init
|
||||
GFX MOUSE_SHOW
|
||||
|
||||
GFX MOUSE_SHOW
|
||||
|
||||
call main_loop
|
||||
.loops:
|
||||
|
|
@ -123,12 +120,8 @@ on_click_quit:
|
|||
on_click_hello:
|
||||
ret
|
||||
|
||||
|
||||
main_test:
|
||||
; GFX RECTANGLE_FILL, 10,10,50,20, PATTERN_WHITE, 15, 0
|
||||
|
||||
|
||||
|
||||
; GUI OBJ_CREATE, OBJ_TYPE_CHECKBOX, 200, 50, 100, 15
|
||||
mov ax, 200
|
||||
add ax, 4
|
||||
|
|
@ -197,8 +190,9 @@ main_loop:
|
|||
|
||||
; Créer Slider (Drag)
|
||||
GUI OBJ_CREATE, OBJ_TYPE_SLIDER, 10, 100, 150, 12
|
||||
GUI OBJ_SET_MODE, ax, SLIDER_HORIZONTAL
|
||||
GUI OBJ_SLIDER_SET_ATTR, ax, 10, 140, 10, 15
|
||||
mov .my_slider, ax
|
||||
GUI OBJ_SET_MODE, .my_slider, SLIDER_HORIZONTAL
|
||||
GUI OBJ_SLIDER_SET_ATTR, .my_slider, 10, 140, 10, 15
|
||||
|
||||
GUI OBJ_CREATE, OBJ_TYPE_SLIDER, 400, 10, 16, 150
|
||||
mov .my_slider, ax
|
||||
|
|
|
|||
862
src/common/char_bold.asm
Normal file
862
src/common/char_bold.asm
Normal 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
142
src/common/char_light.asm
Normal 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 ; ~
|
||||
|
|
@ -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
|
||||
|
|
@ -37,10 +37,10 @@
|
|||
; E : text transparent
|
||||
; F : background transparent
|
||||
;
|
||||
%define GFX_TXT_WHITE_TRANSPARENT 0x0F
|
||||
%define GFX_TXT_BLACK_TRANSPARENT 0x00
|
||||
%define GFX_TXT_WHITE 0xF0
|
||||
%define GFX_TXT_BLACK 0x0F
|
||||
%define GFX_TXT_WHITE_TRANSPARENT 0x800F
|
||||
%define GFX_TXT_BLACK_TRANSPARENT 0x80F0
|
||||
%define GFX_TXT_WHITE 0x00F0
|
||||
%define GFX_TXT_BLACK 0x000F
|
||||
|
||||
%define GFX_TXT_TRANSPARENT_BKG 0x8000
|
||||
%define GFX_TXT_TRANSPARENT_TEXT 0x4000
|
||||
|
|
@ -160,14 +160,14 @@ vga_init:
|
|||
get_glyph_offset:
|
||||
cmp al, 0x20
|
||||
jb .qmark ; al < 20h (' '
|
||||
cmp al, 0x7E
|
||||
cmp al, 0x7e
|
||||
ja .qmark ; al > 7Eh ('~')
|
||||
sub al, 0x20
|
||||
sub al, ' '
|
||||
jmp .ok
|
||||
|
||||
.qmark:
|
||||
mov al, '?'
|
||||
sub al, 0x20
|
||||
sub al, ' '
|
||||
|
||||
.ok:
|
||||
xor ah, ah
|
||||
|
|
@ -383,6 +383,7 @@ vga_putc:
|
|||
mov bl, al ; BL = Couleur texte (low nibble)
|
||||
and bl, 0x0F
|
||||
mov bh, al ; BH = Couleur fond (high nibble)
|
||||
and bh, 0xf0
|
||||
shr bh, 4
|
||||
|
||||
mov .cpt, 8
|
||||
|
|
@ -394,11 +395,9 @@ vga_putc:
|
|||
mov .glyph_row, ax ; Image 16 bits du glyphe non décalé
|
||||
|
||||
; --- PASSE 1 : DESSIN DU FOND (SI OPAQUE) ---
|
||||
mov ax, [fs:PTR_GFX + gfx.cur_mode]
|
||||
test ax, GFX_TXT_TRANSPARENT_BKG
|
||||
jz .skip_bkg
|
||||
test word [fs:PTR_GFX + gfx.cur_mode], GFX_TXT_TRANSPARENT_BKG
|
||||
jnz .skip_bkg
|
||||
|
||||
mov ax, .glyph_row
|
||||
not al ; Inverser le glyphe pour le fond
|
||||
ror ax, cl ; Aligner le fond sur les octets VRAM
|
||||
|
||||
|
|
@ -422,8 +421,7 @@ vga_putc:
|
|||
.skip_bkg:
|
||||
|
||||
; --- PASSE 2 : DESSIN DU TEXTE ---
|
||||
mov ax, [fs:PTR_GFX + gfx.cur_mode]
|
||||
test ax, GFX_TXT_TRANSPARENT_TEXT
|
||||
test word [fs:PTR_GFX + gfx.cur_mode], GFX_TXT_TRANSPARENT_TEXT
|
||||
jnz .next_line
|
||||
|
||||
mov ax, .glyph_row
|
||||
|
|
|
|||
|
|
@ -85,33 +85,39 @@ gui_api_table:
|
|||
dw gui_get_widget_ptr
|
||||
dw gui_api_slider_attr
|
||||
|
||||
|
||||
; --- Structure d'un OBJET (Bouton, etc) ---
|
||||
struc widget
|
||||
.header resw 1 ; HEADER
|
||||
.state resb 1 ; État (0=libre, >0=utilisé)
|
||||
.type resb 1 ; Type (0=Button, 1=Slider...)
|
||||
.oldstate resb 1 ; widget a-t-il été modifié ?
|
||||
.user_id resb 1 ; ID unique utilisateur
|
||||
.x resw 1 ; Position X
|
||||
.x resw 1 ; Position Xevent_drag
|
||||
.y resw 1 ; Position Y
|
||||
.x2 resw 1 ; Position X2 calculée
|
||||
.y2 resw 1 ; Position Y2 calculée
|
||||
.w resw 1 ; Largeur
|
||||
.h resw 1 ; Hauteur
|
||||
; texte du widget
|
||||
.text_ofs resw 1 ; Offset du texte
|
||||
.text_seg resw 1 ; Segment du texte
|
||||
.event_click resw 1 ; adresse de la fonction "on click"
|
||||
.event_drag resw 1 ; adresse de la fonction "on drag"
|
||||
|
||||
; global attributes
|
||||
.attr_mode resb 1 ; 0=None, 1=Horiz, 2=Vert
|
||||
.attr_free resb 1 ; free
|
||||
.attr_min resw 1 ; Valeur/Position Min
|
||||
.attr_max resw 1 ; Valeur/Position Max
|
||||
.attr_val resw 1 ; Valeur/Position Actuelle
|
||||
|
||||
; internal values
|
||||
.x2 resw 1 ; Position X2 calculée
|
||||
.y2 resw 1 ; Position Y2 calculée
|
||||
|
||||
; slider only
|
||||
.thumb_pos resw 1 ; Valeur/Position Actuelle en pixel pour le dessin.
|
||||
.thumb_pct resb 1 ; Taille du curseur en % (1-100)
|
||||
|
||||
.attr_anchor resw 1 ; interne Offset pour le drag
|
||||
|
||||
; event handler
|
||||
.event_click resw 1 ; adresse de la fonction "on click"
|
||||
alignb 2 ; Alignement mémoire pour performance
|
||||
endstruc
|
||||
; actuellement 34 octets
|
||||
|
|
@ -226,12 +232,12 @@ gui_api_set_text:
|
|||
;
|
||||
; parameters : type, x, y, w, h, text_ofs, text_seg
|
||||
;
|
||||
; -----------------------------------------------------------------------------
|
||||
%define .type word [bp+4]
|
||||
%define .x word [bp+6]
|
||||
%define .y word [bp+8]
|
||||
%define .w word [bp+10]
|
||||
%define .h word [bp+12]
|
||||
; -----------------------------------------------------------------------------
|
||||
gui_api_create:
|
||||
push bp
|
||||
mov bp, sp
|
||||
|
|
@ -239,8 +245,8 @@ gui_api_create:
|
|||
|
||||
mov ax, SEG_GUI
|
||||
mov gs, ax
|
||||
call gui_alloc_widget ; Returns GS:SI
|
||||
mov ax, -1
|
||||
call gui_alloc_widget ; Returns GS:SI
|
||||
jc .done
|
||||
|
||||
; ID = SI / widget_size
|
||||
|
|
@ -249,6 +255,9 @@ gui_api_create:
|
|||
mov cx, widget_size
|
||||
div cx
|
||||
|
||||
mov bx, 0xDEAD
|
||||
mov word [gs:si + widget.header], bx
|
||||
|
||||
mov bx, .type
|
||||
mov byte [gs:si + widget.type], bl
|
||||
mov bx, .x
|
||||
|
|
@ -262,15 +271,16 @@ gui_api_create:
|
|||
|
||||
mov byte [gs:si + widget.state], GUI_STATE_NORMAL
|
||||
mov byte [gs:si + widget.oldstate], 0
|
||||
.done:
|
||||
.done:
|
||||
pop gs
|
||||
leave
|
||||
%undef .type
|
||||
%undef .x
|
||||
%undef .y
|
||||
%undef .w
|
||||
%undef .h
|
||||
ret
|
||||
%undef .type
|
||||
%undef .x
|
||||
%undef .y
|
||||
%undef .w
|
||||
%undef .h
|
||||
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; gui_api_get_state
|
||||
|
|
@ -430,7 +440,7 @@ gui_get_widget_ptr:
|
|||
; Out: GS:SI = Ptr, CF=1 if error
|
||||
; -----------------------------------------------------------------------------
|
||||
gui_get_widget_ptr_internal:
|
||||
push cx
|
||||
push cx
|
||||
push dx
|
||||
|
||||
cmp ax, GUI_MAX_WIDGETS
|
||||
|
|
@ -511,6 +521,7 @@ gui_alloc_widget:
|
|||
|
||||
; Pas trouvé (Plein)
|
||||
stc ; set Carry Flag : erreur
|
||||
mov ax, -1
|
||||
jmp .done
|
||||
|
||||
.found:
|
||||
|
|
@ -521,7 +532,6 @@ gui_alloc_widget:
|
|||
|
||||
; Reset des champs critiques pour éviter les déchets
|
||||
mov word [gs:si + widget.event_click], 0
|
||||
mov word [gs:si + widget.event_drag], 0
|
||||
mov byte [gs:si + widget.thumb_pct], 10 ; 10% par défaut
|
||||
mov word [gs:si + widget.thumb_pos], 0
|
||||
mov word [gs:si + widget.attr_val], 0
|
||||
|
|
|
|||
|
|
@ -487,7 +487,7 @@ draw_checkbox:
|
|||
inc bx
|
||||
|
||||
GFX GOTOXY, cx, bx
|
||||
GFX TXT_MODE, GFX_TXT_BLACK & GFX_TXT_TRANSPARENT_BKG
|
||||
GFX TXT_MODE, GFX_TXT_BLACK_TRANSPARENT
|
||||
mov dx, [gs:si + widget.text_seg]
|
||||
mov ax, [gs:si + widget.text_ofs]
|
||||
|
||||
|
|
|
|||
|
|
@ -486,14 +486,7 @@ gui_logic_slider:
|
|||
je .no_change
|
||||
mov [gs:si + widget.thumb_pos], ax
|
||||
|
||||
; Appel du callback on_drag
|
||||
cmp word [gs:si + widget.event_drag], 0
|
||||
je .force_redraw
|
||||
pusha
|
||||
call word [gs:si + widget.event_drag]
|
||||
popa
|
||||
|
||||
.force_redraw:
|
||||
.force_redraw:
|
||||
mov byte [gs:si + widget.oldstate], 255 ; Force le redessin
|
||||
|
||||
.no_change:
|
||||
|
|
|
|||
Loading…
Reference in a new issue