starting VGA driver
This commit is contained in:
parent
fcb968beb2
commit
0775fe6193
13 changed files with 1528 additions and 682 deletions
105
src/boot.asm
105
src/boot.asm
|
|
@ -29,13 +29,9 @@
|
|||
|
||||
; initial stack
|
||||
%define STACK_SEG 0x0800 ; segment de base
|
||||
%define GFX_DRIVERS 'VGA'
|
||||
|
||||
;section .text
|
||||
; bits 16
|
||||
;
|
||||
; db 'EXTRA CODE Section',0
|
||||
;
|
||||
; times 0xFFFF - ($ - $$) db 0xFF
|
||||
%define DEBUGER_ENABLED
|
||||
|
||||
section .text
|
||||
bits 16
|
||||
|
|
@ -50,15 +46,20 @@ section .text
|
|||
%include "./common/bda.asm"
|
||||
|
||||
; drivers
|
||||
%include "./drivers/gfx_cgam.asm"
|
||||
%if GFX_DRIVERS == 'VGA'
|
||||
%include "./drivers/gfx_vga.asm"
|
||||
%else
|
||||
; default drivers
|
||||
%include "./drivers/gfx_cgam.asm"
|
||||
%endif
|
||||
|
||||
%include "./drivers/mouse_ps2.asm"
|
||||
%include "./drivers/keyboard_ps2.asm"
|
||||
|
||||
%include "./common/debug_cga.asm"
|
||||
%include "./common/debug_gfx.asm"
|
||||
|
||||
; GUI
|
||||
%include "./gui/lib.asm"
|
||||
%include "./gui/draw.asm"
|
||||
; %include "./gui/lib-api.asm"
|
||||
|
||||
; --- Données texte ---
|
||||
str_quit db "Quitter", 0
|
||||
|
|
@ -86,24 +87,12 @@ entrycode:
|
|||
mov ax,i8259_MASTER_INT
|
||||
|
||||
call ivt_setvector
|
||||
|
||||
ISADBG ISA_GREEN, 2
|
||||
|
||||
; initialisation des PIC 8259A
|
||||
call pic_init
|
||||
|
||||
ISADBG ISA_GREEN, 4
|
||||
|
||||
; load Roms
|
||||
call setup_load_rom
|
||||
|
||||
ISADBG ISA_GREEN, 8
|
||||
|
||||
; on vérifie que le BIOS VGA a installé une INT 10h
|
||||
call setup_check_vga
|
||||
|
||||
ISADBG ISA_GREEN, 16
|
||||
|
||||
; enable IRQ 0
|
||||
mov ah,IRQ_ENABLED
|
||||
mov al,0
|
||||
|
|
@ -112,19 +101,18 @@ entrycode:
|
|||
call kbd_init
|
||||
sti
|
||||
|
||||
DEBUG 0xFADE
|
||||
|
||||
ISADBG ISA_GREEN, 32
|
||||
|
||||
; on active le mode graphique
|
||||
GFX INIT
|
||||
call mouse_init
|
||||
call mouse_reset
|
||||
|
||||
; call mouse_init
|
||||
|
||||
GFX MOUSE_MOVE
|
||||
ISADBG ISA_RED, 0x80
|
||||
|
||||
GFX MOUSE_SHOW
|
||||
|
||||
ISADBG ISA_RED, 0x81
|
||||
|
||||
.loops:
|
||||
|
|
@ -155,71 +143,14 @@ main_loop:
|
|||
ISADBG ISA_LEFT, 1
|
||||
|
||||
; Init du système GUI
|
||||
call gui_init_system
|
||||
; call gui_init_system
|
||||
|
||||
|
||||
DEBUG 2
|
||||
ISADBG ISA_LEFT, 2
|
||||
|
||||
; --- CRÉATION DYNAMIQUE DES BOUTONS ---
|
||||
|
||||
; Créer Bouton 1 "QUITTER"
|
||||
GUI OBJ_CREATE, OBJ_TYPE_BUTTON_ROUNDED, 10, 10, 80, 16
|
||||
GUI OBJ_SET_TEXT, ax, cs, str_quit
|
||||
; Créer Bouton 2 "HELLO"
|
||||
GUI OBJ_CREATE, OBJ_TYPE_BUTTON_ROUNDED, 100, 50, 80, 16
|
||||
GUI OBJ_SET_TEXT, ax, cs, str_hello
|
||||
; Créer checkbox 3 "option 1"
|
||||
GUI OBJ_CREATE, OBJ_TYPE_CHECKBOX, 200, 50, 100, 15
|
||||
GUI OBJ_SET_TEXT, ax, cs, str_option1
|
||||
|
||||
GUI OBJ_CREATE, OBJ_TYPE_CHECKBOX, 200, 50+16, 100, 15
|
||||
GUI OBJ_SET_TEXT, ax, cs, str_option2
|
||||
|
||||
GUI OBJ_CREATE, OBJ_TYPE_CHECKBOX, 200, 50+16*2, 100, 15
|
||||
GUI OBJ_SET_TEXT, ax, cs, str_option3
|
||||
|
||||
DEBUG 3
|
||||
ISADBG ISA_LEFT, 3
|
||||
|
||||
; 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
|
||||
|
||||
GUI OBJ_CREATE, OBJ_TYPE_SLIDER, 400, 10, 16, 150
|
||||
mov .my_slider, ax
|
||||
|
||||
GUI OBJ_SET_MODE, .my_slider, SLIDER_VERTICAL
|
||||
GUI OBJ_SLIDER_SET_ATTR, .my_slider, 0, 15, 15, 12
|
||||
|
||||
mov .oldval, 0x1256
|
||||
mov .value, 0xFADE
|
||||
|
||||
DEBUG 4
|
||||
ISADBG ISA_LEFT, 4
|
||||
|
||||
.loop:
|
||||
call gui_process_all
|
||||
GUI OBJ_GET_VAL, .my_slider
|
||||
mov .value, ax
|
||||
|
||||
cmp ax,.oldval
|
||||
je .loop
|
||||
|
||||
; debug
|
||||
mov .oldval, ax
|
||||
GFX RECTANGLE_FILL,0,148,50,166, PATTERN_WHITE
|
||||
GFX GOTOXY, 8, 150
|
||||
|
||||
mov ax, .value
|
||||
call print_word_hex
|
||||
; end debug
|
||||
|
||||
mov dx, 0x3d9
|
||||
mov ax, .value
|
||||
and ax, 0x000F
|
||||
out dx, al
|
||||
.loop:
|
||||
; call gui_process_all
|
||||
|
||||
jmp .loop
|
||||
leave
|
||||
|
|
@ -232,7 +163,7 @@ timer_isr:
|
|||
push ax
|
||||
|
||||
push fs
|
||||
mov ax,BDA_DATA_SEG
|
||||
mov ax,BDA_CUSTOM_SEG
|
||||
mov fs,ax
|
||||
; exemple de fonctionnement:
|
||||
; inc byte [fs:BDA_TIMER]
|
||||
|
|
|
|||
Loading…
Reference in a new issue