forked from KolibriOS/kolibrios
kernel: removed unnecessary duplication of BOOT_VAR
git-svn-id: svn://kolibrios.org@3732 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
976e2d52bf
commit
f03da1efd4
@ -101,17 +101,17 @@ pci_api_drv:
|
||||
|
||||
pci_fn_0:
|
||||
; PCI function 0: get pci version (AH.AL)
|
||||
movzx eax, word [BOOT_VAR+0x9022]
|
||||
movzx eax, word [BOOT_VARS+0x9022]
|
||||
ret
|
||||
|
||||
pci_fn_1:
|
||||
; PCI function 1: get last bus in AL
|
||||
mov al, [BOOT_VAR+0x9021]
|
||||
mov al, [BOOT_VARS+0x9021]
|
||||
ret
|
||||
|
||||
pci_fn_2:
|
||||
; PCI function 2: get pci access mechanism
|
||||
mov al, [BOOT_VAR+0x9020]
|
||||
mov al, [BOOT_VARS+0x9020]
|
||||
ret
|
||||
|
||||
pci_service_not_supported:
|
||||
@ -156,7 +156,7 @@ align 4
|
||||
|
||||
pci_read_reg:
|
||||
push ebx esi
|
||||
cmp byte [BOOT_VAR+0x9020], 2;what mechanism will we use?
|
||||
cmp byte [BOOT_VARS+0x9020], 2;what mechanism will we use?
|
||||
je pci_read_reg_2
|
||||
|
||||
; mechanism 1
|
||||
@ -287,7 +287,7 @@ align 4
|
||||
|
||||
pci_write_reg:
|
||||
push esi ebx
|
||||
cmp byte [BOOT_VAR+0x9020], 2;what mechanism will we use?
|
||||
cmp byte [BOOT_VARS+0x9020], 2;what mechanism will we use?
|
||||
je pci_write_reg_2
|
||||
|
||||
; mechanism 1
|
||||
@ -570,9 +570,9 @@ sys_pcibios:
|
||||
cmp ebp, 1 ; PCI_FUNCTION_ID
|
||||
jnz .not_PCI_BIOS_PRESENT
|
||||
mov edx, 'PCI '
|
||||
mov al, [BOOT_VAR + 0x9020]
|
||||
mov bx, [BOOT_VAR + 0x9022]
|
||||
mov cl, [BOOT_VAR + 0x9021]
|
||||
mov al, [BOOT_VARS + 0x9020]
|
||||
mov bx, [BOOT_VARS + 0x9022]
|
||||
mov cl, [BOOT_VARS + 0x9021]
|
||||
xor ah, ah
|
||||
jmp .return_abcd
|
||||
|
||||
@ -715,7 +715,7 @@ end virtual
|
||||
.next_func:
|
||||
inc dword [.devfn]
|
||||
mov ah, [.bus]
|
||||
cmp ah, [BOOT_VAR+0x9021]
|
||||
cmp ah, [BOOT_VARS+0x9021]
|
||||
jbe .loop
|
||||
.nomemory:
|
||||
leave
|
||||
|
@ -192,8 +192,12 @@ TASK_BASE equ (OS_BASE+0x0003010)
|
||||
TASK_DATA equ (OS_BASE+0x0003020)
|
||||
TASK_EVENT equ (OS_BASE+0x0003020)
|
||||
|
||||
CDDataBuf equ (OS_BASE+0x0007000)
|
||||
FLOPPY_BUFF equ (OS_BASE+0x0008000) ;18*512
|
||||
CDDataBuf equ (OS_BASE+0x0005000)
|
||||
|
||||
;unused 0x6000 - 0x8fff
|
||||
|
||||
BOOT_VARS equ (OS_BASE) ;0x9000
|
||||
|
||||
idts equ (OS_BASE+0x000B100)
|
||||
WIN_STACK equ (OS_BASE+0x000C000)
|
||||
WIN_POS equ (OS_BASE+0x000C400)
|
||||
@ -222,33 +226,13 @@ SLOT_BASE equ (OS_BASE+0x0080000)
|
||||
|
||||
VGABasePtr equ (OS_BASE+0x00A0000)
|
||||
|
||||
;RAMDISK equ (OS_BASE+0x0100000)
|
||||
;RAMDISK_FAT equ (OS_BASE+0x0280000)
|
||||
;FLOPPY_FAT equ (OS_BASE+0x0282000)
|
||||
|
||||
;CLEAN_ZONE equ 0x284000
|
||||
;IDE_DMA equ 0x284000
|
||||
|
||||
CLEAN_ZONE equ (_CLEAN_ZONE-OS_BASE)
|
||||
IDE_DMA equ (_IDE_DMA-OS_BASE)
|
||||
|
||||
;BgrAuxTable equ (OS_BASE+0x0298000)
|
||||
; unused?
|
||||
SB16Buffer equ (OS_BASE+0x02A0000)
|
||||
SB16_Status equ (OS_BASE+0x02B0000)
|
||||
|
||||
;BUTTON_INFO equ (OS_BASE+0x02B3FEE)
|
||||
|
||||
;BPSLine_calc_area equ (OS_BASE+0x02C4000)
|
||||
;d_width_calc_area equ (OS_BASE+0x02CA000)
|
||||
|
||||
;RESERVED_PORTS equ (OS_BASE+0x02D0000)
|
||||
;BOOT_VAR equ (OS_BASE+0x02E0000)
|
||||
|
||||
;draw_data equ (OS_BASE+0x0320000)
|
||||
|
||||
;sys_pgmap equ (OS_BASE+0x0324000)
|
||||
|
||||
UPPER_KERNEL_PAGES equ (OS_BASE+0x0400000)
|
||||
|
||||
virtual at (OS_BASE+0x05FFF80)
|
||||
|
@ -358,7 +358,7 @@ proc init_LFB
|
||||
|
||||
cmp dword [LFBAddress], -1
|
||||
jne @f
|
||||
mov [BOOT_VAR+BOOT_MTRR], byte 2
|
||||
mov [BOOT_VARS+BOOT_MTRR], byte 2
|
||||
; max VGA=640*480*4=1228800 bytes
|
||||
; + 32*640*4=81920 bytes for mouse pointer
|
||||
stdcall alloc_pages, ((1228800+81920)/4096)
|
||||
@ -378,7 +378,7 @@ proc init_LFB
|
||||
@@:
|
||||
test [SCR_MODE], word 0100000000000000b
|
||||
jnz @f
|
||||
mov [BOOT_VAR+BOOT_MTRR], byte 2
|
||||
mov [BOOT_VARS+BOOT_MTRR], byte 2
|
||||
ret
|
||||
@@:
|
||||
call init_mtrr
|
||||
@ -1361,7 +1361,7 @@ endp
|
||||
align 4
|
||||
proc init_mtrr
|
||||
|
||||
cmp [BOOT_VAR+BOOT_MTRR], byte 2
|
||||
cmp [BOOT_VARS+BOOT_MTRR], byte 2
|
||||
je .exit
|
||||
|
||||
bt [cpu_caps], CAPS_MTRR
|
||||
|
@ -382,6 +382,7 @@ end if
|
||||
|
||||
REDRAW_BACKGROUND rb 4
|
||||
|
||||
align 4
|
||||
draw_data: rb 16*256
|
||||
BPSLine_calc_area rd 1440
|
||||
d_width_calc_area rd 1140
|
||||
@ -402,6 +403,7 @@ MOUSE_COLOR_MEM rd 1
|
||||
|
||||
BTN_DOWN: rb 4
|
||||
|
||||
align 4
|
||||
def_cursor rd 1
|
||||
def_cursor_clock rd 1
|
||||
current_cursor rd 1
|
||||
@ -535,17 +537,21 @@ cache_ide3_search_start rd 1
|
||||
cache_ide3_appl_search_start rd 1
|
||||
|
||||
debug_step_pointer rd 1
|
||||
hdd_appl_data rb 1 ; 0 = system cache, 1 - application cache
|
||||
cd_appl_data rb 1 ; 0 = system cache, 1 - application cache
|
||||
|
||||
lba_read_enabled rd 1 ; 0 = disabled , 1 = enabled
|
||||
pci_access_enabled rd 1 ; 0 = disabled , 1 = enabled
|
||||
|
||||
hdd_appl_data rb 1 ; 0 = system cache, 1 - application cache
|
||||
cd_appl_data rb 1 ; 0 = system cache, 1 - application cache
|
||||
|
||||
timer_ticks_enable rb 1 ; for cd driver
|
||||
|
||||
align 4
|
||||
NumBiosDisks rd 1
|
||||
BiosDisksData rb 200h
|
||||
BiosDiskCaches rb 80h*(cache_ide1-cache_ide0)
|
||||
BiosDiskPartitions rd 80h
|
||||
|
||||
align 16
|
||||
DRIVE_DATA: rb DRIVE_DATA_SIZE
|
||||
|
||||
@ -570,5 +576,6 @@ _IDE_DMA rb 16*512
|
||||
BgrAuxTable rb 32768
|
||||
BUTTON_INFO rb 64*1024
|
||||
RESERVED_PORTS: rb 64*1024
|
||||
BOOT_VAR: rb 64*1024
|
||||
FLOPPY_BUFF: rb 18*512 ;one track
|
||||
|
||||
sys_pgmap: rb 1024*1024/8
|
||||
|
@ -15,7 +15,7 @@ MEM_UC equ 0 ;uncached memory
|
||||
align 4
|
||||
proc mem_test
|
||||
; if we have BIOS with fn E820, skip the test
|
||||
cmp dword [BOOT_VAR-OS_BASE + 0x9100], 0
|
||||
cmp dword [BOOT_VARS-OS_BASE + 0x9100], 0
|
||||
jnz .ret
|
||||
|
||||
mov eax, cr0
|
||||
@ -35,12 +35,12 @@ proc mem_test
|
||||
|
||||
and eax, not (CR0_CD+CR0_NW) ;enable caching
|
||||
mov cr0, eax
|
||||
inc dword [BOOT_VAR-OS_BASE + 0x9100]
|
||||
inc dword [BOOT_VARS-OS_BASE + 0x9100]
|
||||
xor eax, eax
|
||||
mov [BOOT_VAR-OS_BASE + 0x9104], eax
|
||||
mov [BOOT_VAR-OS_BASE + 0x9108], eax
|
||||
mov [BOOT_VAR-OS_BASE + 0x910C], edi
|
||||
mov [BOOT_VAR-OS_BASE + 0x9110], eax
|
||||
mov [BOOT_VARS-OS_BASE + 0x9104], eax
|
||||
mov [BOOT_VARS-OS_BASE + 0x9108], eax
|
||||
mov [BOOT_VARS-OS_BASE + 0x910C], edi
|
||||
mov [BOOT_VARS-OS_BASE + 0x9110], eax
|
||||
.ret:
|
||||
ret
|
||||
endp
|
||||
@ -48,7 +48,7 @@ endp
|
||||
align 4
|
||||
proc init_mem
|
||||
; calculate maximum allocatable address and number of allocatable pages
|
||||
mov edi, BOOT_VAR-OS_BASE + 0x9104
|
||||
mov edi, BOOT_VARS-OS_BASE + 0x9104
|
||||
mov ecx, [edi-4]
|
||||
xor esi, esi; esi will hold total amount of memory
|
||||
xor edx, edx; edx will hold maximum allocatable address
|
||||
@ -195,7 +195,7 @@ proc init_page_map
|
||||
rep stosd
|
||||
|
||||
; scan through memory map and mark free areas as available
|
||||
mov ebx, BOOT_VAR-OS_BASE + 0x9104
|
||||
mov ebx, BOOT_VARS-OS_BASE + 0x9104
|
||||
mov edx, [ebx-4]
|
||||
.scanmap:
|
||||
cmp [ebx+16], byte 1
|
||||
@ -453,6 +453,9 @@ acpi_dev_data rd 1
|
||||
acpi_dev_size rd 1
|
||||
|
||||
acpi_rsdt_base rd 1
|
||||
acpi_fadt_base rd 1
|
||||
acpi_dsdt_base rd 1
|
||||
acpi_dsdt_size rd 1
|
||||
acpi_madt_base rd 1
|
||||
acpi_ioapic_base rd 1
|
||||
|
||||
@ -464,6 +467,7 @@ ACPI_HI_RSDP_WINDOW_START equ 0x000E0000
|
||||
ACPI_HI_RSDP_WINDOW_END equ 0x00100000
|
||||
ACPI_RSDP_CHECKSUM_LENGTH equ 20
|
||||
ACPI_MADT_SIGN equ 0x43495041
|
||||
ACPI_FADT_SIGN equ 0x50434146
|
||||
|
||||
|
||||
acpi_locate:
|
||||
@ -535,9 +539,22 @@ check_acpi:
|
||||
jz .done
|
||||
|
||||
mov ecx, [eax+16]
|
||||
mov edx, ACPI_MADT_SIGN
|
||||
mov edx, 0x50434146
|
||||
mov [acpi_rsdt_base-OS_BASE], ecx
|
||||
call rsdt_find
|
||||
mov [acpi_fadt_base-OS_BASE], eax
|
||||
test eax, eax
|
||||
jz @f
|
||||
|
||||
mov eax, [eax+40]
|
||||
mov [acpi_dsdt_base-OS_BASE], eax
|
||||
mov eax, [eax+4]
|
||||
mov [acpi_dsdt_size-OS_BASE], eax
|
||||
|
||||
@@:
|
||||
mov edx, ACPI_MADT_SIGN
|
||||
mov ecx, [acpi_rsdt_base-OS_BASE]
|
||||
call rsdt_find
|
||||
test eax, eax
|
||||
jz .done
|
||||
|
||||
|
@ -265,12 +265,11 @@ B32:
|
||||
|
||||
; SAVE & CLEAR 0-0xffff
|
||||
|
||||
xor esi, esi
|
||||
mov edi, (BOOT_VAR-OS_BASE)
|
||||
mov ecx, 0x10000 / 4
|
||||
rep movsd
|
||||
mov edi, 0x1000
|
||||
mov ecx, 0xf000 / 4
|
||||
mov ecx, 0x8000 / 4
|
||||
rep stosd
|
||||
mov edi, 0xa000
|
||||
mov ecx, 0x6000 / 4
|
||||
rep stosd
|
||||
|
||||
call test_cpu
|
||||
@ -359,11 +358,11 @@ high_code:
|
||||
|
||||
; SAVE REAL MODE VARIABLES
|
||||
xor eax, eax
|
||||
mov ax, [BOOT_VAR + BOOT_IDE_PI_16]
|
||||
mov ax, [BOOT_VARS + BOOT_IDE_PI_16]
|
||||
mov [IDEContrProgrammingInterface], ax
|
||||
mov ax, [BOOT_VAR + BOOT_IDE_BASE_ADDR]
|
||||
mov ax, [BOOT_VARS + BOOT_IDE_BASE_ADDR]
|
||||
mov [IDEContrRegsBaseAddr], ax
|
||||
mov ax, [BOOT_VAR + BOOT_IDE_BAR0_16]
|
||||
mov ax, [BOOT_VARS + BOOT_IDE_BAR0_16]
|
||||
mov [IDE_BAR0_val], ax
|
||||
|
||||
cmp ax, 0
|
||||
@ -375,9 +374,9 @@ high_code:
|
||||
mov [hd_address_table], eax
|
||||
mov [hd_address_table+8], eax
|
||||
@@:
|
||||
mov ax, [BOOT_VAR + BOOT_IDE_BAR1_16]
|
||||
mov ax, [BOOT_VARS + BOOT_IDE_BAR1_16]
|
||||
mov [IDE_BAR1_val], ax
|
||||
mov ax, [BOOT_VAR + BOOT_IDE_BAR2_16]
|
||||
mov ax, [BOOT_VARS + BOOT_IDE_BAR2_16]
|
||||
mov [IDE_BAR2_val], ax
|
||||
|
||||
cmp ax, 0
|
||||
@ -389,18 +388,18 @@ high_code:
|
||||
mov [hd_address_table+16], eax
|
||||
mov [hd_address_table+24], eax
|
||||
@@:
|
||||
mov ax, [BOOT_VAR + BOOT_IDE_BAR3_16]
|
||||
mov ax, [BOOT_VARS + BOOT_IDE_BAR3_16]
|
||||
mov [IDE_BAR3_val], ax
|
||||
|
||||
; --------------- APM ---------------------
|
||||
|
||||
; init selectors
|
||||
mov ebx, [BOOT_VAR+BOOT_APM_ENTRY] ; offset of APM entry point
|
||||
movzx eax, word [BOOT_VAR+BOOT_APM_CODE_32] ; real-mode segment base address of
|
||||
mov ebx, [BOOT_VARS+BOOT_APM_ENTRY] ; offset of APM entry point
|
||||
movzx eax, word [BOOT_VARS+BOOT_APM_CODE_32] ; real-mode segment base address of
|
||||
; protected-mode 32-bit code segment
|
||||
movzx ecx, word [BOOT_VAR+BOOT_APM_CODE_16]; real-mode segment base address of
|
||||
movzx ecx, word [BOOT_VARS+BOOT_APM_CODE_16]; real-mode segment base address of
|
||||
; protected-mode 16-bit code segment
|
||||
movzx edx, word [BOOT_VAR+BOOT_APM_DATA_16]; real-mode segment base address of
|
||||
movzx edx, word [BOOT_VARS+BOOT_APM_DATA_16]; real-mode segment base address of
|
||||
; protected-mode 16-bit data segment
|
||||
|
||||
shl eax, 4
|
||||
@ -421,28 +420,28 @@ high_code:
|
||||
mov dword[apm_entry], ebx
|
||||
mov word [apm_entry + 4], apm_code_32 - gdts
|
||||
|
||||
mov eax, [BOOT_VAR + BOOT_APM_VERSION] ; version & flags
|
||||
mov eax, [BOOT_VARS + BOOT_APM_VERSION] ; version & flags
|
||||
mov [apm_vf], eax
|
||||
; -----------------------------------------
|
||||
mov al, [BOOT_VAR+BOOT_DMA] ; DMA access
|
||||
mov al, [BOOT_VARS+BOOT_DMA] ; DMA access
|
||||
mov [allow_dma_access], al
|
||||
movzx eax, byte [BOOT_VAR+BOOT_BPP] ; bpp
|
||||
movzx eax, byte [BOOT_VARS+BOOT_BPP] ; bpp
|
||||
mov [_display.bpp], eax
|
||||
mov [_display.vrefresh], 60
|
||||
|
||||
movzx eax, word [BOOT_VAR+BOOT_X_RES]; X max
|
||||
movzx eax, word [BOOT_VARS+BOOT_X_RES]; X max
|
||||
mov [_display.width], eax
|
||||
mov [display_width_standard], eax
|
||||
dec eax
|
||||
mov [Screen_Max_X], eax
|
||||
mov [screen_workarea.right], eax
|
||||
movzx eax, word [BOOT_VAR+BOOT_Y_RES]; Y max
|
||||
movzx eax, word [BOOT_VARS+BOOT_Y_RES]; Y max
|
||||
mov [_display.height], eax
|
||||
mov [display_height_standard], eax
|
||||
dec eax
|
||||
mov [Screen_Max_Y], eax
|
||||
mov [screen_workarea.bottom], eax
|
||||
movzx eax, word [BOOT_VAR+BOOT_VESA_MODE] ; screen mode
|
||||
movzx eax, word [BOOT_VARS+BOOT_VESA_MODE] ; screen mode
|
||||
mov dword [SCR_MODE], eax
|
||||
; mov eax, [BOOT_VAR+0x9014] ; Vesa 1.2 bnk sw add
|
||||
; mov [BANK_SWITCH], eax
|
||||
@ -451,7 +450,7 @@ high_code:
|
||||
je @f
|
||||
cmp [SCR_MODE], word 0x12 ; VGA 640x480
|
||||
je @f
|
||||
movzx eax, word[BOOT_VAR+BOOT_PITCH] ; for other modes
|
||||
movzx eax, word[BOOT_VARS+BOOT_PITCH] ; for other modes
|
||||
@@:
|
||||
mov [_display.pitch], eax
|
||||
mov eax, [_display.width]
|
||||
@ -464,7 +463,7 @@ high_code:
|
||||
; equal to [_display.width] * [ScreenBPP] / 8
|
||||
call calculate_fast_getting_offset_for_LFB
|
||||
|
||||
mov esi, BOOT_VAR+0x9080
|
||||
mov esi, BOOT_VARS+0x9080
|
||||
movzx ecx, byte [esi-1]
|
||||
mov [NumBiosDisks], ecx
|
||||
mov edi, BiosDisksData
|
||||
@ -472,7 +471,7 @@ high_code:
|
||||
|
||||
; GRAPHICS ADDRESSES
|
||||
|
||||
mov eax, [BOOT_VAR+BOOT_LFB]
|
||||
mov eax, [BOOT_VARS+BOOT_LFB]
|
||||
mov [LFBAddress], eax
|
||||
|
||||
cmp [SCR_MODE], word 0100000000000000b
|
||||
@ -917,22 +916,8 @@ end if
|
||||
; LOAD FIRST APPLICATION
|
||||
cli
|
||||
|
||||
; cmp byte [BOOT_VAR+0x9030],1
|
||||
; jne no_load_vrr_m
|
||||
|
||||
; mov ebp, vrr_m
|
||||
; call fs_execute_from_sysdir
|
||||
;
|
||||
;; cmp eax,2 ; if vrr_m app found (PID=2)
|
||||
; sub eax,2
|
||||
; jz first_app_found
|
||||
;
|
||||
;no_load_vrr_m:
|
||||
|
||||
mov ebp, firstapp
|
||||
call fs_execute_from_sysdir
|
||||
|
||||
; cmp eax,2 ; continue if a process has been loaded
|
||||
test eax, eax
|
||||
jns first_app_found
|
||||
|
||||
@ -1284,10 +1269,10 @@ set_variables:
|
||||
loop .fl60
|
||||
push eax
|
||||
|
||||
mov ax, [BOOT_VAR+BOOT_Y_RES]
|
||||
mov ax, [BOOT_VARS+BOOT_Y_RES]
|
||||
shr ax, 1
|
||||
shl eax, 16
|
||||
mov ax, [BOOT_VAR+BOOT_X_RES]
|
||||
mov ax, [BOOT_VARS+BOOT_X_RES]
|
||||
shr ax, 1
|
||||
mov [MOUSE_X], eax
|
||||
call wakeup_osloop
|
||||
@ -2174,7 +2159,7 @@ sysfn_shutdown: ; 18.9 = system shutdown
|
||||
jl exit_for_anyone
|
||||
cmp ecx, 4
|
||||
jg exit_for_anyone
|
||||
mov [BOOT_VAR+0x9030], cl
|
||||
mov [BOOT_VARS+0x9030], cl
|
||||
|
||||
mov eax, [TASK_COUNT]
|
||||
mov [SYS_SHUTDOWN], al
|
||||
@ -5628,7 +5613,7 @@ undefined_syscall: ; Undefined system call
|
||||
align 4
|
||||
system_shutdown: ; shut down the system
|
||||
|
||||
cmp byte [BOOT_VAR+0x9030], 1
|
||||
cmp byte [BOOT_VARS+0x9030], 1
|
||||
jne @F
|
||||
ret
|
||||
@@:
|
||||
@ -5653,11 +5638,11 @@ if ~ defined extended_primary_loader
|
||||
rep movsb
|
||||
end if
|
||||
|
||||
mov esi, BOOT_VAR ; restore 0x0 - 0xffff
|
||||
mov edi, OS_BASE
|
||||
mov ecx, 0x10000/4
|
||||
cld
|
||||
rep movsd
|
||||
; mov esi, BOOT_VAR ; restore 0x0 - 0xffff
|
||||
; mov edi, OS_BASE
|
||||
; mov ecx, 0x10000/4
|
||||
; cld
|
||||
; rep movsd
|
||||
|
||||
call restorefatchain
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user