Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3530 → Rev 3531

/kernel/branches/Kolibri-A/trunk/bus/HT.inc
158,7 → 158,7
 
create_mmio_pte:
mov ecx, mmio_pte ; physical address
or ecx, (PG_NOCACHE + PG_SHARED)
or ecx, (PG_NOCACHE + PG_SHARED + PG_SW)
mov ebx, FUSION_MMIO ; linear address
shr ebx, 20
add ebx, (sys_pgdir - OS_BASE) ; PgDir entry @
169,7 → 169,7
mov ecx, 0x01B ; APIC BAR
rdmsr
and eax, 0xFFFFF000 ; physical address
or eax, (PG_NOCACHE + PG_SHARED)
or eax, (PG_NOCACHE + PG_SHARED + PG_SW)
mov dword[mmio_pte + 0], eax
 
ret ; <<< OK >>>
298,4 → 298,26
pop edx ecx
ret
 
apic_timer_reset:
xor eax, eax
mov [apic_data+0], eax
mov ebx, LAPIC_BAR+ 0x320
mov eax, [ebx]
and eax, 0xFFFEFF00
or eax, 0x0000003F ; int vector + norestart
mov [ebx], eax
mov dword[apic_data + 8], 100000000
ret
 
 
apic_timer_int:
push eax
inc dword [apic_data + 0]
mov eax, [apic_data + 8]
mov dword [LAPIC_BAR + 0x380], eax ; load APICTIC
mov dword [LAPIC_BAR + 0x0B0], 0 ; end of interrupt
; mov dword [LAPIC_BAR + 0x420], 0x3F ; end of interrupt
pop eax
iretd
 
 
/kernel/branches/Kolibri-A/trunk/const.inc
273,6 → 273,7
 
TMP_STACK_TOP equ 0x006C000
 
apic_data equ (OS_BASE+0x006D000)
mmio_pte equ 0x006E000
sys_pgdir equ (OS_BASE+0x006F000)
 
/kernel/branches/Kolibri-A/trunk/core/sys32.inc
48,7 → 48,8
dd irq_serv.irq_5, p_irq6, irq_serv.irq_7
dd irq_serv.irq_8, irq_serv.irq_9, irq_serv.irq_10
dd irq_serv.irq_11, irq_serv.irq_12, irqD,p_irq14,p_irq15
times 16 dd unknown_interrupt ;int_0x30..int_0x3F
times 15 dd unknown_interrupt ;int_0x30..int_0x3F
dd apic_timer_int
 
;int_0x40 gate trap (for directly copied)
dw i40 and 0xFFFF, os_code, 11101111b shl 8, i40 shr 16
/kernel/branches/Kolibri-A/trunk/detect/dev_hdcd.inc
21,13 → 21,25
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
 
44,10 → 56,10
FindHDD_2:
call DeviceReset
cmp [DevErrorCode],0
jne FindHDD_2_2
;; jne FindHDD_2_2
; call ReadCD_ID
; cmp [DevErrorCode],0
; jne FindHDD_2_2
jne FindHDD_2_2
inc byte [DRIVE_DATA+1]
inc byte [DRIVE_DATA+1]
FindHDD_2_2:
99,6 → 111,8
test AL,08h ;ñîñòîÿíèå ñèãíàëà DRQ
jz @@WaitCompleet
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà
; mov AX,DS
; mov ES,AX
mov EDI,Sector512 ;offset Sector512
mov DX,[ATABasePortAddr] ;ðåãèñòð äàííûõ
mov CX,256 ;÷èñëî ñ÷èòûâàåìûõ ñëîâ
187,10 → 201,17
; Îæèäàòü, ïîêà äèñê íå áóäåò ãîòîâ
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
249,7 → 270,6
; Çàâåðøåíèå ðàáîòû ïðîãðàììû
ret
 
if 0
;*************************************************
;* ×ÒÅÍÈÅ ÈÄÅÍÒÈÔÈÊÀÒÎÐÀ ÓÑÒÐÎÉÑÒÂÀ ATAPI *
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *
279,6 → 299,7
@@WaitCompleet_1:
; Ïðîâåðèòü âðåì
dec ecx
; cmp ecx,0
jz @@Error1_1 ;îøèáêà òàéì-àóòà
; Ïðîâåðèòü ãîòîâíîñòü
in AL,DX
289,6 → 310,8
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 ;÷èñëî ñ÷èòûâàåìûõ ñëîâ
303,8 → 326,6
@@End_1:
ret
 
end if
 
;*************************************************
;* ÑÁÐÎÑ ÓÑÒÐÎÉÑÒÂÀ *
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *
/kernel/branches/Kolibri-A/trunk/kernel.asm
712,6 → 712,8
; mov esi, boot_uDMA_ok
; call boot_log
 
call apic_timer_reset
 
; LOAD FIRST APPLICATION
cli
if 0