Kernel updated to 0.6.5.0

git-svn-id: svn://kolibrios.org@346 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2007-02-14 16:01:07 +00:00
parent 1aafb8c866
commit 76d3050df9
15 changed files with 140 additions and 157 deletions

View File

@ -1,5 +1,5 @@
; Low-level driver for HDD access ; Low-level driver for HDD access
; DMA support by Mario79 ; DMA support by Mario79
;************************************************************************** ;**************************************************************************
; ;
@ -220,9 +220,11 @@ write_cache:
jb danger jb danger
cmp eax,[PARTITION_END] cmp eax,[PARTITION_END]
ja danger ja danger
cmp [allow_dma_write], 1
jnz .nodma
cmp [dma_hdd], 1 cmp [dma_hdd], 1
jmp .nodma jnz .nodma
; Ž¡ê¥¤¨­ï¥¬ § ¯¨áì 楯®çª¨ ¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢ ¢ ®¤­® ®¡à é¥­¨¥ ª ¤¨áªã ; Ž¡ê¥¤¨­ï¥¬ § ¯¨áì 楯®çª¨ ¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢ ¢ ®¤­® ®¡à é¥­¨¥ ª ¤¨áªã
cmp ecx, 1 cmp ecx, 1
jz .nonext jz .nonext
@ -519,7 +521,7 @@ wait_for_sector_buffer:
pop edx eax pop edx eax
ret ret
; \begin{Mario79} ; \begin{Mario79}
align 4 align 4
wait_for_sector_dma_ide0: wait_for_sector_dma_ide0:
push eax push eax
@ -586,6 +588,7 @@ cache_chain_size db 0
cache_chain_started db 0 cache_chain_started db 0
dma_task_switched db 0 dma_task_switched db 0
dma_hdd db 0 dma_hdd db 0
allow_dma_write db 0
endg endg
align 4 align 4
@ -852,4 +855,4 @@ do_write_dma:
uglobal uglobal
IDEContrRegsBaseAddr dw ? IDEContrRegsBaseAddr dw ?
endg endg
; \end{Mario79} ; \end{Mario79}

View File

@ -580,7 +580,7 @@ cfgmanager:
; settings: ; settings:
; a) preboot_graph = graphical mode ; a) preboot_graph = graphical mode
; preboot_gprobe = probe this mode? ; preboot_gprobe = probe this mode?
; b) preboot_mtrr = use hardware acceleration? ; b) preboot_dma_write = use DMA write?
; c) preboot_vrrm = use VRR? ; c) preboot_vrrm = use VRR?
; d) preboot_device = from what boot? ; d) preboot_device = from what boot?
mov di, preboot_graph-0x10000 mov di, preboot_graph-0x10000
@ -620,8 +620,8 @@ cfgmanager:
@@: @@:
mov [di], al mov [di], al
.preboot_gr_end: .preboot_gr_end:
cmp [di+preboot_mtrr-preboot_graph], 1 cmp [di+preboot_dma_write-preboot_graph], 1
adc [di+preboot_mtrr-preboot_graph], 0 adc [di+preboot_dma_write-preboot_graph], 0
cmp [di+preboot_vrrm-preboot_graph], 1 cmp [di+preboot_vrrm-preboot_graph], 1
adc [di+preboot_vrrm-preboot_graph], 0 adc [di+preboot_vrrm-preboot_graph], 0
cmp [di+preboot_device-preboot_graph], 1 cmp [di+preboot_device-preboot_graph], 1
@ -676,8 +676,8 @@ cfgmanager:
.c: .c:
mov si, linef-0x10000 mov si, linef-0x10000
call printplain call printplain
mov si, mtrr_msg-0x10000 mov si, dma_msg-0x10000
cmp [preboot_mtrr-0x10000], 1 cmp [preboot_dma_write-0x10000], 1
call .say_on_off call .say_on_off
mov si, vrrm_msg-0x10000 mov si, vrrm_msg-0x10000
cmp [preboot_vrrm-0x10000], 1 cmp [preboot_vrrm-0x10000], 1
@ -761,11 +761,11 @@ cfgmanager:
jmp .d jmp .d
.change_b: .change_b:
_setcursor 15,0 _setcursor 15,0
mov si, gr_acc-0x10000 mov si, ask_dma-0x10000
call print call print
mov bx, '12' mov bx, '12'
call getkey call getkey
mov [preboot_mtrr-0x10000], al mov [preboot_dma_write-0x10000], al
_setcursor 11,0 _setcursor 11,0
jmp .d jmp .d
.change_c: .change_c:
@ -1018,9 +1018,13 @@ end if
; GRAPHICS ACCELERATION ; GRAPHICS ACCELERATION
; force yes
mov [es:0x901C], byte 1
mov al, [preboot_mtrr-0x10000] ; DMA WRITE
mov [es:0x901C],al
mov al, [preboot_dma_write-0x10000]
mov [es:0x901F],al
; VRR_M USE ; VRR_M USE

View File

@ -73,8 +73,7 @@ vrrmprint db "Apply VRR? (picture frequency greater than 60Hz"
; db " Select port [1-3]: ",0 ; db " Select port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0 ;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0 ;no_com2 db 13,10,186, " No COM2 mouse",0
gr_acc db "Vesa 2.0+ : MTRR graphics acceleration " ask_dma db "Use DMA for HDD writing? [1-yes/2-no]: ",0
db "[1-yes/2-no] ? ",0
;gr_direct db 186," Use direct LFB writing? " ;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0 ; db "[1-yes/2-no] ? ",0
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / "
@ -120,7 +119,7 @@ mode9 db "320x200, EGA/CGA 256 colors",0
mode10 db "640x480, VGA 16 colors",0 mode10 db "640x480, VGA 16 colors",0
probeno_msg db " (standard mode)",0 probeno_msg db " (standard mode)",0
probeok_msg db " (check nonstandard modes)",0 probeok_msg db " (check nonstandard modes)",0
mtrr_msg db " [b] Use MTRR for graphics acceleration:",0 dma_msg db " [b] Use DMA for HDD writing:",0
on_msg db " on",13,10,0 on_msg db " on",13,10,0
off_msg db " off",13,10,0 off_msg db " off",13,10,0
vrrm_msg db " [c] Use VRR:",0 vrrm_msg db " [c] Use VRR:",0

View File

@ -73,8 +73,7 @@ vrrmprint db "Kinnita VRR? (ekraani sagedus suurem kui 60Hz"
; db " Vali port [1-3]: ",0 ; db " Vali port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0 ;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0 ;no_com2 db 13,10,186, " No COM2 mouse",0
gr_acc db "Vesa 2.0+ : MTRR graafika kiirendus " ask_dma db "Use DMA for HDD writing? [1-jah/2-ei]: ",0
db "[1-jah/2-ei] ? ",0
;gr_direct db 186," Use direct LFB writing? " ;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0 ; db "[1-yes/2-no] ? ",0
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / "
@ -120,7 +119,7 @@ mode9 db "320x200, EGA/CGA 256 v
mode10 db "640x480, VGA 16 värvi",0 mode10 db "640x480, VGA 16 värvi",0
probeno_msg db " (standard reziim)",0 probeno_msg db " (standard reziim)",0
probeok_msg db " (kontrolli ebastandardseid reziime)",0 probeok_msg db " (kontrolli ebastandardseid reziime)",0
mtrr_msg db " [b] kasuta MTRR graafika kiirendamiseks:",0 dma_msg db " [b] Use DMA for HDD writing:",0
on_msg db " sees",13,10,0 on_msg db " sees",13,10,0
off_msg db " väljas",13,10,0 off_msg db " väljas",13,10,0
vrrm_msg db " [c] Kasuta VRR:",0 vrrm_msg db " [c] Kasuta VRR:",0

View File

@ -78,8 +78,7 @@ vrrmprint db "VRR verwenden? (Monitorfrequenz groesser als 60Hz"
; db " Waehle Port [1-3]: ",0 ; db " Waehle Port [1-3]: ",0
;no_com1 db 13,10,186, " Keine COM1 Maus",0 ;no_com1 db 13,10,186, " Keine COM1 Maus",0
;no_com2 db 13,10,186, " Keine COM2 Maus",0 ;no_com2 db 13,10,186, " Keine COM2 Maus",0
gr_acc db "Vesa 2.0+ : MTRR Grafikbeschleunigung " ask_dma db "Nutze DMA zum HDD Aufschreiben? [1-ja/2-nein]: ",0
db "[1-ja/2-nein] ? ",0
;gr_direct db 186," Benutze direct LFB? " ;gr_direct db 186," Benutze direct LFB? "
; db "[1-ja/2-nein] ? ",0 ; db "[1-ja/2-nein] ? ",0
;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / "
@ -125,7 +124,7 @@ mode9 db "320x200, EGA/CGA 256 colors",0
mode10 db "640x480, VGA 16 colors",0 mode10 db "640x480, VGA 16 colors",0
probeno_msg db " (Standard Modus)",0 probeno_msg db " (Standard Modus)",0
probeok_msg db " (teste nicht-standard Modi)",0 probeok_msg db " (teste nicht-standard Modi)",0
mtrr_msg db " [b] Nutze MTRR fuer Graphibeschleunigung:",0 dma_msg db " [b] Nutze DMA zum HDD Aufschreiben:",0
on_msg db " an",13,10,0 on_msg db " an",13,10,0
off_msg db " aus",13,10,0 off_msg db " aus",13,10,0
vrrm_msg db " [c] Nutze VRR:",0 vrrm_msg db " [c] Nutze VRR:",0

View File

@ -73,8 +73,7 @@ vrrmprint db "
; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0 ; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0
;no_com1 db 13,10,186," No COM1 mouse",0 ;no_com1 db 13,10,186," No COM1 mouse",0
;no_com2 db 13,10,186," No COM2 mouse",0 ;no_com2 db 13,10,186," No COM2 mouse",0
gr_acc db "Vesa 2.0+: <>«ξη¨βμ MTRR ¤«ο γα<CEB3>®ΰ¥­¨ο £ΰ δ¨<CEB4>¨? " ask_dma db "<EFBFBD>α―®«μ§®Ά βμ DMA ¤«ο § ―¨α¨ ­  HDD? [1-¤ /2-­¥β]: ",0
db "[1-¤ /2-­¥β]: ",0
;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? " ;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? "
; db "[1-¤ /2-­¥â]: ",0 ; db "[1-¤ /2-­¥â]: ",0
;mem_model db 13,10,186," Ž¡ê+¬ ¯ ¬ï⨠[1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Ž¡ê+¬ ¯ ¬ï⨠[1-16 Mb / 2-32 Mb / "
@ -120,7 +119,7 @@ mode9 db "320x200, EGA/CGA 256 梥⮢",0
mode10 db "640x480, VGA 16 梥⮢",0 mode10 db "640x480, VGA 16 梥⮢",0
probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0 probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0
probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0 probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0
mtrr_msg db " [b] <20>α―®«μ§®Ά ­¨¥ MTRR ¤«ο γα<CEB3>®ΰ¥­¨ο £ΰ δ¨<CEB4>¨:",0 dma_msg db " [b] <20>α―®«μ§®Ά ­¨¥ DMA ¤«ο § ―¨α¨ ­  HDD:",0
on_msg db " ¢ª«",13,10,0 on_msg db " ¢ª«",13,10,0
off_msg db " ¢ëª«",13,10,0 off_msg db " ¢ëª«",13,10,0
vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0 vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0

View File

@ -10,7 +10,7 @@ display_atboot db 0 ; show boot screen messages ( 2-no )
preboot_graph db 0 ; graph mode preboot_graph db 0 ; graph mode
preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes) preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes)
preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no) preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no)
preboot_mtrr db 0 ; mtrr acceleration (1-yes, 2-no) preboot_dma_write db 0 ; use DMA for writing to HDD (1-yes, 2-no)
preboot_device db 0 ; boot device preboot_device db 0 ; boot device
; (1-floppy 2-harddisk 3-kernel restart) ; (1-floppy 2-harddisk 3-kernel restart)
;!!!! 0 - autodetect !!!! ;!!!! 0 - autodetect !!!!

View File

@ -298,45 +298,13 @@ proc get_service stdcall, sz_name:dword
mov edx, [edx+SRV.fd] mov edx, [edx+SRV.fd]
jmp @B jmp @B
.not_load: .not_load:
stdcall find_service, [sz_name] pop ebp
test eax, eax jmp load_driver
jz @F
stdcall load_driver, eax
@@:
ret
.ok: .ok:
mov eax, edx mov eax, edx
ret ret
endp endp
align 4
proc find_service stdcall ,sz_name:dword
mov eax, [sz_name]
test eax, eax
jz .fail
mov esi, services
@@:
mov eax, [esi]
test eax, eax
jz .fail
push esi
stdcall strncmp, eax, [sz_name], 16
pop esi
test eax, eax
je .ok
add esi, 8
jmp @B
.ok:
mov eax, [esi+4]
ret
.fail:
xor eax, eax
ret
endp
align 4 align 4
reg_service: reg_service:
.sz_name equ esp+4 .sz_name equ esp+4
@ -705,7 +673,7 @@ proc fix_coff_relocs stdcall, coff:dword, sec:dword, sym:dword
endp endp
align 4 align 4
proc load_driver stdcall, file_name:dword proc load_driver stdcall, driver_name:dword
locals locals
coff dd ? coff dd ?
sym dd ? sym dd ?
@ -716,9 +684,27 @@ proc load_driver stdcall, file_name:dword
exports dd ? ;fake exports table exports dd ? ;fake exports table
dd ? dd ?
file_name rb 14+16+4+1 ; '/rd/1/drivers/<up-to-16-chars>.obj'
endl endl
stdcall load_file, [file_name] lea edx, [file_name]
mov dword [edx], '/rd/'
mov dword [edx+4], '1/dr'
mov dword [edx+8], 'iver'
mov word [edx+12], 's/'
mov esi, [driver_name]
lea edi, [edx+14]
mov ecx, 16
@@:
lodsb
test al, al
jz @f
stosb
loop @b
@@:
mov dword [edi], '.obj'
mov byte [edi+4], 0
stdcall load_file, edx
test eax, eax test eax, eax
jz .exit jz .exit
@ -835,7 +821,7 @@ proc load_driver stdcall, file_name:dword
.ver_fail: .ver_fail:
mov esi, msg_CR mov esi, msg_CR
call sys_msg_board_str call sys_msg_board_str
mov esi, [file_name] mov esi, [driver_name]
call sys_msg_board_str call sys_msg_board_str
mov esi, msg_CR mov esi, msg_CR
call sys_msg_board_str call sys_msg_board_str
@ -848,7 +834,7 @@ proc load_driver stdcall, file_name:dword
.link_fail: .link_fail:
mov esi, msg_module mov esi, msg_module
call sys_msg_board_str call sys_msg_board_str
mov esi, [file_name] mov esi, [driver_name]
call sys_msg_board_str call sys_msg_board_str
mov esi, msg_CR mov esi, msg_CR
call sys_msg_board_str call sys_msg_board_str
@ -1041,13 +1027,9 @@ destroy_kernel_object:
ret ret
drv_sound db '/rd/1/drivers/unisound.obj', 0 ;szSound db 'SOUND',0
drv_infinity db '/rd/1/drivers/infinity.obj', 0 ;szInfinity db 'INFINITY',0
drv_hw_mouse db '/rd/1/drivers/ati2d.obj',0 szHwMouse db 'ATI2D',0
szSound db 'SOUND',0
szInfinity db 'INFINITY',0
szHwMouse db 'HWCURSOR',0
szSTART db 'START',0 szSTART db 'START',0
szEXPORTS db 'EXPORTS',0 szEXPORTS db 'EXPORTS',0
@ -1063,10 +1045,3 @@ align 4
create_cursor dd 0 create_cursor dd 0
set_hw_cursor dd 0 set_hw_cursor dd 0
hw_restore dd 0 hw_restore dd 0
align 16
services:
dd szSound, drv_sound
dd szInfinity, drv_infinity
dd szHwMouse, drv_hw_mouse
dd 0

View File

@ -11,25 +11,42 @@ FindHDD:
mov [ChannelNumber],1 mov [ChannelNumber],1
mov [DiskNumber],0 mov [DiskNumber],0
call FindHDD_3 call FindHDD_3
; mov ax,[Sector512+176]
; mov [0x40006],ax
; mov ax,[Sector512+126]
; mov [0x40008],ax
; mov ax,[Sector512+128]
; mov [0x40008],ax
mov [DiskNumber],1 mov [DiskNumber],1
call FindHDD_3 call FindHDD_3
; mov al,[Sector512+176]
; mov [0x40007],al
inc [ChannelNumber] inc [ChannelNumber]
mov [DiskNumber],0 mov [DiskNumber],0
call FindHDD_3 call FindHDD_3
; mov al,[Sector512+176]
; mov [0x40008],al
mov [DiskNumber],1 mov [DiskNumber],1
call FindHDD_1 call FindHDD_1
; mov al,[Sector512+176]
; mov [0x40009],al
jmp EndFindHDD jmp EndFindHDD
FindHDD_1: FindHDD_1:
call DeviceReset
cmp [DevErrorCode],0
jne FindHDD_2_2
call ReadHDD_ID call ReadHDD_ID
cmp [DevErrorCode],0 cmp [DevErrorCode],0
jne FindHDD_2 jne FindHDD_2
cmp [Sector512+6],word 16
ja FindHDD_2
cmp [Sector512+12],word 255
ja FindHDD_2
inc byte [0x40001] inc byte [0x40001]
ret jmp FindHDD_2_2
FindHDD_2: FindHDD_2:
call DeviceReset
cmp [DevErrorCode],0
jne FindHDD_2_2
call ReadCD_ID call ReadCD_ID
cmp [DevErrorCode],0 cmp [DevErrorCode],0
jne FindHDD_2_2 jne FindHDD_2_2

View File

@ -1,4 +1,4 @@
ˆ…Œ<EFBFBD>… ”“<E2809D>Šˆˆ Ž<><EFBFBD>ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.6.4.0 ˆ…Œ<EFBFBD>… ”“<E2809D>Šˆˆ Ž<><EFBFBD>ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.6.5.0
<EFBFBD>®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax. <EFBFBD>®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40". ‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
@ -844,8 +844,8 @@
db a,b,c,d ¤«ï ¢¥àᨨ a.b.c.d db a,b,c,d ¤«ï ¢¥àᨨ a.b.c.d
db UID_xxx: ®¤­® ¨§ UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2 db UID_xxx: ®¤­® ¨§ UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
db 'name',0 - ASCIIZ-áâப  á ¨¬¥­¥¬ db 'name',0 - ASCIIZ-áâப  á ¨¬¥­¥¬
„«ï ï¤à  Kolibri 0.6.4.0: „«ï ï¤à  Kolibri 0.6.5.0:
db 0,6,4,0 db 0,6,5,0
db 2 db 2
db 'Kolibri',0 db 'Kolibri',0
@ -1118,10 +1118,9 @@ db 'Kolibri',0
=========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 7 - ãáâ ­®¢¨âì ¡ §ã HD. =========== =========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 7 - ãáâ ­®¢¨âì ¡ §ã HD. ===========
====================================================================== ======================================================================
<EFBFBD> §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨ <EFBFBD> §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© á¨á⥬®© ¨ ä㭪権, ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥© ä㭪樨 58;
­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ ᮢ६¥­­®£® ᨭ⠪á¨á  ¡ §  ãáâ ­ ¢«¨¢ ¥âáï  ¢â®¬ â¨ç¥áª¨.
/HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨ ãáâ ­ ¢«¨¢ îâ ¡ §ã.
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨 * eax = 21 - ­®¬¥à ä㭪樨
* ebx = 7 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 7 - ­®¬¥à ¯®¤ä㭪樨
@ -1140,11 +1139,9 @@ db 'Kolibri',0
========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 8 - ãáâ ­®¢¨âì à §¤¥« HD. ========== ========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 8 - ãáâ ­®¢¨âì à §¤¥« HD. ==========
====================================================================== ======================================================================
<EFBFBD> §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª  <EFBFBD> §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª 
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© ¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥©
á¨á⥬®© ¨ ä㭪権, ­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ä㭪樨 58; ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 /HD0,/HD1,/HD2,/HD3 ¡ §  ¨ à §¤¥« ãáâ ­ ¢«¨¢ îâáï  ¢â®¬ â¨ç¥áª¨.
¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨
ãáâ ­ ¢«¨¢ îâ ¡ §ã ¨ à §¤¥«.
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨 * eax = 21 - ­®¬¥à ä㭪樨
* ebx = 8 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 8 - ­®¬¥à ¯®¤ä㭪樨
@ -1552,10 +1549,9 @@ db 'Kolibri',0
============ ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 7 - ¯®«ãç¨âì ¡ §ã HD. ============ ============ ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 7 - ¯®«ãç¨âì ¡ §ã HD. ============
====================================================================== ======================================================================
<EFBFBD> §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨ <EFBFBD> §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© á¨á⥬®© ¨ ä㭪権, ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥© ä㭪樨 58;
­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ ᮢ६¥­­®£® ᨭ⠪á¨á  ¡ §  ãáâ ­ ¢«¨¢ ¥âáï  ¢â®¬ â¨ç¥áª¨.
/HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨ ãáâ ­ ¢«¨¢ îâ ¡ §ã.
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨 * eax = 26 - ­®¬¥à ä㭪樨
* ebx = 7 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 7 - ­®¬¥à ¯®¤ä㭪樨
@ -1570,11 +1566,9 @@ db 'Kolibri',0
=========== ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 8 - ¯®«ãç¨âì à §¤¥« HD. =========== =========== ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 8 - ¯®«ãç¨âì à §¤¥« HD. ===========
====================================================================== ======================================================================
<EFBFBD> §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª  <EFBFBD> §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª 
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© ¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥©
á¨á⥬®© ¨ ä㭪権, ­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ä㭪樨 58; ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ /HD0,/HD1,/HD2,/HD3 ¡ §  ¨ à §¤¥« ãáâ ­ ¢«¨¢ îâáï  ¢â®¬ â¨ç¥áª¨.
ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨
ãáâ ­ ¢«¨¢ îâ ¡ §ã ¨ à §¤¥«.
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨 * eax = 26 - ­®¬¥à ä㭪樨
* ebx = 8 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 8 - ­®¬¥à ¯®¤ä㭪樨
@ -2720,24 +2714,26 @@ dword-
­¥ ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î ­¥ ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î
* al = 0 - ª ¡¥«ì ­¥ ¯®¤ª«îçñ­ * al = 0 - ª ¡¥«ì ­¥ ¯®¤ª«îçñ­
* al = 1 - ª ¡¥«ì ¯®¤ª«îçñ­ * al = 1 - ª ¡¥«ì ¯®¤ª«îçñ­
* ebx à §àãè ¥âáï
‡ ¬¥ç ­¨ï: ‡ ¬¥ç ­¨ï:
* ’¥ªãé ï ॠ«¨§ æ¨ï ï¤à  ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î * ’¥ªãé ï ॠ«¨§ æ¨ï ï¤à  ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î
⮫쪮 ¤«ï á¥â¥¢ëå ª àâ RTL8139. ⮫쪮 ¤«ï á¥â¥¢ëå ª àâ RTL8139.
====================================================================== ======================================================================
==== ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 11 - ¯à®ç¨â âì ¤ ­­ë¥ ¨§ á⥪ . ==== ==== ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 11 - ¯à®ç¨â âì ¤ ­­ë¥ á¥â¥¢®£® á⥪ . ====
====================================================================== ======================================================================
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 53 - ­®¬¥à ä㭪樨 * eax = 53 - ­®¬¥à ä㭪樨
* ebx = 11 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 11 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ­®¬¥à ᮪¥â  * ecx = åí­¤« ᮪¥â 
* edx = 㪠§ â¥«ì, ªã¤  ¤®«¦­ë ¡ëâì § ¯¨á ­ë ¤ ­­ë¥ * edx = 㪠§ â¥«ì ­  ¡ãä¥à
* esi = à §¬¥à ¡ãä¥à  (¬ ªá¨¬ã¬ ¡ ©â, ª®â®àë¥ ¡ã¤ãâ ᪮¯¨à®¢ ­ë) * esi = ç¨á«® ¡ ©â ¤«ï ç⥭¨ï;
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥: * esi = 0 - ç¨â âì ¢á¥ ¤ ­­ë¥ (¬ ªá¨¬ã¬ 4096 ¡ ©â)
* eax = ª®«¨ç¥á⢮ ᪮¯¨à®¢ ­­ëå ¡ ©â ‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ç¨á«® ¯à®ç¨â ­­ëå ¡ ©â
* ebx à §àãè ¥âáï
‡ ¬¥ç ­¨ï: ‡ ¬¥ç ­¨ï:
* …᫨ à §¬¥à ¡ãä¥à  à ¢¥­ 0, ¡ã¤ãâ ᪮¯¨à®¢ ­ë ¢á¥ ¤ ­­ë¥ * <20>஢¥àª¨ ­  ¯à ¢¨«ì­®áâì åí­¤«  ­¥ ¤¥« ¥âáï.
(¬ ªá¨¬ã¬ 4096 ¡ ©â)
====================================================================== ======================================================================
”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 255 - ®â« ¤®ç­ ï ¨­ä®à¬ æ¨ï á¥â¥¢®£® ¤à ©¢¥à . ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 255 - ®â« ¤®ç­ ï ¨­ä®à¬ æ¨ï á¥â¥¢®£® ¤à ©¢¥à .
@ -3692,10 +3688,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* ˆ¬ï ¤à ©¢¥à  çã¢á⢨⥫쭮 ª ॣ¨áâàã ᨬ¢®«®¢. * ˆ¬ï ¤à ©¢¥à  çã¢á⢨⥫쭮 ª ॣ¨áâàã ᨬ¢®«®¢.
Œ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ - 16 ᨬ¢®«®¢, ¢ª«îç ï § ¢¥àè î騩 Œ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ - 16 ᨬ¢®«®¢, ¢ª«îç ï § ¢¥àè î騩
­ã«¥¢®© ᨬ¢®«, ®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï. ­ã«¥¢®© ᨬ¢®«, ®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï.
* Œ®¦­® § £à㦠âì ⮫쪮 ¤à ©¢¥à , § à¥£¨áâà¨à®¢ ­­ë¥ ¢ á¨á⥬¥; * „à ©¢¥à á ¨¬¥­¥¬ ABC § £à㦠¥âáï ¨§ ä ©«  /rd/1/drivers/ABC.obj.
¢ ⥪ã饩 ॠ«¨§ æ¨¨ ¥áâì ஢­® 2 â ª¨å ¤à ©¢¥à :
* ¨¬ï SOUND, ä ©« /rd/1/drivers/unisound.obj
* ¨¬ï INFINITY, ä ©« /rd/1/drivers/infinity.obj
====================================================================== ======================================================================
========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 17 - ã¯à ¢«¥­¨¥ ¤à ©¢¥à®¬. ========= ========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 17 - ã¯à ¢«¥­¨¥ ¤à ©¢¥à®¬. =========

View File

@ -1,4 +1,4 @@
SYSTEM FUNCTIONS of OS Kolibri 0.6.4.0 SYSTEM FUNCTIONS of OS Kolibri 0.6.5.0
Number of the function is located in the register eax. Number of the function is located in the register eax.
The call of the system function is executed by "int 0x40" command. The call of the system function is executed by "int 0x40" command.
@ -676,7 +676,7 @@ Parameters:
Returned value: Returned value:
* eax = 0 - success * eax = 0 - success
* else eax = error code of the file system * else eax = error code of the file system
Remarks: Çàìå÷àíèÿ:
* All folders in the given path must exist, otherwise function * All folders in the given path must exist, otherwise function
returns value 5, "file not found". returns value 5, "file not found".
@ -843,8 +843,8 @@ Structure of the buffer:
db a,b,c,d for version a.b.c.d db a,b,c,d for version a.b.c.d
db UID_xxx: one of UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2 db UID_xxx: one of UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
db 'name',0 - ASCIIZ-string with the name db 'name',0 - ASCIIZ-string with the name
For Kolibri 0.6.4.0 kernel: For Kolibri 0.6.5.0 kernel:
db 0,6,4,0 db 0,6,5,0
db 2 db 2
db 'Kolibri',0 db 'Kolibri',0
@ -1112,10 +1112,8 @@ Remarks:
============== Function 21, subfunction 7 - set HD base. ============= ============== Function 21, subfunction 7 - set HD base. =============
====================================================================== ======================================================================
The HD base defines hard disk to write with usage of obsolete The HD base defines hard disk to write with usage of obsolete
file system functions and functions implicitly using the hard disk syntax /HD in obsolete function 58; at usage of modern syntax
(such as subfunction 6 of function 18); /HD0,/HD1,/HD2,/HD3 base is set automatically.
at usage of function 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3
these function set base themselves.
Parameters: Parameters:
* eax = 21 - function number * eax = 21 - function number
* ebx = 7 - subfunction number * ebx = 7 - subfunction number
@ -1134,10 +1132,9 @@ Remarks:
========= Function 21, subfunction 8 - set used HD partition. ======== ========= Function 21, subfunction 8 - set used HD partition. ========
====================================================================== ======================================================================
The HD partition defines partition of the hard disk to write with The HD partition defines partition of the hard disk to write with
usage of obsolete file system functions and functions implicitly usage of obsolete syntax /HD and obsolete function 58;
using the hard disk (such as subfunction 6 of function 18);
at usage of functions 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3 at usage of functions 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3
these functions set base and partition themselves. base and partition are set automatically.
Parameters: Parameters:
* eax = 21 - function number * eax = 21 - function number
* ebx = 8 - subfunction number * ebx = 8 - subfunction number
@ -1532,10 +1529,8 @@ Remarks:
============== Function 26, subfunction 7 - get HD base. ============= ============== Function 26, subfunction 7 - get HD base. =============
====================================================================== ======================================================================
The HD base defines hard disk to write with usage of obsolete The HD base defines hard disk to write with usage of obsolete
file system functions and functions implicitly using the hard disk syntax /HD in obsolete function 58; at usage of modern syntax
(such as subfunction 6 of function 18); /HD0,/HD1,/HD2,/HD3 base is set automatically.
at usage of function 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3
these function set base themselves.
Parameters: Parameters:
* eax = 26 - function number * eax = 26 - function number
* ebx = 7 - subfunction number * ebx = 7 - subfunction number
@ -1550,10 +1545,9 @@ Remarks:
========= Function 26, subfunction 8 - get used HD partition. ======== ========= Function 26, subfunction 8 - get used HD partition. ========
====================================================================== ======================================================================
The HD partition defines partition of the hard disk to write with The HD partition defines partition of the hard disk to write with
usage of obsolete file system functions and functions implicitly usage of obsolete syntax /HD in obsolete function 58;
using the hard disk (such as subfunction 6 of function 18);
at usage of functions 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3 at usage of functions 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3
these functions set base and partition themselves. base and partition are set automatically.
Parameters: Parameters:
* eax = 26 - function number * eax = 26 - function number
* ebx = 8 - subfunction number * ebx = 8 - subfunction number
@ -2696,24 +2690,26 @@ Returned value:
does not support this function does not support this function
* al = 0 - Ethernet cable is unplugged * al = 0 - Ethernet cable is unplugged
* al = 1 - Ethernet cable is plugged * al = 1 - Ethernet cable is plugged
* ebx destroyed
Remarks: Remarks:
* The current kernel implementation supports this function * The current kernel implementation supports this function
only for RTL8139 network cards. only for RTL8139 network cards.
====================================================================== ======================================================================
===== Function 53, subfunction 10 - read data from stack. ===== ======= Function 53, subfunction 11 - read network stack data. =======
====================================================================== ======================================================================
Parameters: Paramters:
* eax = 53 * eax = 53 - function number
* ebx = 11 * ebx = 11 - subfunction number
* ecx = socket number * ecx = socket handle
* edx = pointer to where data must be written * edx = pointer to buffer
* esi = buffer size (max bytes of data to copy) * esi = number of bytes to read;
Returned value: * esi = 0 - read all data (maximum 4096 bytes)
* eax = number of bytes copied Returned value:
Remarks: * eax = number of bytes read
* if buffer size is zero, all data will be copied * ebx destroyed
(this will be max 4096 bytes) Remakrs:
* There is no check on handle correctness.
====================================================================== ======================================================================
= Function 53, subfunction 255 - debug information of network driver. = Function 53, subfunction 255 - debug information of network driver.
@ -3662,11 +3658,7 @@ Remarks:
* Driver name is case-sensitive. * Driver name is case-sensitive.
Maximum length of the name is 16 characters, including Maximum length of the name is 16 characters, including
terminating null character, the rest is ignored. terminating null character, the rest is ignored.
* The function can load only drivers which are registered in the * Driver ABC is loaded from file /rd/1/drivers/ABC.obj.
system; the current implementation contains
exactly 2 such drivers:
* name SOUND, file /rd/1/drivers/unisound.obj
* name INFINITY, file /rd/1/drivers/infinity.obj
====================================================================== ======================================================================
============ Function 68, subfunction 17 - driver control. =========== ============ Function 68, subfunction 17 - driver control. ===========

View File

@ -700,7 +700,7 @@ mm80 dq 0x8080808080808080
mm_mask dq 0xFF00FF00FF00FF00 mm_mask dq 0xFF00FF00FF00FF00
;stream_map dd 0xFFFF ; 16 ;stream_map dd 0xFFFF ; 16
version dd 0x00030004 version dd 0x00030003
szInfinity db 'INFINITY',0 szInfinity db 'INFINITY',0
szSound db 'SOUND',0 szSound db 'SOUND',0

View File

@ -77,7 +77,7 @@ drawbar dd __sys_drawbar.forced
putpixel dd __sys_putpixel putpixel dd __sys_putpixel
; } mike.dld ; } mike.dld
version db 'Kolibri OS version 0.6.3.0 ',13,10,13,10,0 version db 'Kolibri OS version 0.6.5.0 ',13,10,13,10,0
;dd endofcode-0x10000 ;dd endofcode-0x10000
;db 'Boot02' ;db 'Boot02'
@ -231,7 +231,7 @@ iglobal
char2 db 'FONTS/CHAR2.MT',0 char2 db 'FONTS/CHAR2.MT',0
bootpath db '/KOLIBRI ' bootpath db '/KOLIBRI '
bootpath2 db 0 bootpath2 db 0
vmode db 'VMODE.MDR',0 vmode db 'drivers/VMODE.MDR',0
vrr_m db '/rd/1/VRR_M',0 vrr_m db '/rd/1/VRR_M',0
endg endg
@ -290,6 +290,8 @@ B32:
; ----------------------------------------- ; -----------------------------------------
; movzx eax,byte [0x2f0000+0x9010] ; mouse port ; movzx eax,byte [0x2f0000+0x9010] ; mouse port
; mov [0xF604],byte 1 ;al ; mov [0xF604],byte 1 ;al
mov al, [0x2F0000+0x901F] ; DMA writing
mov [allow_dma_write], al
mov al,[0x2f0000+0x9000] ; bpp mov al,[0x2f0000+0x9000] ; bpp
mov [0xFBF1],al mov [0xFBF1],al
movzx eax,word [0x2f0000+0x900A] ; X max movzx eax,word [0x2f0000+0x900A] ; X max
@ -2139,7 +2141,7 @@ endg
iglobal iglobal
version_inf: version_inf:
db 0,6,3,0 ; version 0.6.3.0 db 0,6,5,0 ; version 0.6.5.0
db UID_KOLIBRI db UID_KOLIBRI
db 'Kolibri',0 db 'Kolibri',0
version_end: version_end:

View File

@ -14,6 +14,7 @@
; 0:901C byte 0 or 1 : enable MTRR graphics acceleration ; 0:901C byte 0 or 1 : enable MTRR graphics acceleration
; 0:901D byte not used anymore (0 or 1 : enable system log display) ; 0:901D byte not used anymore (0 or 1 : enable system log display)
; 0:901E byte 0 or 1 : enable direct lfb write, paging disabled ; 0:901E byte 0 or 1 : enable direct lfb write, paging disabled
; 0:901F byte DMA write : 1=yes, 2=no
; 0:9020 8bytes pci data ; 0:9020 8bytes pci data
; 0:9030 byte VRR start enabled 1, 2-no ; 0:9030 byte VRR start enabled 1, 2-no
; 0:9031 word IDEContrRegsBaseAddr ; 0:9031 word IDEContrRegsBaseAddr

View File

@ -442,7 +442,7 @@ proc init_cursors
.init: .init:
mov [cur_def_interl], ebx mov [cur_def_interl], ebx
stdcall load_driver, drv_hw_mouse stdcall load_driver, szHwMouse
mov [hw_cursor], eax mov [hw_cursor], eax
test eax, eax test eax, eax
jz .sw_mouse jz .sw_mouse