starting VGA driver
This commit is contained in:
parent
fcb968beb2
commit
0775fe6193
13 changed files with 1528 additions and 682 deletions
|
|
@ -24,11 +24,9 @@
|
|||
; https://wiki.nox-rhea.org/back2root/ibm-pc-ms-dos/hardware/informations/bios_data_area
|
||||
;
|
||||
|
||||
%define BDA_SEGMENT 0x0040 ; segment BDA
|
||||
|
||||
; custom vars
|
||||
%define BDA_INFO_MEM_SIZE 0x0014 ; Memory size in Kbytes
|
||||
%define BDA_INFO_MEM_SEG BDA_INFO_MEM_SIZE+2 ; highest Memory Segment
|
||||
%define BDA_SEGMENT 0x0040 ; segment BDA (historically)
|
||||
%define BDA_CUSTOM_SEG 0x0050 ; custom data (mouse, gfx cursor, etc..)
|
||||
%define BDA_GUI_WIDGET 0x0070 ; Segment de données UI (Safe: après Stack, avant Heap)
|
||||
|
||||
; video related information (compatible with VGA bios)
|
||||
%define BDA_VIDEO_CURR_MODE 0x0049
|
||||
|
|
@ -38,7 +36,8 @@
|
|||
;
|
||||
; information relative à la souris
|
||||
;
|
||||
%define BDA_DATA_SEG 0x0050
|
||||
|
||||
%define BDA_BitPP 4
|
||||
|
||||
%define BKG_DWORDS_PER_LINE 1 ; 1 dword stocké par ligne
|
||||
%define BKG_LINES 16
|
||||
|
|
@ -63,7 +62,8 @@ struc mouse
|
|||
.cur_ofs resw 1 ;
|
||||
.bkg_saved resb 1 ; background saved
|
||||
alignb 4 ; alignement 4 bytes
|
||||
.bkg_buffer resd 16 ; buffer for saved background
|
||||
; buffer for saved background
|
||||
.bkg_buffer resd 16*BDA_BitPP
|
||||
endstruc
|
||||
|
||||
struc gfx
|
||||
|
|
@ -86,7 +86,7 @@ bda_setup:
|
|||
pusha
|
||||
push ds
|
||||
|
||||
mov ax, BDA_DATA_SEG
|
||||
mov ax, BDA_CUSTOM_SEG
|
||||
mov es, ax
|
||||
|
||||
mov ax, 0x5F
|
||||
|
|
|
|||
|
|
@ -42,8 +42,7 @@ dump_ram_words:
|
|||
call print_word_hex ; Affiche AX sous forme "XXXX"
|
||||
|
||||
; (Optionnel) Ajouter un espace entre chaque mot pour la lisibilité
|
||||
mov al, ' '
|
||||
call cga_putc
|
||||
GFX PUTCH, ' '
|
||||
|
||||
pop si ; Restaure SI
|
||||
pop cx ; Restaure CX
|
||||
|
|
@ -77,9 +76,7 @@ print_word_hex:
|
|||
|
||||
xor bx, bx
|
||||
mov bl, al
|
||||
push bx
|
||||
call cga_putc
|
||||
add sp, 2
|
||||
GFX PUTCH, bx
|
||||
loop .next_digit ; Répète 4 fois
|
||||
|
||||
popa
|
||||
|
|
@ -20,16 +20,12 @@
|
|||
;
|
||||
; =============================================================================
|
||||
|
||||
%define DISABLE_DEBUGER
|
||||
|
||||
%ifndef DISABLE_DEBUGER
|
||||
|
||||
%ifdef DEBUGER_ENABLED
|
||||
%macro DEBUG 1
|
||||
GFX GOTOXY, 0, 0
|
||||
mov ax, %1
|
||||
call print_word_hex
|
||||
%endmacro
|
||||
|
||||
;
|
||||
; Debugger for 86Box
|
||||
;
|
||||
|
|
@ -111,6 +107,26 @@
|
|||
%define IRQ_ENABLED 0x00
|
||||
%define IRQ_DISABLED 0x01
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; CGA/MDA Controler
|
||||
; ---------------------------------------------------------------------------
|
||||
;
|
||||
; MDA 6845
|
||||
%define CRTC_6845_MONO 0x03b4
|
||||
%define CRTC_6845_MONO_REGISTER 0x03b5
|
||||
;
|
||||
; CGA 6845
|
||||
%define CRTC_6845_COLOR 0x03d4
|
||||
%define CRTC_6845_COLOR_REGISTER 0x03d4
|
||||
%define CRTC_COLOR_REGISTER 0x03d5
|
||||
|
||||
%define CRTC_COLOR_CTRL 0x03d8
|
||||
%define CRTC_COLOR_DATA 0x03d9
|
||||
|
||||
%define EGAVGA_CONTROLLER 0x03ce
|
||||
|
||||
%define VGA_SEQUENCER 0x03c4
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Détection les ROM supplementaires
|
||||
; Teste la RAM de 0xC000 jusqu’à 0xE000, par pas de 2KB.
|
||||
|
|
|
|||
|
|
@ -13,9 +13,16 @@
|
|||
|
||||
align 8
|
||||
pattern_8x8:
|
||||
dq 0x0000000000000000 ; pattern_black (Tout à 0 = Noir)
|
||||
dq 0x2200880022008800 ; pattern_gray_dark (Majorité de 0)
|
||||
dq 0x2288228822882288 ; pattern_gray_mid
|
||||
dq 0xAA55AA55AA55AA55 ; pattern_gray_light (50/50)
|
||||
dq 0x77DD77DD77DD77DD ; pattern_white_light (Majorité de 1 = Clair)
|
||||
dq 0xFFFFFFFFFFFFFFFF ; pattern_white (Tout à 1 = Blanc)
|
||||
dq 0x0000000000000000 ; 0 : pattern_black (Tout à 0 = Noir)
|
||||
dq 0x2200880022008800 ; 1 : pattern_gray_dark (Majorité de 0)
|
||||
dq 0x2288228822882288 ; 2 : pattern_gray_mid
|
||||
dq 0xAA55AA55AA55AA55 ; 3 : pattern_gray_light (50/50)
|
||||
dq 0x77DD77DD77DD77DD ; 4 : pattern_white_light (Majorité de 1 = Clair)
|
||||
dq 0xFFFFFFFFFFFFFFFF ; 5 : pattern_white (Tout à 1 = Blanc)
|
||||
|
||||
|
||||
%macro PATTERN_PTR 1
|
||||
mov ax, cs
|
||||
mov ds, ax
|
||||
lea esi, [pattern_8x8 + (%1 * 8)]
|
||||
%endmacro
|
||||
Loading…
Reference in a new issue