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

View File

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

View File

@ -73,8 +73,7 @@ vrrmprint db "Apply VRR? (picture frequency greater than 60Hz"
; db " Select port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0
gr_acc db "Vesa 2.0+ : MTRR graphics acceleration "
db "[1-yes/2-no] ? ",0
ask_dma db "Use DMA for HDD writing? [1-yes/2-no]: ",0
;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0
;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
probeno_msg db " (standard mode)",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
off_msg db " off",13,10,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
;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0
gr_acc db "Vesa 2.0+ : MTRR graafika kiirendus "
db "[1-jah/2-ei] ? ",0
ask_dma db "Use DMA for HDD writing? [1-jah/2-ei]: ",0
;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0
;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
probeno_msg db " (standard reziim)",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
off_msg db " väljas",13,10,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
;no_com1 db 13,10,186, " Keine COM1 Maus",0
;no_com2 db 13,10,186, " Keine COM2 Maus",0
gr_acc db "Vesa 2.0+ : MTRR Grafikbeschleunigung "
db "[1-ja/2-nein] ? ",0
ask_dma db "Nutze DMA zum HDD Aufschreiben? [1-ja/2-nein]: ",0
;gr_direct db 186," Benutze direct LFB? "
; db "[1-ja/2-nein] ? ",0
;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
probeno_msg db " (Standard Modus)",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
off_msg db " aus",13,10,0
vrrm_msg db " [c] Nutze VRR:",0

View File

@ -73,8 +73,7 @@ vrrmprint db "
; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0
;no_com1 db 13,10,186," No COM1 mouse",0
;no_com2 db 13,10,186," No COM2 mouse",0
gr_acc db "Vesa 2.0+: <>«ξη¨βμ MTRR ¤«ο γα<CEB3>®ΰ¥­¨ο £ΰ δ¨<CEB4>¨? "
db "[1-¤ /2-­¥β]: ",0
ask_dma db "<EFBFBD>α―®«μ§®Ά βμ DMA ¤«ο § ―¨α¨ ­  HDD? [1-¤ /2-­¥β]: ",0
;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? "
; db "[1-¤ /2-­¥â]: ",0
;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
probeno_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
off_msg db " ¢ëª«",13,10,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_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes)
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
; (1-floppy 2-harddisk 3-kernel restart)
;!!!! 0 - autodetect !!!!

View File

@ -298,45 +298,13 @@ proc get_service stdcall, sz_name:dword
mov edx, [edx+SRV.fd]
jmp @B
.not_load:
stdcall find_service, [sz_name]
test eax, eax
jz @F
stdcall load_driver, eax
@@:
ret
pop ebp
jmp load_driver
.ok:
mov eax, edx
ret
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
reg_service:
.sz_name equ esp+4
@ -705,7 +673,7 @@ proc fix_coff_relocs stdcall, coff:dword, sec:dword, sym:dword
endp
align 4
proc load_driver stdcall, file_name:dword
proc load_driver stdcall, driver_name:dword
locals
coff dd ?
sym dd ?
@ -716,9 +684,27 @@ proc load_driver stdcall, file_name:dword
exports dd ? ;fake exports table
dd ?
file_name rb 14+16+4+1 ; '/rd/1/drivers/<up-to-16-chars>.obj'
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
jz .exit
@ -835,7 +821,7 @@ proc load_driver stdcall, file_name:dword
.ver_fail:
mov esi, msg_CR
call sys_msg_board_str
mov esi, [file_name]
mov esi, [driver_name]
call sys_msg_board_str
mov esi, msg_CR
call sys_msg_board_str
@ -848,7 +834,7 @@ proc load_driver stdcall, file_name:dword
.link_fail:
mov esi, msg_module
call sys_msg_board_str
mov esi, [file_name]
mov esi, [driver_name]
call sys_msg_board_str
mov esi, msg_CR
call sys_msg_board_str
@ -1041,13 +1027,9 @@ destroy_kernel_object:
ret
drv_sound db '/rd/1/drivers/unisound.obj', 0
drv_infinity db '/rd/1/drivers/infinity.obj', 0
drv_hw_mouse db '/rd/1/drivers/ati2d.obj',0
szSound db 'SOUND',0
szInfinity db 'INFINITY',0
szHwMouse db 'HWCURSOR',0
;szSound db 'SOUND',0
;szInfinity db 'INFINITY',0
szHwMouse db 'ATI2D',0
szSTART db 'START',0
szEXPORTS db 'EXPORTS',0
@ -1063,10 +1045,3 @@ align 4
create_cursor dd 0
set_hw_cursor 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 [DiskNumber],0
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
call FindHDD_3
; mov al,[Sector512+176]
; mov [0x40007],al
inc [ChannelNumber]
mov [DiskNumber],0
call FindHDD_3
; mov al,[Sector512+176]
; mov [0x40008],al
mov [DiskNumber],1
call FindHDD_1
; mov al,[Sector512+176]
; mov [0x40009],al
jmp EndFindHDD
FindHDD_1:
call DeviceReset
cmp [DevErrorCode],0
jne FindHDD_2_2
call ReadHDD_ID
cmp [DevErrorCode],0
jne FindHDD_2
cmp [Sector512+6],word 16
ja FindHDD_2
cmp [Sector512+12],word 255
ja FindHDD_2
inc byte [0x40001]
ret
jmp FindHDD_2_2
FindHDD_2:
call DeviceReset
cmp [DevErrorCode],0
jne FindHDD_2_2
call ReadCD_ID
cmp [DevErrorCode],0
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.
‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
@ -844,8 +844,8 @@
db a,b,c,d ¤«ï ¢¥àᨨ a.b.c.d
db UID_xxx: ®¤­® ¨§ UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
db 'name',0 - ASCIIZ-áâப  á ¨¬¥­¥¬
„«ï ï¤à  Kolibri 0.6.4.0:
db 0,6,4,0
„«ï ï¤à  Kolibri 0.6.5.0:
db 0,6,5,0
db 2
db 'Kolibri',0
@ -1118,10 +1118,9 @@ db 'Kolibri',0
=========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 7 - ãáâ ­®¢¨âì ¡ §ã HD. ===========
======================================================================
<EFBFBD> §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© á¨á⥬®© ¨ ä㭪権,
­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ¯®¤ä㭪樨 6 ä㭪樨 18);
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨ ãáâ ­ ¢«¨¢ îâ ¡ §ã.
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥© ä㭪樨 58;
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3
¡ §  ãáâ ­ ¢«¨¢ ¥âáï  ¢â®¬ â¨ç¥áª¨.
<EFBFBD> à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨
* ebx = 7 - ­®¬¥à ¯®¤ä㭪樨
@ -1140,11 +1139,9 @@ db 'Kolibri',0
========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 8 - ãáâ ­®¢¨âì à §¤¥« HD. ==========
======================================================================
<EFBFBD> §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª 
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®©
á¨á⥬®© ¨ ä㭪権, ­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯ 
¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70
¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨
ãáâ ­ ¢«¨¢ îâ ¡ §ã ¨ à §¤¥«.
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥©
ä㭪樨 58; ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 ¡ §  ¨ à §¤¥« ãáâ ­ ¢«¨¢ îâáï  ¢â®¬ â¨ç¥áª¨.
<EFBFBD> à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨
* ebx = 8 - ­®¬¥à ¯®¤ä㭪樨
@ -1552,10 +1549,9 @@ db 'Kolibri',0
============ ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 7 - ¯®«ãç¨âì ¡ §ã HD. ============
======================================================================
<EFBFBD> §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© á¨á⥬®© ¨ ä㭪権,
­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ¯®¤ä㭪樨 6 ä㭪樨 18);
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨ ãáâ ­ ¢«¨¢ îâ ¡ §ã.
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥© ä㭪樨 58;
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3
¡ §  ãáâ ­ ¢«¨¢ ¥âáï  ¢â®¬ â¨ç¥áª¨.
<EFBFBD> à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨
* ebx = 7 - ­®¬¥à ¯®¤ä㭪樨
@ -1570,11 +1566,9 @@ db 'Kolibri',0
=========== ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 8 - ¯®«ãç¨âì à §¤¥« HD. ===========
======================================================================
<EFBFBD> §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª 
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®©
á¨á⥬®© ¨ ä㭪権, ­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯ 
¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨
ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨
ãáâ ­ ¢«¨¢ îâ ¡ §ã ¨ à §¤¥«.
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥©
ä㭪樨 58; ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 ¡ §  ¨ à §¤¥« ãáâ ­ ¢«¨¢ îâáï  ¢â®¬ â¨ç¥áª¨.
<EFBFBD> à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨
* ebx = 8 - ­®¬¥à ¯®¤ä㭪樨
@ -2720,24 +2714,26 @@ dword-
­¥ ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î
* al = 0 - ª ¡¥«ì ­¥ ¯®¤ª«îçñ­
* al = 1 - ª ¡¥«ì ¯®¤ª«îçñ­
* ebx à §àãè ¥âáï
‡ ¬¥ç ­¨ï:
* ’¥ªãé ï ॠ«¨§ æ¨ï ï¤à  ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î
⮫쪮 ¤«ï á¥â¥¢ëå ª àâ RTL8139.
======================================================================
==== ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 11 - ¯à®ç¨â âì ¤ ­­ë¥ ¨§ á⥪ . ====
==== ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 11 - ¯à®ç¨â âì ¤ ­­ë¥ á¥â¥¢®£® á⥪ . ====
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 53 - ­®¬¥à ä㭪樨
* ebx = 11 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ­®¬¥à ᮪¥â 
* edx = 㪠§ â¥«ì, ªã¤  ¤®«¦­ë ¡ëâì § ¯¨á ­ë ¤ ­­ë¥
* esi = à §¬¥à ¡ãä¥à  (¬ ªá¨¬ã¬ ¡ ©â, ª®â®àë¥ ¡ã¤ãâ ᪮¯¨à®¢ ­ë)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ª®«¨ç¥á⢮ ᪮¯¨à®¢ ­­ëå ¡ ©â
* ecx = åí­¤« ᮪¥â 
* edx = 㪠§ â¥«ì ­  ¡ãä¥à
* esi = ç¨á«® ¡ ©â ¤«ï ç⥭¨ï;
* esi = 0 - ç¨â âì ¢á¥ ¤ ­­ë¥ (¬ ªá¨¬ã¬ 4096 ¡ ©â)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ç¨á«® ¯à®ç¨â ­­ëå ¡ ©â
* ebx à §àãè ¥âáï
‡ ¬¥ç ­¨ï:
* …᫨ à §¬¥à ¡ãä¥à  à ¢¥­ 0, ¡ã¤ãâ ᪮¯¨à®¢ ­ë ¢á¥ ¤ ­­ë¥
(¬ ªá¨¬ã¬ 4096 ¡ ©â)
* <20>஢¥àª¨ ­  ¯à ¢¨«ì­®áâì åí­¤«  ­¥ ¤¥« ¥âáï.
======================================================================
”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 255 - ®â« ¤®ç­ ï ¨­ä®à¬ æ¨ï á¥â¥¢®£® ¤à ©¢¥à .
@ -3692,10 +3688,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* ˆ¬ï ¤à ©¢¥à  çã¢á⢨⥫쭮 ª ॣ¨áâàã ᨬ¢®«®¢.
Œ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ - 16 ᨬ¢®«®¢, ¢ª«îç ï § ¢¥àè î騩
­ã«¥¢®© ᨬ¢®«, ®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï.
* Œ®¦­® § £à㦠âì ⮫쪮 ¤à ©¢¥à , § à¥£¨áâà¨à®¢ ­­ë¥ ¢ á¨á⥬¥;
¢ ⥪ã饩 ॠ«¨§ æ¨¨ ¥áâì ஢­® 2 â ª¨å ¤à ©¢¥à :
* ¨¬ï SOUND, ä ©« /rd/1/drivers/unisound.obj
* ¨¬ï INFINITY, ä ©« /rd/1/drivers/infinity.obj
* „à ©¢¥à á ¨¬¥­¥¬ ABC § £à㦠¥âáï ¨§ ä ©«  /rd/1/drivers/ABC.obj.
======================================================================
========== ”ã­ªæ¨ï 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.
The call of the system function is executed by "int 0x40" command.
@ -676,7 +676,7 @@ Parameters:
Returned value:
* eax = 0 - success
* else eax = error code of the file system
Remarks:
Çàìå÷àíèÿ:
* All folders in the given path must exist, otherwise function
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 UID_xxx: one of UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
db 'name',0 - ASCIIZ-string with the name
For Kolibri 0.6.4.0 kernel:
db 0,6,4,0
For Kolibri 0.6.5.0 kernel:
db 0,6,5,0
db 2
db 'Kolibri',0
@ -1112,10 +1112,8 @@ Remarks:
============== Function 21, subfunction 7 - set HD base. =============
======================================================================
The HD base defines hard disk to write with usage of obsolete
file system functions and functions implicitly using the hard disk
(such as subfunction 6 of function 18);
at usage of function 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3
these function set base themselves.
syntax /HD in obsolete function 58; at usage of modern syntax
/HD0,/HD1,/HD2,/HD3 base is set automatically.
Parameters:
* eax = 21 - function number
* ebx = 7 - subfunction number
@ -1134,10 +1132,9 @@ Remarks:
========= Function 21, subfunction 8 - set used HD partition. ========
======================================================================
The HD partition defines partition of the hard disk to write with
usage of obsolete file system functions and functions implicitly
using the hard disk (such as subfunction 6 of function 18);
usage of obsolete syntax /HD and obsolete function 58;
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:
* eax = 21 - function number
* ebx = 8 - subfunction number
@ -1532,10 +1529,8 @@ Remarks:
============== Function 26, subfunction 7 - get HD base. =============
======================================================================
The HD base defines hard disk to write with usage of obsolete
file system functions and functions implicitly using the hard disk
(such as subfunction 6 of function 18);
at usage of function 58 and 70 and modern syntax /HD0,/HD1,/HD2,/HD3
these function set base themselves.
syntax /HD in obsolete function 58; at usage of modern syntax
/HD0,/HD1,/HD2,/HD3 base is set automatically.
Parameters:
* eax = 26 - function number
* ebx = 7 - subfunction number
@ -1550,10 +1545,9 @@ Remarks:
========= Function 26, subfunction 8 - get used HD partition. ========
======================================================================
The HD partition defines partition of the hard disk to write with
usage of obsolete file system functions and functions implicitly
using the hard disk (such as subfunction 6 of function 18);
usage of obsolete syntax /HD in obsolete function 58;
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:
* eax = 26 - function number
* ebx = 8 - subfunction number
@ -2696,24 +2690,26 @@ Returned value:
does not support this function
* al = 0 - Ethernet cable is unplugged
* al = 1 - Ethernet cable is plugged
* ebx destroyed
Remarks:
* The current kernel implementation supports this function
only for RTL8139 network cards.
======================================================================
===== Function 53, subfunction 10 - read data from stack. =====
======= Function 53, subfunction 11 - read network stack data. =======
======================================================================
Parameters:
* eax = 53
* ebx = 11
* ecx = socket number
* edx = pointer to where data must be written
* esi = buffer size (max bytes of data to copy)
Returned value:
* eax = number of bytes copied
Remarks:
* if buffer size is zero, all data will be copied
(this will be max 4096 bytes)
Paramters:
* eax = 53 - function number
* ebx = 11 - subfunction number
* ecx = socket handle
* edx = pointer to buffer
* esi = number of bytes to read;
* esi = 0 - read all data (maximum 4096 bytes)
Returned value:
* eax = number of bytes read
* ebx destroyed
Remakrs:
* There is no check on handle correctness.
======================================================================
= Function 53, subfunction 255 - debug information of network driver.
@ -3662,11 +3658,7 @@ Remarks:
* Driver name is case-sensitive.
Maximum length of the name is 16 characters, including
terminating null character, the rest is ignored.
* The function can load only drivers which are registered in the
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
* Driver ABC is loaded from file /rd/1/drivers/ABC.obj.
======================================================================
============ Function 68, subfunction 17 - driver control. ===========

View File

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

View File

@ -77,7 +77,7 @@ drawbar dd __sys_drawbar.forced
putpixel dd __sys_putpixel
; } 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
;db 'Boot02'
@ -231,7 +231,7 @@ iglobal
char2 db 'FONTS/CHAR2.MT',0
bootpath db '/KOLIBRI '
bootpath2 db 0
vmode db 'VMODE.MDR',0
vmode db 'drivers/VMODE.MDR',0
vrr_m db '/rd/1/VRR_M',0
endg
@ -290,6 +290,8 @@ B32:
; -----------------------------------------
; movzx eax,byte [0x2f0000+0x9010] ; mouse port
; mov [0xF604],byte 1 ;al
mov al, [0x2F0000+0x901F] ; DMA writing
mov [allow_dma_write], al
mov al,[0x2f0000+0x9000] ; bpp
mov [0xFBF1],al
movzx eax,word [0x2f0000+0x900A] ; X max
@ -2139,7 +2141,7 @@ endg
iglobal
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 'Kolibri',0
version_end:

View File

@ -14,6 +14,7 @@
; 0:901C byte 0 or 1 : enable MTRR graphics acceleration
; 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:901F byte DMA write : 1=yes, 2=no
; 0:9020 8bytes pci data
; 0:9030 byte VRR start enabled 1, 2-no
; 0:9031 word IDEContrRegsBaseAddr

View File

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