Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 587 → Rev 588

/kernel/trunk/docs/sysfuncr.txt
1463,6 → 1463,34
¯®¤ä㭪樨 3 ä㭪樨 21.
 
======================================================================
========== ”ã­ªæ¨ï 24, ¯®¤äã­ªæ¨ï 4 - ¨§¢«¥çì «®â®ª ¯à¨¢®¤  ¤¨áª . ============
======================================================================
 à ¬¥âàë:
* eax = 24 - ­®¬¥à ä㭪樨
* ebx = 4 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ­®¬¥à CD/DVD-¤¨áª  (®â 0=Primary Master ¤® 3=Secondary Slave)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* ¨ç¥£® ­¥ ¢®§¢à é ¥âáï.
‡ ¬¥ç ­¨ï:
* ”ã­ªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI ãáâனá⢠(CD ¨ DVD).
* à¨ ¨§¢«¥ç¥­¨¨ «®âª  ¯à®¨§¢®¤¨âáï à §¡«®ª¨à®¢ª  àãç­®£® ã¯à ¢«¥­¨ï ¬¥å ­¨§¬®¬ «®âª .
* à¨ ¨§¢«¥ç¥­¨¨ «®âª  ª®¤ ¯à®¨§¢®¤¨â ®ç¨áâªã ªíè  á®®â¢¥âáâ¢ãî饣® ãáâனá⢠.
* à¨¬¥à®¬ ¨á¯®«ì§®¢ ­¨ï ä㭪樨 ï¥âáï ¯à¨«®¦¥­¨¥ CD_tray.
 
======================================================================
========== ”ã­ªæ¨ï 24, ¯®¤äã­ªæ¨ï 5 - § £à㧨âì «®â®ª ¯à¨¢®¤  ¤¨áª . ===========
======================================================================
 à ¬¥âàë:
* eax = 24 - ­®¬¥à ä㭪樨
* ebx = 5 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ­®¬¥à CD/DVD-¤¨áª  (®â 0=Primary Master ¤® 3=Secondary Slave)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* ¨ç¥£® ­¥ ¢®§¢à é ¥âáï.
‡ ¬¥ç ­¨ï:
* ”ã­ªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI ãáâனá⢠(CD ¨ DVD)
* à¨¬¥à®¬ ¨á¯®«ì§®¢ ­¨ï ä㭪樨 ï¥âáï ¯à¨«®¦¥­¨¥ CD_tray.
 
======================================================================
============== ”ã­ªæ¨ï 25 - ãáâ ­®¢¨âì £à®¬ª®áâì SBPro. ==============
======================================================================
 à ¬¥âàë:
4129,7 → 4157,7
à¨ ¯¥à¢®¬ ®¡à é¥­¨¨ ¯®¤ä㭪権 0,1,5,7 ª ãáâனá⢠¬ ATAPI (CD ¨ DVD)
¯à®¨§¢®¤¨âáï ¡«®ª¨à®¢ª  àãç­®£® ã¯à ¢«¥­¨ï ¬¥å ­¨§¬®¬ «®âª . â® á¢ï§ ­®
á  «£®à¨â¬®¬ ªíè¨à®¢ ­¨ï ¤ ­­ëå ¯®«ã祭­ëå ®â ¯à¨¢®¤ .  §¡«®ª¨à®¢ª 
¯à®¨§¢®¤¨âáï ®¡à é¥­¨¥¬ ¯®¤ä㭪樥© 10 ª ᮮ⢥âáâ¢ãî饬ã ãáâனáâ¢ã.
¯à®¨§¢®¤¨âáï ®¡à é¥­¨¥¬ ä㭪樨 24.4 ª ᮮ⢥âáâ¢ãî饬ã ãáâனáâ¢ã.
 
======================================================================
= ”ã­ªæ¨ï 70, ¯®¤äã­ªæ¨ï 0 - ç⥭¨¥ ä ©«  á ¯®¤¤¥à¦ª®© ¤«¨­­ëå ¨¬ñ­. =
4490,66 → 4518,6
* …᫨ ¯ ¯ª  㦥 áãé¥áâ¢ã¥â, äã­ªæ¨ï § ¢¥àè¨âáï ãᯥ譮 (eax=0).
 
======================================================================
========== ”ã­ªæ¨ï 70, ¯®¤äã­ªæ¨ï 10 - ¨§¢«¥çì «®â®ª ¯à¨¢®¤  ¤¨áª . ============
======================================================================
 à ¬¥âàë:
* eax = 70 - ­®¬¥à ä㭪樨
* ebx = 㪠§ â¥«ì ­  ¨­ä®à¬ æ¨®­­ãî áâàãªâãàã
”®à¬ â ¨­ä®à¬ æ¨®­­®© áâàãªâãàë:
* +0: dword: 10 = ­®¬¥à ¯®¤ä㭪樨
* +4: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +8: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +12 = +0xC: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +16 = +0x10: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +20 = +0x14: ASCIIZ-¨¬ï ¯ ¯ª¨, ¯à ¢¨«  ä®à¬¨à®¢ ­¨ï ¨¬ñ­ 㪠§ ­ë ¢
®¡é¥¬ ®¯¨á ­¨¨
¨«¨
* +20 = +0x14: db 0
* +21 = +0x15: dd 㪠§ â¥«ì ­  ASCIIZ-áâபã á ¨¬¥­¥¬ ¯ ¯ª¨
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* ¨ç¥£® ­¥ ¢®§¢à é ¥âáï.
‡ ¬¥ç ­¨ï:
* ”ã­ªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI ãáâனá⢠(CD ¨ DVD).
* à¨ ¨§¢«¥ç¥­¨¨ «®âª  ¯à®¨§¢®¤¨âáï à §¡«®ª¨à®¢ª  àãç­®£® ã¯à ¢«¥­¨ï ¬¥å ­¨§¬®¬ «®âª .
* à¨ ¨§¢«¥ç¥­¨¨ «®âª  ª®¤ ¯à®¨§¢®¤¨â ®ç¨áâªã ªíè  á®®â¢¥âáâ¢ãî饣® ãáâனá⢠.
* ãâì ¢¢®¤¨âáï ¢ áâ ­¤ àâ­®¬ ¤«ï 70 ä㭪樨 ¢¨¤¥. „«ï à ¡®â®á¯®á®¡­®á⨠¬®¦­®
®£à ­¨ç¨âìáï ¯ãâﬨ ¢¨¤ :
db '/cd0/1/',0
db '/cd1/1/',0
db '/cd2/1/',0
db '/cd3/1/',0
* à¨¬¥à®¬ ¨á¯®«ì§®¢ ­¨ï ä㭪樨 ï¥âáï ¯à¨«®¦¥­¨¥ CD_tray.
 
======================================================================
========== ”ã­ªæ¨ï 70, ¯®¤äã­ªæ¨ï 11 - § £à㧨âì «®â®ª ¯à¨¢®¤  ¤¨áª . ===========
======================================================================
 à ¬¥âàë:
* eax = 70 - ­®¬¥à ä㭪樨
* ebx = 㪠§ â¥«ì ­  ¨­ä®à¬ æ¨®­­ãî áâàãªâãàã
”®à¬ â ¨­ä®à¬ æ¨®­­®© áâàãªâãàë:
* +0: dword: 11 = ­®¬¥à ¯®¤ä㭪樨
* +4: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +8: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +12 = +0xC: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +16 = +0x10: dword: 0 (§ à¥§¥à¢¨à®¢ ­®)
* +20 = +0x14: ASCIIZ-¨¬ï ¯ ¯ª¨, ¯à ¢¨«  ä®à¬¨à®¢ ­¨ï ¨¬ñ­ 㪠§ ­ë ¢
®¡é¥¬ ®¯¨á ­¨¨
¨«¨
* +20 = +0x14: db 0
* +21 = +0x15: dd 㪠§ â¥«ì ­  ASCIIZ-áâபã á ¨¬¥­¥¬ ¯ ¯ª¨
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* ¨ç¥£® ­¥ ¢®§¢à é ¥âáï.
‡ ¬¥ç ­¨ï:
* ”ã­ªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI ãáâனá⢠(CD ¨ DVD)
* ãâì ¢¢®¤¨âáï ¢ áâ ­¤ àâ­®¬ ¤«ï 70 ä㭪樨 ¢¨¤¥. „«ï à ¡®â®á¯®á®¡­®á⨠¬®¦­®
®£à ­¨ç¨âìáï ¯ãâﬨ ¢¨¤ :
db '/cd0/1/',0
db '/cd1/1/',0
db '/cd2/1/',0
db '/cd3/1/',0
* à¨¬¥à®¬ ¨á¯®«ì§®¢ ­¨ï ä㭪樨 ï¥âáï ¯à¨«®¦¥­¨¥ CD_tray.
 
======================================================================
=== ”ã­ªæ¨ï 71, ¯®¤äã­ªæ¨ï 1 - ãáâ ­®¢¨âì § £®«®¢®ª ®ª­  ¯à®£à ¬¬ë. ==
======================================================================
 à ¬¥âàë:
/kernel/trunk/docs/sysfuncs.txt
1446,6 → 1446,34
subfunction 3 of function 21.
 
======================================================================
================ Function 24, subfunction 4 - eject tray of disk drive. ==============
======================================================================
Parameters:
* eax = 24 - function number
* ebx = 4 - subfunction number
* ecx = position of CD/DVD-drive (from 0=Primary Master to 3=Secondary Slave)
Returned value:
* Nothing comes back.
Remarks:
* The function is supported only for ATAPI devices (CD and DVD).
* At extract of a tray is made deblocking of handle mechanism of a tray.
* At extract of a tray the code makes clearing the cache of the appropriate device.
* An example of usage of the function is the application CD_tray.
 
======================================================================
============== Function 24, subfunction 5 - load tray of disk drive. =================
======================================================================
Parameters:
* eax = 24 - function number
* ebx = 5 - subfunction number
* ecx = position of CD/DVD-drive (from 0=Primary Master to 3=Secondary Slave)
Returned value:
* Nothing comes back.
Remarks:
* The function is supported only for ATAPI devices (CD and DVD).
* An example of usage of the function is the application CD_tray.
 
======================================================================
=================== Function 25 - set SBPro volume. ==================
======================================================================
Parameters:
4077,7 → 4105,7
with code 2.
At the first call subfunctions 0,1,5,7 to devices ATAPI (CD and DVD) the locking
of handle mechanism of a tray is made. It is connected to algorithm of caching
given obtained from a drive. Deblocking is made by call subfunction 10
given obtained from a drive. Deblocking is made by call function 24.4
to the appropriate device.
 
======================================================================
4434,64 → 4462,6
* If target folder already exists, function returns success (eax=0).
 
======================================================================
================ Function 70, subfunction 10 - eject tray of disk drive. ==============
======================================================================
Parameters:
* eax = 70 - function number
* ebx = pointer to the information structure
Format of the information structure:
* +0: dword: 10 = subfunction number
* +4: dword: 0 (reserved)
* +8: dword: 0 (reserved)
* +12 = +0xC: dword: 0 (reserved)
* +16 = +0x10: dword: 0 (reserved)
* +20 = +0x14: ASCIIZ-name of folder, the rules of names forming are
given in the general description
or
* +20 = +0x14: db 0
* +21 = +0x15: dd pointer to ASCIIZ-string with folder name
Returned value:
* Nothing comes back.
Remarks:
* The function is supported only for ATAPI devices (CD and DVD).
* At extract of a tray is made deblocking of handle mechanism of a tray.
* At extract of a tray the code makes clearing the cache of the appropriate device.
* The path is standard for 70 functions. For serviceability it is possible to be limited to paths:
db '/cd0/1/',0
db '/cd1/1/',0
db '/cd2/1/',0
db '/cd3/1/',0
* An example of usage of the function is the application CD_tray.
 
======================================================================
============== Function 70, subfunction 11 - load tray of disk drive. =================
======================================================================
Parameters:
* eax = 70 - function number
* ebx = pointer to the information structure
Format of the information structure:
* +0: dword: 11 = subfunction number
* +4: dword: 0 (reserved)
* +8: dword: 0 (reserved)
* +12 = +0xC: dword: 0 (reserved)
* +16 = +0x10: dword: 0 (reserved)
* +20 = +0x14: ASCIIZ-name of folder, the rules of names forming are
given in the general description
or
* +20 = +0x14: db 0
* +21 = +0x15: dd pointer to ASCIIZ-string with folder name
Returned value:
* Nothing comes back.
Remarks:
* The function is supported only for ATAPI devices (CD and DVD).
* The path is standard for 70 functions. For serviceability it is possible to be limited to paths:
db '/cd0/1/',0
db '/cd1/1/',0
db '/cd2/1/',0
db '/cd3/1/',0
* An example of usage of the function is the application CD_tray.
 
======================================================================
========== Function 71, subfunction 1 - set window caption. ==========
======================================================================
Parameters:
/kernel/trunk/fs/fs_lfn.inc
388,8 → 388,6
dd 0
dd fs_RamdiskDelete
dd fs_RamdiskCreateFolder
dd fs_NotImplemented
dd fs_NotImplemented
fs_NumRamdiskServices = ($ - fs_RamdiskServices)/4
 
fs_OnFloppy:
421,8 → 419,6
dd 0
dd fs_FloppyDelete
dd fs_FloppyCreateFolder
dd fs_NotImplemented
dd fs_NotImplemented
fs_NumFloppyServices = ($ - fs_FloppyServices)/4
 
fs_OnHd0:
496,8 → 492,6
dd 0
dd fs_HdDelete
dd fs_HdCreateFolder
dd fs_NotImplemented
dd fs_NotImplemented
fs_NumHdServices = ($ - fs_HdServices)/4
 
;*******************************************************
579,8 → 573,6
dd 0
dd fs_NotImplemented
dd fs_NotImplemented
dd fs_EjectDeviceTray
dd fs_LoadDeviceTray
fs_NumCdServices = ($ - fs_CdServices)/4
 
;*******************************************************
/kernel/trunk/fs/iso9660.inc
489,17 → 489,6
pop edi
xor eax, eax
ret
;----------------------------------------------------------------
fs_EjectDeviceTray:
call clear_CD_cache
call allow_medium_removal
call EjectMedium
ret
;----------------------------------------------------------------
fs_LoadDeviceTray:
call LoadMedium
ret
;----------------------------------------------------------------
 
cd_find_lfn:
mov [cd_appl_data],0
/kernel/trunk/kernel.asm
4957,10 → 4957,48
 
syscall_cdaudio: ; CD
 
cmp eax, 4
jb .audio
jz .eject
cmp eax, 5
jnz .ret
.load:
call .reserve
call LoadMedium
call .free
ret
.eject:
call .reserve
call clear_CD_cache
call allow_medium_removal
call EjectMedium
call .free
ret
.audio:
call sys_cd_audio
mov [esp+36],eax
.ret:
ret
 
.reserve:
call reserve_cd
mov eax, ebx
shr eax, 1
and eax, 1
inc eax
mov [ChannelNumber], eax
mov eax, ebx
and eax, 1
mov [DiskNumber], eax
call reserve_cd_channel
inc ebx
mov [cdpos], ebx
ret
.free:
call free_cd_channel
and [cd_status], 0
ret
 
align 4
 
syscall_delramdiskfile: ; DelRamdiskFile