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
|
||||
; 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}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 !!!!
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 - ã¯à ¢«¥¨¥ ¤à ©¢¥à®¬. =========
|
||||
|
@ -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. ===========
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user