forked from KolibriOS/kolibrios
Kernel updated to 0.6.5.0
git-svn-id: svn://kolibrios.org@346 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
1aafb8c866
commit
76d3050df9
@ -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}
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 !!!!
|
||||||
|
@ -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
|
|
||||||
|
@ -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
|
||||||
|
@ -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 - ã¯à ¢«¥¨¥ ¤à ©¢¥à®¬. =========
|
||||||
|
@ -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. ===========
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user