Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 345 → Rev 346

/kernel/trunk/blkdev/hd_drv.inc
221,8 → 221,10
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
586,6 → 588,7
cache_chain_started db 0
dma_task_switched db 0
dma_hdd db 0
allow_dma_write db 0
endg
 
align 4
/kernel/trunk/boot/bootcode.inc
580,7 → 580,7
; 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
@@:
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
.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
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,10 → 1018,14
 
 
; 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
 
mov al,[preboot_vrrm-0x10000]
/kernel/trunk/boot/booteng.inc
73,8 → 73,7
; 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
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
/kernel/trunk/boot/bootet.inc
73,8 → 73,7
; 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
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
/kernel/trunk/boot/bootge.inc
78,8 → 78,7
; 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
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
/kernel/trunk/boot/bootru.inc
73,8 → 73,7
; 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 ¤«ï ã᪮७¨ï £à ä¨ª¨? "
db "[1-¤ /2-­¥â]: ",0
ask_dma db "ˆá¯®«ì§®¢ âì 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
mode10 db "640x480, VGA 16 梥⮢",0
probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0
probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0
mtrr_msg db " [b] ˆá¯®«ì§®¢ ­¨¥ MTRR ¤«ï ã᪮७¨ï £à ä¨ª¨:",0
dma_msg db " [b] ˆá¯®«ì§®¢ ­¨¥ DMA ¤«ï § ¯¨á¨ ­  HDD:",0
on_msg db " ¢ª«",13,10,0
off_msg db " ¢ëª«",13,10,0
vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0
/kernel/trunk/boot/preboot.inc
10,7 → 10,7
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 !!!!
/kernel/trunk/core/dll.inc
298,12 → 298,8
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
310,34 → 306,6
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
.handler equ esp+8
705,7 → 673,7
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
 
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
.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
.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,14 → 1027,10
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 'ATI2D',0
 
szSound db 'SOUND',0
szInfinity db 'INFINITY',0
szHwMouse db 'HWCURSOR',0
 
szSTART db 'START',0
szEXPORTS db 'EXPORTS',0
szIMPORTS db 'IMPORTS',0
1063,10 → 1045,3
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
/kernel/trunk/detect/dev_hdcd.inc
11,25 → 11,42
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
/kernel/trunk/docs/sysfuncr.txt
1,4 → 1,4
‘ˆ‘’…Œ›… ”“Š–ˆˆ Ž…€–ˆŽŽ‰ ‘ˆ‘’…Œ› Kolibri 0.6.4.0
‘ˆ‘’…Œ›… ”“Š–ˆˆ Ž…€–ˆŽŽ‰ ‘ˆ‘’…Œ› Kolibri 0.6.5.0
 
®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà 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
=========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 7 - ãáâ ­®¢¨âì ¡ §ã HD. ===========
======================================================================
 §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© á¨á⥬®© ¨ ä㭪権,
­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ¯®¤ä㭪樨 6 ä㭪樨 18);
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨ ãáâ ­ ¢«¨¢ îâ ¡ §ã.
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥© ä㭪樨 58;
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3
¡ §  ãáâ ­ ¢«¨¢ ¥âáï  ¢â®¬ â¨ç¥áª¨.
 à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨
* ebx = 7 - ­®¬¥à ¯®¤ä㭪樨
1140,11 → 1139,9
========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 8 - ãáâ ­®¢¨âì à §¤¥« HD. ==========
======================================================================
 §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª 
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®©
á¨á⥬®© ¨ ä㭪権, ­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯ 
¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70
¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨
ãáâ ­ ¢«¨¢ îâ ¡ §ã ¨ à §¤¥«.
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥©
ä㭪樨 58; ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 ¡ §  ¨ à §¤¥« ãáâ ­ ¢«¨¢ îâáï  ¢â®¬ â¨ç¥áª¨.
 à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨
* ebx = 8 - ­®¬¥à ¯®¤ä㭪樨
1552,10 → 1549,9
============ ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 7 - ¯®«ãç¨âì ¡ §ã HD. ============
======================================================================
 §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®© á¨á⥬®© ¨ ä㭪権,
­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯  ¯®¤ä㭪樨 6 ä㭪樨 18);
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨ ãáâ ­ ¢«¨¢ îâ ¡ §ã.
¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥© ä㭪樨 58;
¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3
¡ §  ãáâ ­ ¢«¨¢ ¥âáï  ¢â®¬ â¨ç¥áª¨.
 à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨
* ebx = 7 - ­®¬¥à ¯®¤ä㭪樨
1570,11 → 1566,9
=========== ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 8 - ¯®«ãç¨âì à §¤¥« HD. ===========
======================================================================
 §¤¥« HD ­ã¦¥­ ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© à §¤¥« ¦ñá⪮£® ¤¨áª 
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¨å ä㭪権 à ¡®âë á ä ©«®¢®©
á¨á⥬®© ¨ ä㭪権, ­¥ï¢­® ¨á¯®«ì§ãîé¨å ¦ñá⪨© ¤¨áª (⨯ 
¯®¤ä㭪樨 6 ä㭪樨 18); ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ä㭪権 58 ¨ 70 ¨
ᮢ६¥­­®£® ᨭ⠪á¨á  /HD0,/HD1,/HD2,/HD3 í⨠ä㭪樨 á ¬¨
ãáâ ­ ¢«¨¢ îâ ¡ §ã ¨ à §¤¥«.
¯¨á âì, ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ãáâ à¥¢è¥£® ᨭ⠪á¨á  /HD ¢ ãáâ à¥¢è¥©
ä㭪樨 58; ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ᮢ६¥­­®£® ᨭ⠪á¨á 
/HD0,/HD1,/HD2,/HD3 ¡ §  ¨ à §¤¥« ãáâ ­ ¢«¨¢ îâáï  ¢â®¬ â¨ç¥áª¨.
 à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨
* ebx = 8 - ­®¬¥à ¯®¤ä㭪樨
2720,24 → 2714,26
­¥ ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î
* al = 0 - ª ¡¥«ì ­¥ ¯®¤ª«îçñ­
* al = 1 - ª ¡¥«ì ¯®¤ª«îçñ­
* ebx à §àãè ¥âáï
‡ ¬¥ç ­¨ï:
* ’¥ªãé ï ॠ«¨§ æ¨ï ï¤à  ¯®¤¤¥à¦¨¢ ¥â íâã äã­ªæ¨î
⮫쪮 ¤«ï á¥â¥¢ëå ª àâ RTL8139.
 
======================================================================
==== ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 11 - ¯à®ç¨â âì ¤ ­­ë¥ ¨§ á⥪ . ====
==== ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 11 - ¯à®ç¨â âì ¤ ­­ë¥ á¥â¥¢®£® á⥪ . ====
======================================================================
 à ¬¥âàë:
* eax = 53 - ­®¬¥à ä㭪樨
* ebx = 11 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ­®¬¥à ᮪¥â 
* edx = 㪠§ â¥«ì, ªã¤  ¤®«¦­ë ¡ëâì § ¯¨á ­ë ¤ ­­ë¥
* esi = à §¬¥à ¡ãä¥à  (¬ ªá¨¬ã¬ ¡ ©â, ª®â®àë¥ ¡ã¤ãâ ᪮¯¨à®¢ ­ë)
* ecx = åí­¤« ᮪¥â 
* edx = 㪠§ â¥«ì ­  ¡ãä¥à
* esi = ç¨á«® ¡ ©â ¤«ï ç⥭¨ï;
* esi = 0 - ç¨â âì ¢á¥ ¤ ­­ë¥ (¬ ªá¨¬ã¬ 4096 ¡ ©â)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ª®«¨ç¥á⢮ ᪮¯¨à®¢ ­­ëå ¡ ©â
* eax = ç¨á«® ¯à®ç¨â ­­ëå ¡ ©â
* ebx à §àãè ¥âáï
‡ ¬¥ç ­¨ï:
* …᫨ à §¬¥à ¡ãä¥à  à ¢¥­ 0, ¡ã¤ãâ ᪮¯¨à®¢ ­ë ¢á¥ ¤ ­­ë¥
(¬ ªá¨¬ã¬ 4096 ¡ ©â)
* à®¢¥àª¨ ­  ¯à ¢¨«ì­®áâì åí­¤«  ­¥ ¤¥« ¥âáï.
 
======================================================================
”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 255 - ®â« ¤®ç­ ï ¨­ä®à¬ æ¨ï á¥â¥¢®£® ¤à ©¢¥à .
3692,10 → 3688,7
* ˆ¬ï ¤à ©¢¥à  çã¢á⢨⥫쭮 ª ॣ¨áâàã ᨬ¢®«®¢.
Œ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ - 16 ᨬ¢®«®¢, ¢ª«îç ï § ¢¥àè î騩
­ã«¥¢®© ᨬ¢®«, ®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï.
* Œ®¦­® § £à㦠âì ⮫쪮 ¤à ©¢¥à , § à¥£¨áâà¨à®¢ ­­ë¥ ¢ á¨á⥬¥;
¢ ⥪ã饩 ॠ«¨§ æ¨¨ ¥áâì ஢­® 2 â ª¨å ¤à ©¢¥à :
* ¨¬ï SOUND, ä ©« /rd/1/drivers/unisound.obj
* ¨¬ï INFINITY, ä ©« /rd/1/drivers/infinity.obj
* „à ©¢¥à á ¨¬¥­¥¬ ABC § £à㦠¥âáï ¨§ ä ©«  /rd/1/drivers/ABC.obj.
 
======================================================================
========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 17 - ã¯à ¢«¥­¨¥ ¤à ©¢¥à®¬. =========
/kernel/trunk/docs/sysfuncs.txt
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
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
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
============== 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
========= 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
============== 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
========= 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
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)
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 copied
Remarks:
* if buffer size is zero, all data will be copied
(this will be max 4096 bytes)
* 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
* 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. ===========
/kernel/trunk/drivers/infinity.asm
700,7 → 700,7
mm_mask dq 0xFF00FF00FF00FF00
 
;stream_map dd 0xFFFF ; 16
version dd 0x00030004
version dd 0x00030003
 
szInfinity db 'INFINITY',0
szSound db 'SOUND',0
/kernel/trunk/kernel.asm
77,7 → 77,7
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
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
; -----------------------------------------
; 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
 
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:
/kernel/trunk/memmap.inc
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
/kernel/trunk/video/cursors.inc
442,7 → 442,7
.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