/kernel/branches/Kolibri-A/trunk/boot/bootcode.inc |
---|
62,10 → 62,6 |
; mov [es:0x901C], al |
; VRR_M USE |
; mov [es:0x9030], byte 2 |
; BOOT DEVICE |
xor ax, ax |
/kernel/branches/Kolibri-A/trunk/bus/HT.inc |
---|
145,7 → 145,7 |
; (eax = phys. address of PCIe conf.space) |
; |
map_pcie_pages: |
or eax, (PG_NOCACHE + PG_SHARED + PG_LARGE + PG_UW) ; UW is unsafe, fix it! |
or eax, (PG_NOCACHE + PG_SHARED + PG_LARGE + PG_UW) ; UW is unsafe! |
mov ecx, PCIe_CONFIG_SPACE ; linear address |
mov ebx, ecx |
shr ebx, 20 |
163,13 → 163,9 |
add eax, 0x400000 ; +4M phys. |
add ecx, 0x400000 ; +4M lin. |
cmp dl, byte[mmio_pcie_cfg_pdes-OS_BASE] |
jae .pcie_cfg_mapped |
jae pcie_cfg_mapped |
inc dl |
jmp .write_pde |
; mov eax, cr3 |
; mov cr3, eax ; flush TLB |
.pcie_cfg_mapped: |
ret ; <<< OK >>> |
; ---- stepping 10h CPUs and Fusion APUs: the configspace is stored in MSR_C001_0058 ---- |
align 4 |
196,8 → 192,26 |
add edx, eax ; the upper configspace limit |
mov dword[mmio_pcie_cfg_lim-OS_BASE], edx |
jmp map_pcie_pages |
pcie_cfg_mapped: |
create_mmio_pte: |
mov ecx, mmio_pte ; physical address |
or ecx, (PG_NOCACHE + PG_SHARED) |
mov ebx, FUSION_MMIO ; linear address |
shr ebx, 20 |
add ebx, (sys_pgdir - OS_BASE) ; PgDir entry @ |
mov dword[ebx], ecx ; Fusion MMIO tables |
map_apic_mmio: |
mov ecx, 0x01B ; APIC BAR |
rdmsr |
and eax, 0xFFFFF000 ; physical address |
or eax, (PG_NOCACHE + PG_SHARED + PG_UW) ; UW is unsafe! |
mov dword[mmio_pte + 0], eax |
ret ; <<< OK >>> |
; ================================================================================ |
org OS_BASE+$ ; back to the linear address space |
/kernel/branches/Kolibri-A/trunk/const.inc |
---|
206,8 → 206,10 |
GETPIXEL equ (OS_BASE+0x0006824) |
mouseunder equ (OS_BASE+0x0006900) |
IDE_DMA equ 0x0007000 |
MOUSE_VISIBLE equ (OS_BASE+0x000F204) |
WIN_TEMP_XY equ (OS_BASE+0x000F300) |
KEY_COUNT equ (OS_BASE+0x000F400) |
266,11 → 268,12 |
DONT_DRAW_MOUSE equ (OS_BASE+0x000FFF5) |
DONT_SWITCH equ (OS_BASE+0x000FFFF) |
TMP_STACK_TOP equ 0x006CC00 |
FONT_II equ (OS_BASE+0x005DC00) |
FONT_I equ (OS_BASE+0x005E600) |
FONT_II equ (OS_BASE+0x006DC00) |
FONT_I equ (OS_BASE+0x006E600) |
TMP_STACK_TOP equ 0x006C000 |
mmio_pte equ 0x006E000 |
sys_pgdir equ (OS_BASE+0x006F000) |
DRIVE_DATA equ (OS_BASE+0x0070000) |
277,8 → 280,6 |
SLOT_BASE equ (OS_BASE+0x0080000) |
;unused |
;TMP_BUFF equ (OS_BASE+0x0090000) |
;VGABasePtr equ (OS_BASE+0x00A0000) |
286,25 → 287,18 |
RAMDISK_FAT equ (OS_BASE+0x0280000) |
CLEAN_ZONE equ 0x280000 |
IDE_DMA equ 0x284000 |
BgrAuxTable equ (OS_BASE+0x0298000) |
; unused? |
SB16Buffer equ (OS_BASE+0x02A0000) |
SB16_Status equ (OS_BASE+0x02B0000) |
BUTTON_INFO equ (OS_BASE+0x02C0000) |
RESERVED_PORTS equ (OS_BASE+0x02D0000) |
IRQ_SAVE equ (OS_BASE+0x02E0000) |
;BOOT_VAR equ (OS_BASE+0x02F0000) |
stack_data_start equ (OS_BASE+0x0300000) |
eth_data_start equ (OS_BASE+0x0300000) |
stack_data equ (OS_BASE+0x0304000) |
stack_data_end equ (OS_BASE+0x031ffff) |
resendQ equ (OS_BASE+0x0320000) |
;VMODE_BASE equ (OS_BASE+0x0328000) |
BgrAuxTable equ (OS_BASE+0x0328000) |
skin_data equ (OS_BASE+0x0330000) |
draw_data equ (OS_BASE+0x0338000); |
327,6 → 321,8 |
PCIe_CONFIG_SPACE equ 0xF0000000 |
USER_DMA_BUFFER equ 0xFD000000 ; linear addr. |
USER_DMA_SIZE equ 0x00800000 |
FUSION_MMIO equ 0xFD800000 |
LAPIC_BAR equ 0xFD800000 ; == |
page_tabs equ 0xFDC00000 |
app_page_tabs equ 0xFDC00000 |
/kernel/branches/Kolibri-A/trunk/core/sched.inc |
---|
20,7 → 20,6 |
mov es, ax |
inc [timer_ticks] |
mov eax, [timer_ticks] |
; call playNote ; <<<--- Speaker driver |
sub eax,[next_usage_update] |
cmp eax,100 |
jb .nocounter |
/kernel/branches/Kolibri-A/trunk/data32.inc |
---|
105,7 → 105,7 |
bootpath db '/KOLIBRI ' |
bootpath2 db 0 |
vmode db '/sys/drivers/VMODE.MDR',0 |
vrr_m db 'VRR_M',0 |
;vrr_m db 'VRR_M',0 |
kernel_file db 'KERNEL MNT' |
/kernel/branches/Kolibri-A/trunk/detect/dev_fd.inc |
---|
File deleted |
Property changes: |
Deleted: svn:keywords |
-Rev |
\ No newline at end of property |
/kernel/branches/Kolibri-A/trunk/detect/dev_hdcd.inc |
---|
21,25 → 21,13 |
mov [ChannelNumber],1 |
mov [DiskNumber],0 |
call FindHDD_3 |
; mov ax,[Sector512+176] |
; mov [DRIVE_DATA+6],ax |
; mov ax,[Sector512+126] |
; mov [DRIVE_DATA+8],ax |
; mov ax,[Sector512+128] |
; mov [DRIVE_DATA+8],ax |
mov [DiskNumber],1 |
call FindHDD_3 |
; mov al,[Sector512+176] |
; mov [DRIVE_DATA+7],al |
inc [ChannelNumber] |
mov [DiskNumber],0 |
call FindHDD_3 |
; mov al,[Sector512+176] |
; mov [DRIVE_DATA+8],al |
mov [DiskNumber],1 |
call FindHDD_1 |
; mov al,[Sector512+176] |
; mov [DRIVE_DATA+9],al |
jmp EndFindHDD |
57,9 → 45,9 |
call DeviceReset |
cmp [DevErrorCode],0 |
jne FindHDD_2_2 |
call ReadCD_ID |
cmp [DevErrorCode],0 |
jne FindHDD_2_2 |
; call ReadCD_ID |
; cmp [DevErrorCode],0 |
; jne FindHDD_2_2 |
inc byte [DRIVE_DATA+1] |
inc byte [DRIVE_DATA+1] |
FindHDD_2_2: |
111,8 → 99,6 |
test AL,08h ;ñîñòîÿíèå ñèãíàëà DRQ |
jz @@WaitCompleet |
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà |
; mov AX,DS |
; mov ES,AX |
mov EDI,Sector512 ;offset Sector512 |
mov DX,[ATABasePortAddr] ;ðåãèñòð äàííûõ |
mov CX,256 ;÷èñëî ñ÷èòûâàåìûõ ñëîâ |
201,17 → 187,10 |
; Îæèäàòü, ïîêà äèñê íå áóäåò ãîòîâ |
inc DX |
mov ecx,0xfff |
; mov eax,[timer_ticks] |
; mov [TickCounter_1],eax |
@@WaitHDReady: |
; Ïðîâåðèòü âðåìÿ îæèäàíè |
dec ecx |
; cmp ecx,0 |
jz @@Err1 |
; mov eax,[timer_ticks] |
; sub eax,[TickCounter_1] |
; cmp eax,300 ;îæèäàòü 300 òèêîâ |
; ja @@Err1 ;îøèáêà òàéì-àóòà |
; Ïðî÷èòàòü ðåãèñòð ñîñòîÿíè |
in AL,DX |
; Ïðîâåðèòü ñîñòîÿíèå ñèãíàëà BSY |
270,6 → 249,7 |
; Çàâåðøåíèå ðàáîòû ïðîãðàììû |
ret |
if 0 |
;************************************************* |
;* ×ÒÅÍÈÅ ÈÄÅÍÒÈÔÈÊÀÒÎÐÀ ÓÑÒÐÎÉÑÒÂÀ ATAPI * |
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå * |
299,7 → 279,6 |
@@WaitCompleet_1: |
; Ïðîâåðèòü âðåì |
dec ecx |
; cmp ecx,0 |
jz @@Error1_1 ;îøèáêà òàéì-àóòà |
; Ïðîâåðèòü ãîòîâíîñòü |
in AL,DX |
310,8 → 289,6 |
test AL,08h ;ñîñòîÿíèå ñèãíàëà DRQ |
jz @@WaitCompleet_1 |
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà |
; mov AX,DS |
; mov ES,AX |
mov EDI,Sector512 ;offset Sector512 |
mov DX,[ATABasePortAddr] ;ïîðò 1x0h |
mov CX,256 ;÷èñëî ñ÷èòûâàåìûõ ñëîâ |
326,6 → 303,8 |
@@End_1: |
ret |
end if |
;************************************************* |
;* ÑÁÐÎÑ ÓÑÒÐÎÉÑÒÂÀ * |
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå * |
/kernel/branches/Kolibri-A/trunk/detect/disks.inc |
---|
8,7 → 8,7 |
$Revision$ |
include 'dev_fd.inc' |
;include 'dev_fd.inc' |
include 'dev_hdcd.inc' |
include 'getcache.inc' |
include 'sear_par.inc' |
/kernel/branches/Kolibri-A/trunk/kernel.asm |
---|
508,11 → 508,11 |
out 0xA1, al |
; Enable interrupts in IDE controller |
mov al, 0 |
mov dx, 0x3F6 |
out dx, al |
mov dl, 0x76 |
out dx, al |
; mov al, 0 |
; mov dx, 0x3F6 |
; out dx, al |
; mov dl, 0x76 |
; out dx, al |
;!!!!!!!!!!!!!!!!!!!!!!!!!! |
include 'detect/disks.inc' |
721,7 → 721,8 |
; LOAD FIRST APPLICATION |
cli |
if 0 |
<<< |
cmp byte [BOOT_VAR+0x9030],1 |
jne no_load_vrr_m |
732,8 → 733,8 |
sub eax,2 |
jz first_app_found |
no_load_vrr_m: |
no_load_vrr_m: <<< |
end if |
mov ebp, firstapp |
call fs_execute_from_sysdir |
/kernel/branches/Kolibri-A/trunk/memmap.inc |
---|
70,15 → 70,11 |
; 6000 -> 68FF << free (2k5) |
; 6900 -> 7EFF << saved picture under mouse pointer (1k5) |
; 6900 -> 6EFF << saved picture under mouse pointer (1k5) |
; |
; 7F00 -> 7FFF << SB16_Status (256) \\ |
; 7000 -> EFFF HDD DMA AREA (32k) |
; |
; 8000 -> 87FF free (2k) |
; 0x80008000 -> 9FFF ramdisk fat (8k) |
; A000 -> F9FF free (23k) |
; FA00 byte no of keys in buffer |
; FA01 byte 'buffer' |
; FA02 -> FAFF reserved for keys |
151,11 → 147,13 |
; -> 3B752 end_of_kernel |
; -> 3C000 not used (>200k) |
; 0x80050000 -> 090000 zero-filled zone after preinit_mem |
; 0x8006CC00 -> 6DBFF stack at boot time (4Kb) |
; 0x8006DC00 -> 5E5FF basic text font II |
; 0x8006E600 -> 5Efff basic text font I |
; 0x8006C000 -> 6CFFF stack at boot time (4Kb) |
; |
; 0x8006DC00 -> 6E5FF basic text font II |
; 0x8006E600 -> 6Efff basic text font I |
; 0x8006F000 -> 6FFFF main page directory |
; 0x8006E000 -> 6EFFF MMIO PTE directory (4Kb) |
; 0x8006F000 -> 6FFFF main page directory (4Kb) |
; 0x80070000 -> 7FFFF data of retrieved disks and partitions (Mario79) |
; 0x80080000 -> 8FFFF additional app info, in 256 byte steps - 256 entries |
200,29 → 198,17 |
; BC dword address of debug event memory |
; C0 5 dd thread debug registers: DR0,DR1,DR2,DR3,DR7 |
; |
; 0x80090000 -> 9FFFF wav device buffer (64k) ; << SB16Buffer |
; 0x80090000 -> 9FFFF free (64k) |
; 0x800A0000 -> AFFFF screen access area << VGA legacy buffer |
; 0x800B0000 -> FFFFF bios rest in peace -area (320k), << purpose unknown |
; 0x80100000 -> 283FFF diskette image (1m5) |
; 0x80280000 -> 9FFF ramdisk fat (8k) |
; 0x80284000 -> HEAP_BASE zero-filled zone after preinit_mem |
; 0x80280000 -> HEAP_BASE zero-filled zone after preinit_mem |
; |
; 0x80284000 -> 28BFFF HDD DMA AREA (32k) |
; 0x8028C000 -> 297FFF free (48k) |
; |
; 0x80298000 -> 29ffff auxiliary table for background smoothing code (32k) |
; |
; 0x802A0000 -> 2Bffff free (128k) |
; 0x80328000 -> 32FFFF !vrr driver (32k) |
; 0x80280000 -> 2Bffff free (262k) |
; 0x80338000 -> 338FFF draw data - 256 entries (4k) |
; 00 dword draw limit - x start |
; 04 dword draw limit - y start |
; 08 dword draw limit - x end |
; 0C dword draw limit - y end |
; 0x80339000 -> 3BFFF3 free (12k) |
; 0x802C0000 -> 2C3fff button info (8k) |
; |
; 0000 word number of buttons |
244,8 → 230,20 |
; dword start port |
; dword end port |
; dword 0 |
; 0x802E0000 -> 2EFFFF irq data area (64k) |
; 0x802F0000 -> 327fff free (229k) |
; 0x80328000 -> 29ffff auxiliary table for background smoothing code (32k) |
; |
; 0x80370000 -> 37FFFF irq data area (64k) |
; 0x80338000 -> 338FFF draw data - 256 entries (4k) |
; 00 dword draw limit - x start |
; 04 dword draw limit - y start |
; 08 dword draw limit - x end |
; 0C dword draw limit - y end |
; 0x80339000 -> 3BFFF3 free (12k) |
; |
; 0x80380000 -> 38FFFF low memory save (64k) |
; |
; 0x80390000 -> 3AFFFF tcp memory (128k) |
265,7 → 263,10 |
; 0x80800000 ->827FFFFF kernel heap |
; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space |
; 0xFD000000 -> 0xFD3FFFFF static system buffer 4Mb |
; 0xFD000000 -> 0xFD7FFFFF static system buffer (8Mb reserved) |
; 0xFD800000 -> 0xFBFFFFFF CPU & Southbridge memory-mapped IO (4Mb reserved) |
; +0000..0FFF LAPIC BAR (4k) |
; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb |
; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb |
; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb |
/kernel/branches/Kolibri-A/trunk/sound/playnote.inc |
---|
File deleted |
Property changes: |
Deleted: svn:keywords |
-Rev |
\ No newline at end of property |