Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3531 → Rev 3530

/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 + PG_SW)
or ecx, (PG_NOCACHE + PG_SHARED)
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 + PG_SW)
or eax, (PG_NOCACHE + PG_SHARED)
mov dword[mmio_pte + 0], eax
 
ret ; <<< OK >>>
298,26 → 298,4
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,7 → 273,6
 
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/kernel.asm
712,8 → 712,6
; mov esi, boot_uDMA_ok
; call boot_log
 
call apic_timer_reset
 
; LOAD FIRST APPLICATION
cli
if 0
/kernel/branches/Kolibri-A/trunk/core/sys32.inc
48,8 → 48,7
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 15 dd unknown_interrupt ;int_0x30..int_0x3F
dd apic_timer_int
times 16 dd unknown_interrupt ;int_0x30..int_0x3F
 
;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,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
 
56,10 → 44,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:
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
 
;*************************************************
;* ÑÁÐÎÑ ÓÑÒÐÎÉÑÒÂÀ *
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *