/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 |