Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 276 → Rev 277

/kernel/trunk/core/syscall.inc
95,7 → 95,7
dd syscall_cdaudio ; 24-PlayCdTrack,StopCd and GetCdPlaylist
dd sys_sb16 ; 25-SetSb16
dd sys_getsetup ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
dd sys_wss ; 27-SetWssMainVol and SetWssCdVol
dd undefined_syscall ; 27-reserved
dd sys_sb16II ; 28-SetSb16
dd sys_date ; 29-GetDate
dd undefined_syscall ; 30-reserved
/kernel/trunk/docs/sysfuncr.txt
1,4 → 1,4
‘ˆ‘’…Œ›… ”“Š–ˆˆ Ž…€–ˆŽŽ‰ ‘ˆ‘’…Œ› Kolibri 0.6.0.0
‘ˆ‘’…Œ›… ”“Š–ˆˆ Ž…€–ˆŽŽ‰ ‘ˆ‘’…Œ› Kolibri 0.6.3.0
 
®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
685,7 → 685,7
* eax = 0 - ãᯥ譮
* ¨­ ç¥ eax = ª®¤ ®è¨¡ª¨ ä ©«®¢®© á¨á⥬ë
‡ ¬¥ç ­¨ï:
* ˆ¬ï ä ©«  䨪á¨à®¢ ­®, "menuet.img" (£«®¡ «ì­ ï ¯¥à¥¬¥­­ ï ï¤à 
* ˆ¬ï ä ©«  䨪á¨à®¢ ­®, "kolibri.img" (£«®¡ «ì­ ï ¯¥à¥¬¥­­ ï ï¤à 
image_save ¨§ preboot.inc)
*   ª ª®¬ à §¤¥«¥ ª ª®£® ¤¨áª  ä ©« ¡ã¤¥â á®åà ­ñ­, ®¯à¥¤¥«ï¥âáï
¯®¤ä㭪樥© 7 ¨ ¯®¤ä㭪樥© 8 ä㭪樨 21.
814,7 → 814,7
­ã«¥¢®©, ¯à¨ ­ «¨ç¨¨ ¯®ª §ë¢ ¥â ç¨á«® à á¯®§­ ­­ëå à §¤¥«®¢,
ª®â®àëå ¬®¦¥â ¨ ­¥ ¡ëâì (¥á«¨ ­®á¨â¥«ì ­¥ ®âä®à¬ â¨à®¢ ­ ¨«¨
¥á«¨ ä ©«®¢ ï á¨á⥬  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï). ‚ ⥪ã饩 ¢¥àᨨ ï¤à 
¤«ï ¦ñáâª¨å ¤¨áª®¢ ¯®¤¤¥à¦¨¢ îâáï ⮫쪮 FAT16 ¨ FAT32.
¤«ï ¦ñáâª¨å ¤¨áª®¢ ¯®¤¤¥à¦¨¢ îâáï ⮫쪮 FAT16, FAT32 ¨ NTFS.
* +6: 4 db: § à¥§¥à¢¨à®¢ ­®
”®à¬ â â ¡«¨æë: ¯®«­ ï ¢¥àá¨ï:
* +0: 10 db: â ª¨¥ ¦¥, ª ª ¨ ¢ ª®à®âª®© ¢¥àᨨ
825,44 → 825,17
 §¤¥«ë à á¯®«®¦¥­ë ¢ á«¥¤ãî饬 ¯®à浪¥: á­ ç «  ¯®á«¥¤®¢ â¥«ì­® ¢á¥
à á¯®§­ ­­ë¥ à §¤¥«ë ­  HD ­  IDE0 (¥á«¨ ¥áâì),
§ â¥¬ ­  HD ­  IDE1 (¥á«¨ ¥áâì) ¨ â.¤. ¤® IDE3.
”®à¬ â ¨­ä®à¬ æ¨¨ ® à §¤¥«¥ (¯®ª  ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 FAT):
”®à¬ â ¨­ä®à¬ æ¨¨ ® à §¤¥«¥:
* +0: dword: ­ ç «ì­ë© 䨧¨ç¥áª¨© ᥪâ®à à §¤¥« 
* +4: dword: ¯®á«¥¤­¨© 䨧¨ç¥áª¨© ᥪâ®à à §¤¥« 
(¯à¨­ ¤«¥¦¨â à §¤¥«ã)
* +8: dword: ᥪâ®à®¢ ¢ ®¤­®© ª®¯¨¨ FAT
* +12 = +0xC: dword: ç¨á«® ª®¯¨© FAT
* +16 = +0x10: dword: ç¨á«® ᥪâ®à®¢ ¢ ª« áâ¥à¥
* +20 = +0x14: dword: ¡ ©â ¢ ᥪâ®à¥; ⥪ãé ï ॠ«¨§ æ¨ï ®¦¨¤ ¥â,
çâ® §¤¥áì 0x200 = 512
* +24 = +0x18: dword: ¯¥à¢ë© ª« áâ¥à ª®à­¥¢®£® ª â «®£  ¢ FAT32,
0 ¤«ï FAT16
* +28 = +0x1C: dword: ­ ç «ì­ë© 䨧¨ç¥áª¨© ᥪâ®à FAT
* +32 = +0x20: dword: ¯¥à¢ë© 䨧¨ç¥áª¨© ᥪâ®à ª®à­¥¢®£® ª â «®£ 
¤«ï FAT16, ¨£­®à¨àã¥âáï ¤«ï FAT32
* +36 = +0x24: dword: ç¨á«® ᥪâ®à®¢ ¢ ª®à­¥¢®¬ ª â «®£¥ ¤«ï FAT16,
0 ¤«ï FAT32
* +40 = +0x28: dword: 䨧¨ç¥áª¨© ᥪâ®à ­ ç «  ®¡« á⨠¤ ­­ëå
* +44 = +0x2C: dword: ¬ ªá¨¬ «ì­ë© ­®¬¥à ª« áâ¥à 
* +48 = +0x30: dword: 䨧¨ç¥áª¨© ᥪâ®à ¨­ä®à¬ æ¨¨ ®
ä ©«®¢®© á¨á⥬¥ ¤«ï FAT32, ¨£­®à¨àã¥âáï ¤«ï FAT16
* +52 = +0x34: dword: §­ ç¥­¨¥, ¨á¯®«ì§ã¥¬®¥ ª ª £à ­¨æ 
ᯥ樠«ì­ëå §­ ç¥­¨© ¢ FAT
* +56 = +0x38: dword: §­ ç¥­¨¥, ¨á¯®«ì§ã¥¬®¥ ¤«ï ¯«®å¨å ª« áâ¥à®¢
¢ FAT
* +60 = +0x3C: dword: §­ ç¥­¨¥, ¨á¯®«ì§ã¥¬®¥ ª ª ¬ àª¥à ª®­æ 
¯à¨ § ¯¨á¨ 楯®çª¨ ¢ FAT
* +64 = +0x40: dword: ¬ áª , ­ ª« ¤ë¢ ¥¬ ï ­  í«¥¬¥­â FAT
* +68 = +0x44: byte: ⨯ ä ©«®¢®© á¨á⥬ë: 16 ¨«¨ 32
* +69 = +0x45: 31 db: § à¥§¥à¢¨à®¢ ­®
* +8: byte: ⨯ ä ©«®¢®© á¨á⥬ë:
16=FAT16, 32=FAT32, 1=NTFS
* ä®à¬ â ¤ «ì­¥©è¨å ¤ ­­ëå § ¢¨á¨â ®â ä ©«®¢®© á¨á⥬ë,
¬®¦¥â ¬¥­ïâìáï á ¨§¬¥­¥­¨ï¬¨ ¢ ï¤à¥ ¨ ¯®í⮬㠭¥ ®¯¨á뢠¥âáï
‡ ¬¥ç ­¨ï:
* Š®à®âª ï â ¡«¨æ  ¬®¦¥â ¡ëâì ¨á¯®«ì§®¢ ­  ¤«ï ¯®«ã祭¨ï ¨­ä®à¬ æ¨¨
®¡ ¨¬¥îé¨åáï ãáâனá⢠å.
* ¥à¢ë¥ ¤¢  ¯®«ï ¨­ä®à¬ æ¨¨ ® à §¤¥«¥ ¢ ¯®«­®© ¢¥àᨨ â ¡«¨æë
á®®¡é îâ ¯ à ¬¥âàë à §¤¥« , ®á⠢訥áï - ¯ à ¬¥âàë ä ©«®¢®©
á¨á⥬ë FAT. „«ï ¤à㣨å ä ©«®¢ëå á¨á⥬ (ª®£¤  ®­¨ ¡ã¤ãâ
¯®¤¤¥à¦¨¢ âìáï) ᯥæ¨ä¨ç¥áª ï ¤«ï ä ©«®¢®© á¨áâ¥¬ë ¨­ä®à¬ æ¨ï,
¥áâ¥á⢥­­®, ¡ã¤¥â ¤à㣮©, ­® ¯¥à¢ë¥ ¤¢  ¯®«ï
á®åà ­ïâáï ­¥¨§¬¥­­ë¬¨.
 
======================================================================
========== ”ã­ªæ¨ï 18, ¯®¤äã­ªæ¨ï 13 - ¯®«ãç¨âì ¢¥àá¨î ï¤à . =========
878,8 → 851,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.5.8.1:
db 0,5,8,1
„«ï ï¤à  Kolibri 0.6.3.0:
db 0,6,3,0
db 2
db 'Kolibri',0
 
1005,7 → 978,6
¨ ¯à®¢¥à¨âì, çâ® ãáâ ­ ¢«¨¢ ¥¬®¥ ¯®«®¦¥­¨¥ ­¥ ¢ë室¨â §  ¯à¥¤¥«ë
íªà ­ .
 
 
======================================================================
====================== ”ã­ªæ¨ï 18, ¯®¤äã­ªæ¨ï 20 =====================
============= ®«ãç¨âì ¨­ä®à¬ æ¨î ®¡ ®¯¥à â¨¢­®© ¯ ¬ïâ¨. =============
1150,22 → 1122,6
* ®«ãç¨âì ï§ëª á¨áâ¥¬ë ¬®¦­® ¢ë§®¢®¬ ¯®¤ä㭪樨 5 ä㭪樨 26.
 
======================================================================
======= ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 6 - ãáâ ­®¢¨âì ¡ §®¢ë© ¯®àâ WSS. ======
======================================================================
 à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ¡ §®¢ë© ¯®àâ
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮
* eax = -1 - ®è¨¡®ç­ë© ­®¬¥à ¯®àâ 
‡ ¬¥ç ­¨ï:
* ®¬¥à ¯®àâ  ¤®«¦¥­ 㤮¢«¥â¢®àïâì ãá«®¢¨î 0x100<=ecx.
*  §  WSS ¨á¯®«ì§ã¥âáï ä㭪樥© 27.
* ®«ãç¨âì ãáâ ­®¢«¥­­ë© ¡ §®¢ë© ¯®àâ WSS ¬®¦­® ¢ë§®¢®¬
¯®¤ä㭪樨 6 ä㭪樨 26.
 
======================================================================
=========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 7 - ãáâ ­®¢¨âì ¡ §ã HD. ===========
======================================================================
 §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
1600,18 → 1556,6
* “áâ ­®¢¨âì ï§ëª á¨áâ¥¬ë ¬®¦­® ¢ë§®¢®¬ ¯®¤ä㭪樨 5 ä㭪樨 21.
 
======================================================================
======== ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 6 - ¯®«ãç¨âì ¡ §®¢ë© ¯®àâ WSS. =======
======================================================================
 à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ¡ §®¢ë© ¯®àâ
‡ ¬¥ç ­¨ï:
*  §  WSS ¨á¯®«ì§ã¥âáï ä㭪樥© 27.
* “áâ ­®¢¨âì ¡ §®¢ë© ¯®àâ WSS ¬®¦­® ¢ë§®¢®¬ ¯®¤ä㭪樨 6 ä㭪樨 21.
 
======================================================================
============ ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 7 - ¯®«ãç¨âì ¡ §ã HD. ============
======================================================================
 §  HD ­ã¦­  ¤«ï ®¯à¥¤¥«¥­¨ï, ­  ª ª®© ¦ñá⪨© ¤¨áª ¯¨á âì, ¯à¨
1707,28 → 1651,6
¯®¤ä㭪樨 12 ä㭪樨 21.
 
======================================================================
==== ”ã­ªæ¨ï 27 - ãáâ ­®¢¨âì £à®¬ª®áâì Windows Sound System (WSS). ===
======================================================================
 à ¬¥âàë:
* eax = 27 - ­®¬¥à ä㭪樨
* ebx = çâ® ãáâ ­ ¢«¨¢ âì:
* 1 - ãáâ ­®¢¨âì ®¡éãî £à®¬ª®áâì
* 2 - ãáâ ­®¢¨âì £à®¬ª®áâì Line In
* cl = ã஢¥­ì £à®¬ª®á⨠(0x0=á ¬ë© ¢ë᮪¨©, 0x1F=á ¬ë© ­¨§ª¨©,
ãáâ ­®¢«¥­­ë© ¡¨â 0x80=®âª«îç¨âì)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮
* eax = 1 - ­¥ ®¯à¥¤¥«¥­  ¡ §  WSS
* eax = 2 - ­¥¢¥à­ ï ¯®¤äã­ªæ¨ï
‡ ¬¥ç ­¨ï:
* à¥¤¢ à¨â¥«ì­® ­ã¦­® ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ WSS ¢ë§®¢®¬
¯®¤ä㭪樨 6 ä㭪樨 21.
* “áâ ­®¢ª  ®¡é¥© £à®¬ª®á⨠䠪â¨ç¥áª¨ ¨£­®à¨àã¥âáï
(¢®§¢à é ¥âáï eax=0).
* ‚ áâ à®© ¤®ªã¬¥­â æ¨¨ ¨ ¢ ¨á室­¨ª å ï¤à  ¯®¤äã­ªæ¨ï 2
®è¨¡®ç­® ­ §¢ ­  £à®¬ª®áâìî CD-audio.
 
======================================================================
=============== ”ã­ªæ¨ï 28 - ãáâ ­®¢¨âì £à®¬ª®áâì SB16. ==============
======================================================================
 à ¬¥âàë:
1829,7 → 1751,7
¬®¦­® ¯®«ãç¨âì ä㭪樥© 61.
 
======================================================================
========== ”ã­ªæ¨ï 37 - ¯®«ãç¨âì ª®®à¤¨­ âë/á®áâ®ï­¨¥ ¬ëè¨. ==========
==================== ”ã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî. ====================
======================================================================
 
-------------- ®¤äã­ªæ¨ï 0 - íªà ­­ë¥ ª®®à¤¨­ âë ¬ëè¨ ---------------
1864,71 → 1786,55
* ¡¨â 1 ãáâ ­®¢«¥­ = ¯à ¢ ï ª­®¯ª  ­ ¦ â 
* ¯à®ç¨¥ ¡¨âë á¡à®è¥­ë
 
----------------- ®¤äã­ªæ¨ï 3 - ãáâ ­®¢¨âì ¯®§¨æ¨î ªãàá®à  ------------
------------------ äã­ªæ¨ï § à¥§¥à¢¨à®¢ ­  -----------------
------------------ ®¤äã­ªæ¨ï 4 - § £à㧨âì ªãàá®à -------------------
 à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 3 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ª®®à¤¨­ âë ªãàá®à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax ¯à¥¤ë¤ã騥 ª®®à¤¨­ âë ªãàá®à 
----------------- ®¤äã­ªæ¨ï 4 - § £à㧨âì ªãàá®à -----------------
 à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 4 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ¢å®¤­ë¥ ¤¢­­ë¥
* edx = (hotspot << 16) or flags
* dx = ¨áâ®ç­¨ª ¤ ­­ëå:
* dx = LOAD_FROM_FILE = 0 - ¤ ­­ë¥ ¢ ä ©«¥
* ecx = 㪠§ â¥«ì ­  ¯®«­ë© ¯ãâì ª ä ©«ã ªãàá®à 
* ä ©« ªãàá®à  ¤®«¦¥­ ¡ëâì ¢ ä®à¬ â¥ .cur, áâ ­¤ àâ­®¬ ¤«ï
MS Windows, ¯à¨çñ¬ à §¬¥à®¬ 32*32 ¯¨ªá¥«ï
* dx = LOAD_FROM_MEM = 1 - ¤ ­­ë¥ ä ©«  㦥 § £à㦥­ë ¢ ¯ ¬ïâì
* ecx = 㪠§ â¥«ì ­  ¤ ­­ë¥ ä ©«  ªãàá®à 
* ä®à¬ â ¤ ­­ëå â ª®© ¦¥, ª ª ¨ ¢ ¯à¥¤ë¤ã饬 á«ãç ¥
* dx = LOAD_INDIRECT = 2 - ¤ ­­ë¥ ¢ ¯ ¬ïâ¨
* ecx = 㪠§ â¥«ì ­  ®¡à § ªãàá®à  ¢ ä®à¬ â¥ ARGB 32*32 ¯¨ªá¥«ï
* edx = 0xXXYY0002, £¤¥
* XX = x-ª®®à¤¨­ â  "£®àï祩 â®çª¨" ªãàá®à 
* YY = y-ª®®à¤¨­ â 
* 0 <= XX, YY <= 31
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax ᮤ¥à¦¨â «®£¨ç¥áª¨© ­®¬¥à ªãàá®à 
¨«¨ 0 ¢ á«ãç ¥ ­¥ã¤ ç¨
* eax = 0 - ­¥ã¤ ç 
* ¨­ ç¥ eax = åí­¤« ªãàá®à 
‡­ ç¥­¨¥ ecx ¨­â¥à¯à¥â¨àã¥âáï ¢ § ¢¨á¨¬®á⨠®â ä« £®¢ ãáâ ­®¢«¥­­ëå
¢ ¬« ¤è¥¬ á«®¢¥ ॣ¨áâà  edx
 
* dx = LOAD_FROM_FILE = 0
* ecx = ¯®«­ë© ¯ãâì ª ä ©«ã ªãàá®à 
* hotspot ¨£­®à¨àã¥âáï
* ªãàá®à ¤®«¦¥­ ¡ëâì ¢ ä®à¬ â¥ MS Windows 32*32 ¯¨ªá¥«ï 16 梥⮢
* dx = LOAD_FROM_MEM = 1
* ecx = 㪠§ â¥«ì ­  § £à㦥­­ë© ¢ ¯ ¬ïâì ä ©« ªãàá®à 
* hotspot ¨£­®à¨àã¥âáï
* ªãàá®à ¤®«¦¥­ ¡ëâì ¢ ä®à¬ â¥ MS Windows 32*32 ¯¨ªá¥«ï 16 梥⮢
* dx = LOAD_INDIRECT = 2
* ecx = 㪠§ â¥«ì ­  ®¡à § ªãàá®à  ¢ ä®à¬ â¥ ARGB 32*32 ¯¨ªá¥«ï
* hotspot (hotspot.x <<8)or hotspot.y
0<= x,y <=31
 
* dx = LOAD_SYSTEM = 3; § à¥§¥à¢¨à®¢ ­®
* ecx = ­®¬¥à á¨á⥬­®£® ªãàá®à 
* hotspot ¨£­®à¨àã¥âáï
 
----------------- ®¤äã­ªæ¨ï 5 - ãáâ ­®¢¨âì ªãàá®à -----------------
------------------ ®¤äã­ªæ¨ï 5 - ãáâ ­®¢¨âì ªãàá®à ------------------
“áâ ­ ¢«¨¢ ¥â ­®¢ë© ªãàá®à ¤«ï ®ª­  ⥪ã饣® ¯®â®ª .
 à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 5 - ­®¬¥à ¯®¤ä㭪樨
* ecx = «®£¨ç¥áª¨© ­®¬¥à ªãàá®à  § £à㦥­­®£® ä­. 37.4
* ecx = åí­¤« ªãàá®à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = «®£¨ç¥áª¨© ­®¬¥à ¯à¥¤ë¤ã饣® ªãàá®à 
* eax = åí­¤« ¯à¥¤ë¤ã饣® ãáâ ­®¢«¥­­®£® ªãàá®à 
‡ ¬¥ç ­¨ï:
* …᫨ ¯¥à¥¤ ­ ­¥ª®à४â­ë© åí­¤«, â® äã­ªæ¨ï ¢®ááâ ­®¢¨â ªãàá®à
¯® 㬮«ç ­¨î (áâ ­¤ àâ­ãî áâ५ªã). ‚ ç áâ­®áâ¨, ª ¢®ááâ ­®¢«¥­¨î
ªãàá®à  ¯® 㬮«ç ­¨î ¯à¨¢®¤¨â ¯¥à¥¤ ç  ecx=0.
”ã­ªæ¨ï ãáâ ­ ¢«¨¢ ¥â ­®¢ë© ªãàá®à ¤«ï ®ª­  ¢ë§¢ ¢è¥£® ¥ñ ¯®â®ª ,
 
----------------- ®¤äã­ªæ¨ï 6 - 㤠«¨âì ªãàá®à -----------------
------------------ äã­ªæ¨ï § à¥§¥à¢¨à®¢ ­  -----------------
------------------- ®¤äã­ªæ¨ï 6 - 㤠«¨âì ªãàá®à --------------------
 à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨
* ecx = «®£¨ç¥áª¨© ­®¬¥à ªãàá®à  § £à㦥­­®£® ä­. 37.4
* ecx = åí­¤« ªãàá®à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ®¡é¥¥ ª®«¨ç¥á⢮ § £à㦥­­ëå ªãàá®à®¢
* eax à §àãè ¥âáï
‡ ¬¥ç ­¨ï:
* Šãàá®à ¤®«¦¥­ ¡ë« ¡ëâì à ­¥¥ § £à㦥­ ⥪ã騬 ¯®â®ª®¬
(¢ë§®¢®¬ ¯®¤ä㭪樨 4). ”ã­ªæ¨ï ­¥ 㤠«ï¥â á¨á⥬­ë¥ ªãàá®àë ¨
ªãàá®àë, § £à㦥­­ë¥ ¤à㣨¬¨ ¯à¨«®¦¥­¨ï¬¨.
* …᫨ 㤠«ï¥âáï  ªâ¨¢­ë© (ãáâ ­®¢«¥­­ë© ¯®¤ä㭪樥© 5) ªãàá®à, â®
¢®ááâ ­ ¢«¨¢ ¥âáï ªãàá®à ¯® 㬮«ç ­¨î (áâ ­¤ àâ­ ï áâ५ª ).
 
…᫨ 㤠«ï¥¬ë© ªãàá®à ï¥âáï  ªâ¨¢­ë¬ ¤«ï ¤ ­­®£® ®ª­ ,®­ § ¬¥­ï¥âáï
á¨á⥬­ë¬. ”ã­ªæ¨ï ­¥ 㤠«ï¥â ªãàá®àë § £à㦥­­ë¥ ¤à㣨¬ ¯à¨«®¦¥­¨¥¬.
‘¨á⥬­ë¥ ªãàá®àë ­¥ 㤠«ïîâáï.
 
======================================================================
================== ”ã­ªæ¨ï 38 - ­ à¨á®¢ âì ®â१®ª. ==================
======================================================================
2150,9 → 2056,8
§ à¥§¥à¢¨à®¢ ­ í⮩ ¦¥ ä㭪樥© (á â ª¨¬¨ ¦¥ §­ ç¥­¨ï¬¨ ecx,edx).
* à¨ ®¡­ à㦥­¨¨ ®è¨¡ª¨ (¢ ®¡®¨å á«ãç ïå) ­¨ª ª¨å ¤¥©á⢨©
­¥ ¯à®¨§¢®¤¨âáï.
* à¨ § £à㧪¥ á¨á⥬  १¥à¢¨àã¥â §  ᮡ®© ¯®àâë 0..0xff,   ¯à¨
®¡­ à㦥­¨¨ COM-¬ëè¨ - ¤®¯®«­¨â¥«ì­® ¤¨ ¯ §®­ COM-¯®à⮢
0x3f0..0x3ff ¨/¨«¨ 0x2f0..0x2ff.
* à¨ § £à㧪¥ á¨á⥬  १¥à¢¨àã¥â §  ᮡ®© ¯®àâë
0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (¢ª«îç¨â¥«ì­®).
* à¨ § ¢¥à襭¨¨ ¯®â®ª   ¢â®¬ â¨ç¥áª¨ ®á¢®¡®¦¤ îâáï ¢á¥
§ à¥§¥à¢¨à®¢ ­­ë¥ ¨¬ ¯®àâë.
 
2622,6 → 2527,20
¢ á«¥¤ãîé¨å ¢¥àá¨ïå
 
======================================================================
====== ”ã­ªæ¨ï 52, ¯®¤äã­ªæ¨ï 15 - ¯®«ãç¨âì «®ª «ì­ë© MAC- ¤à¥á. =====
======================================================================
 à ¬¥âàë:
* eax = 52 - ­®¬¥à ä㭪樨
* ebx = 15 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 0 - ç¨â âì ¯¥à¢ë¥ 4 ¡ ©â ,
ecx = 4 - ç¨â âì ¯®á«¥¤­¨¥ 2 ¡ ©â 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* ¤«ï ecx=0: eax = ¯¥à¢ë¥ 4 ¡ ©â  MAC- ¤à¥á 
* ¤«ï ecx=4: ax = ¯®á«¥¤­¨¥ 2 ¡ ©â  MAC- ¤à¥á ,
áâ àè ï ¯®«®¢¨­  eax à §àãè ¥âáï
* ¤«ï ¤à㣨å ecx: eax = -1 ª ª ¯à¨§­ ª ®è¨¡ª¨
 
======================================================================
============ ”ã­ªæ¨ï 53, ¯®¤äã­ªæ¨ï 0 - ®âªàëâì UDP-᮪¥â. ===========
======================================================================
 à ¬¥âàë:
2916,31 → 2835,6
¤® ª®­æ  ¯à®¨£à뢠­¨ï.
 
======================================================================
============= ”ã­ªæ¨ï 56 - § ¯¨á âì ä ©« ­  ¦ñá⪨© ¤¨áª. ============
======================================================================
 à ¬¥âàë:
* eax = 56 - ­®¬¥à ä㭪樨
* ebx = 㪠§ â¥«ì ­  ¨¬ï ä ©« 
* ecx = à §¬¥à ¤ ­­ëå ¤«ï § ¯¨á¨ (¢ ¡ ©â å)
* edx = 㪠§ â¥«ì ­  ¤ ­­ë¥ ¤«ï § ¯¨á¨
* esi = 㪠§ â¥«ì ­  ¯ãâì (ASCIIZ-áâபã)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮, ¨­ ç¥ ª®¤ ®è¨¡ª¨ ä ©«®¢®© á¨á⥬ë
‡ ¬¥ç ­¨ï:
* â  äã­ªæ¨ï ãáâ à¥« ; äã­ªæ¨ï 70 ¯®§¢®«ï¥â ¢ë¯®«­ïâì
⥠¦¥ ¤¥©á⢨ï á à áè¨à¥­­ë¬¨ ¢®§¬®¦­®áâﬨ.
* „ ­­ ï äã­ªæ¨ï ¯à¥¤¯®« £ ¥â, çâ® ¢® ¢à¥¬ï ¥ñ ¢ë§®¢  ®¤­¨¬
¯à¨«®¦¥­¨¥¬ ­¨ª ª®¥ ¤à㣮¥ ¯à¨«®¦¥­¨¥ ­¥ à ¡®â ¥â
á ¦ñá⪨¬ ¤¨áª®¬.
* ãâì ª ä ©«ã - ASCIIZ-áâப , ª®â®à ï ¬®¦¥â ¡ëâì ¯ãá⮩
(¥á«¨ ä ©« ᮧ¤ ñâáï ¢ ª®à­¥¢®¬ ª â «®£¥) ¨«¨ ¨¬¥âì ä®à¬ â
/d1/d2/.../dn, £¤¥ ¢á¥ ¨¬¥­  ¯ ¯®ª ¤®«¦­ë ¨¬¥âì ä®à¬ â 8+3, â.¥.
8 ᨬ¢®«®¢ ¨¬¥­¨ ¨ 3 ᨬ¢®«  à áè¨à¥­¨ï ¡¥§ à §¤¥«¨â¥«ï,
¯à¨ ­¥®¡å®¤¨¬®á⨠¤®¯®«­¥­­ë¥ ¯à®¡¥« ¬¨;
¢á¥ ¡ãª¢ë ¤®«¦­ë ¡ëâì § £« ¢­ë¥.
* ˆ¬ï ª ä ©«ã â ª¦¥ ¤®«¦­® ¨¬¥âì ä®à¬ â 8+3.
 
======================================================================
============== ”ã­ªæ¨ï 58 - à ¡®â  á ä ©«®¢®© á¨á⥬®©. ==============
======================================================================
 à ¬¥âàë:
3563,9 → 3457,9
‡ ¬¥ç ­¨ï:
* …áâì ¤à㣮© ᯮᮡ ¢ë¤¥«¥­¨ï/®á¢®¡®¦¤¥­¨ï ¤¨­ ¬¨ç¥áª®© ¯ ¬ï⨠-
¯®¤ä㭪樨 11, 12, 13 ä㭪樨 68.
”ã­ªæ¨ï ­¥ ¬®¦¥â ¨á¯®«ì§®¢ âìáï ᮢ¬¥áâ­® á 68.11, 68.12, 68.13
‚맮¢ ä㭪樨 ¡ã¤¥â ¨£­®à¨à®¢ âìáï ¥á«¨ ¯à¨«®¦¥­¨¥ ᮧ¤ áâ «®ª «ì­ãî
ªãç㠢맮¢®¬ 68.11
* ”ã­ªæ¨ï ­¥ ¬®¦¥â ¨á¯®«ì§®¢ âìáï ᮢ¬¥áâ­® á 68.11, 68.12, 68.13.
‚맮¢ ä㭪樨 ¡ã¤¥â ¨£­®à¨à®¢ âìáï, ¥á«¨ ¯à¨«®¦¥­¨¥ ᮧ¤ áâ
«®ª «ì­ãî ªãç㠢맮¢®¬ 68.11.
 
======================================================================
================= ”ã­ªæ¨ï 66 - à ¡®â  á ª« ¢¨ âãன. =================
3780,9 → 3674,9
* ‚맮¢ ä㭪樨 ¨­¨æ¨ «¨§¨àã¥â ªãçã, ¨§ ª®â®à®© ¢¯®á«¥¤á⢨¨ ¬®¦­®
¢ë¤¥«ïâì ¨ ®á¢®¡®¦¤ âì ¡«®ª¨ ¯ ¬ï⨠¯®¤äã­ªæ¨ï¬¨ 12 ¨ 13.
 §¬¥à ªãç¨ à ¢¥­ à §¬¥à㠢ᥩ ᢮¡®¤­®© ¯ ¬ï⨠¯à¨«®¦¥­¨ï.
* à¨ ¯®¢â®à­®¬ ¢ë§®¢¥ ä㭪樨 ⥬ ¦¥ ¯à®æ¥áᮬ äã­ªæ¨ï ¢¥à­ñâ à §¬¥à
áãé¥áâ¢ãî饩 ªãç¨.
* ®á«¥ ᮧ¤ ­¨ï ªãç¨ ¢ë§®¢ë ä㭪樨 64.1 ¨£­®à¨àãîâáï.
* à¨ ¯®¢â®à­®¬ ¢ë§®¢¥ ä㭪樨 ⥬ ¦¥ ¯à®æ¥áᮬ äã­ªæ¨ï ¢¥à­ñâ
à §¬¥à áãé¥áâ¢ãî饩 ªãç¨.
* ®á«¥ ᮧ¤ ­¨ï ªãç¨ ¢ë§®¢ë ä㭪樨 64 ¨£­®à¨àãîâáï.
 
======================================================================
========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 12 - ¢ë¤¥«¨âì ¡«®ª ¯ ¬ïâ¨. =========
3844,9 → 3738,7
 à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨
* ebx = 16 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ASCIIZ áâபã á ¨¬¥­¥¬ ¤à ©¢¥à 
¬ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ 16 ᨬ¢®«®¢ ¢ª«îç ï ­®«ì
®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï
* ecx = 㪠§ â¥«ì ­  ASCIIZ-áâபã á ¨¬¥­¥¬ ¤à ©¢¥à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ­¥ã¤ ç 
* ¨­ ç¥ eax = åí­¤« ¤à ©¢¥à 
3854,10 → 3746,12
* …᫨ ¤à ©¢¥à ¥éñ ­¥ § £à㦥­, ®­ § £à㦠¥âáï;
¥á«¨ ¤à ©¢¥à 㦥 § £à㦥­, ­¨ç¥£® ­¥ ¬¥­ï¥âáï.
* ˆ¬ï ¤à ©¢¥à  çã¢á⢨⥫쭮 ª ॣ¨áâàã ᨬ¢®«®¢.
Œ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ - 16 ᨬ¢®«®¢, ¢ª«îç ï § ¢¥àè î騩
­ã«¥¢®© ᨬ¢®«, ®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï.
* Œ®¦­® § £à㦠âì ⮫쪮 ¤à ©¢¥à , § à¥£¨áâà¨à®¢ ­­ë¥ ¢ á¨á⥬¥;
¢ ⥪ã饩 ॠ«¨§ æ¨¨ ¥áâì ஢­® 2 â ª¨å ¤à ©¢¥à :
* ¨¬ï SOUND, ä ©« /rd/1/unisound.obj
* ¨¬ï INFINITY, ä ©« /rd/1/infinity.obj
* ¨¬ï SOUND, ä ©« /rd/1/drivers/unisound.obj
* ¨¬ï INFINITY, ä ©« /rd/1/drivers/infinity.obj
 
======================================================================
========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 17 - ã¯à ¢«¥­¨¥ ¤à ©¢¥à®¬. =========
3891,6 → 3785,21
(0, ¥á«¨ ®­ ­¥ ¡ë« ãáâ ­®¢«¥­)
 
======================================================================
============= ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 19 - § £à㧨âì DLL. =============
======================================================================
 à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨
* ebx = 19 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ASCIIZ-áâபã á ¯®«­ë¬ ¯ãâñ¬ ª DLL
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ­¥ã¤ ç 
* ¨­ ç¥ eax = 㪠§ â¥«ì ­  â ¡«¨æã íªá¯®àâ  DLL
‡ ¬¥ç ­¨ï:
* ’ ¡«¨æ  íªá¯®àâ  ¯à¥¤áâ ¢«ï¥â ᮡ®© ¬ áᨢ áâàãªâãà ¯® 2 dword' ,
§ ª ­ç¨¢ î騩áï ­ã«ñ¬. ¥à¢ë© dword ¢ áâàãªâãॠï¥âáï
㪠§ â¥«¥¬ ­  ¨¬ï ä㭪樨, ¢â®à®© ᮤ¥à¦¨â  ¤à¥á ä㭪樨.
 
======================================================================
======================== ”ã­ªæ¨ï 69 - ®â« ¤ª . =======================
======================================================================
à®æ¥áá ¬®¦¥â § £à㧨âì ¤à㣮© ¯à®æ¥áá ª ª ®â« ¦¨¢ ¥¬ë© ãáâ ­®¢ª®©
/kernel/trunk/docs/sysfuncs.txt
1,4 → 1,4
SYSTEM FUNCTIONS of OS Kolibri 0.6.0.0
SYSTEM FUNCTIONS of OS Kolibri 0.6.3.0
 
Number of the function is located in the register eax.
The call of the system function is executed by "int 0x40" command.
680,7 → 680,7
* eax = 0 - success
* else eax = error code of the file system
Çàìå÷àíèÿ:
* Filename is fixed, "menuet.img" (global kernel variable
* Filename is fixed, "kolibri.img" (global kernel variable
'image_save' from 'preboot.inc')
* Drive and partition are defined by subfunction 7
and subfunction 8 of function 21.
812,7 → 812,7
otherwise it shows number of the recognized partitions, which
can be not presented (if the drive is not formatted or if
the file system is not supported). Current version of the kernel
supports only FAT16 and FAT32 for hard disks.
supports only FAT16, FAT32 and NTFS for hard disks.
* +6: 4 db: reserved
Format of the table: full version:
* +0: 10 db: same as for the short version
828,37 → 828,13
* +0: dword: first physical sector of the partition
* +4: dword: last physical sector of the partition
(belongs to the partition)
* +8: dword: sectors per one copy of FAT
* +12 = +0xC: dword: number of copies of FAT
* +16 = +0x10: dword: number of sectors per cluster
* +20 = +0x14: dword: bytes per sector;
current implementation expects 0x200 = 512 in this field
* +24 = +0x18: dword: first root cluster in FAT32, 0 for FAT16
* +28 = +0x1C: dword: first physical sector of FAT
* +32 = +0x20: dword: first physical root sector for FAT16,
ignored for FAT32
* +36 = +0x24: dword: number of root sectors for FAT16,
0 for FAT32
* +40 = +0x28: dword: physical sector of the beginning of
the data area
* +44 = +0x2C: dword: maximum number of a cluster
* +48 = +0x30: dword: physical sector of the information
about the file system for FAT32, ignored for FAT16
* +52 = +0x34: dword: value used as boundary for special
values in FAT
* +56 = +0x38: dword: value used for bad clusters in FAT
* +60 = +0x3C: dword: value used as the end marker for FAT chain
* +64 = +0x40: dword: mask for FAT items
* +68 = +0x44: byte: file system type: 16 èëè 32
* +69 = +0x45: 31 db: reserved
* +8: byte: file system type:
16=FAT16, 32=FAT32, 1=NTFS
* other data are dependent on file system, are modified with
kernel modifications and therefore are not described
Remarks:
* The short table can be used for obtaining the information about
available devices.
* First two fields in the information about partition
gives the parameters of partition, other - parameters of
FAT file system. For other file systems (when they will be
supported) specific for file system information will be, of
course, another, but first two fields will have the same sense.
 
======================================================================
========== Function 18, subfunction 13 - get kernel version. =========
874,8 → 850,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.5.8.1 kernel:
db 0,5,8,1
For Kolibri 0.6.3.0 kernel:
db 0,6,3,0
db 2
db 'Kolibri',0
 
1140,21 → 1116,6
* To get system language use subfunction 5 of function 26.
 
======================================================================
=========== Function 21, subfunction 6 - set WSS base port. ==========
======================================================================
Parameters:
* eax = 21 - function number
* ebx = 6 - subfunction number
* ecx = base port
Returned value:
* eax = 0 - success
* eax = -1 - erratic port number
Remarks:
* Port number must satisfy to condition 0x100<=ecx.
* WSS base is used by function 27.
* To get WSS base port use subfunction 6 of function 26.
 
======================================================================
============== Function 21, subfunction 7 - set HD base. =============
======================================================================
The HD base defines hard disk to write with usage of obsolete
1575,18 → 1536,6
* To set system language use subfunction 5 of function 21.
 
======================================================================
=========== Function 26, subfunction 6 - get WSS base port. ==========
======================================================================
Parameters:
* eax = 26 - function number
* ebx = 6 - subfunction number
Returned value:
* eax = base port
Remarks:
* WSS base is used by function 27.
* To set WSS base port use subfunction 6 of function 21.
 
======================================================================
============== Function 26, subfunction 7 - get HD base. =============
======================================================================
The HD base defines hard disk to write with usage of obsolete
1677,27 → 1626,6
* To set the current state use subfunction 12 of function 21.
 
======================================================================
======== Function 27 - set Windows Sound System (WSS) volume. ========
======================================================================
Parameters:
* eax = 27 - function number
* ebx = what to set:
* 1 - set common volume
* 2 - set Line In volume
* cl = volume level (0x0=highest, 0x1F=lowest,
if bit 0x80 is set=disable)
Returned value:
* eax = 0 - success
* eax = 1 - WSS base is not defined
* eax = 2 - incorrect subfunction
Remarks:
* Previously WSS base port must be defined by call to
subfunction 6 of function 21.
* Set of common volume is ignored (function simply returns eax=0).
* Old documentation and kernel sources erraticly name function 2
as CD-audio volume.
 
======================================================================
=================== Function 28 - set SB16 volume. ===================
======================================================================
Parameters:
1797,7 → 1725,7
the current videomode, use function 61.
 
======================================================================
========= Function 37 - get coordinates/status of the mouse. =========
=================== Function 37 - work with mouse. ===================
======================================================================
 
---------- Subfunction 0 - screen coordinates of the mouse -----------
1833,6 → 1761,54
* bit 1 is set = right button is pressed
* other bits are cleared
 
-------------------- Subfunction 4 - load cursor ---------------------
Parameters:
* eax = 37 - function number
* ebx = 4 - subfunction number
* dx = data source:
* dx = LOAD_FROM_FILE = 0 - data in a file
* ecx = pointer to full path to the cursor file
* the file must be in the format .cur, which is standard for
MS Windows, at that of the size 32*32 pixels
* dx = LOAD_FROM_MEM = 1 - data of file are already loaded in memory
* ecx = pointer to data of the cursor file
* the data format is the same as in the previous case
* dx = LOAD_INDIRECT = 2 - data in memory
* ecx = pointer to cursor image in the format ARGB 32*32 pixels
* edx = 0xXXYY0002, where
* XX = x-coordinate of cursor hotspot
* YY = y-coordinate
* 0 <= XX, YY <= 31
Returned value:
* eax = 0 - failed
* otherwise eax = cursor handle
 
--------------------- Subfunction 5 - set cursor ---------------------
Sets new cursor for the window of the current thread.
Parameters:
* eax = 37 - function number
* ebx = 5 - subfunction number
* ecx = cursor handle
Returned value:
* eax = handle of previous cursor
Remarks:
* If the handle is incorrect, the function restores the default
cursor (standard arrow). In particular, ecx=0 restores it.
 
------------------- Subfunction 6 - delete cursor --------------------
Parameters:
* eax = 37 - function number
* ebx = 6 - subfunction number
* ecx = cursor handle
Returned value:
* eax destroyed
Remarks:
* The cursor must be loaded previously by the current thread
(with the call to subfunction 4). The function does not delete
system cursors and cursors, loaded by another applications.
* If the active cursor (set by subfunction 5) is deleted,
the system restores the default cursor (standard arrow).
 
======================================================================
====================== Function 38 - draw line. ======================
======================================================================
2051,9 → 2027,8
that was not earlier reserved by this function
(with same ecx,edx).
* If an error occurs (for both cases) function performs no action.
* At booting the system reserves for itself ports 0..0xff, and if
COM-mouse is detected - additionally range of COM-ports
0x3f0..0x3ff and/or 0x2f0..0x2ff.
* At booting the system reserves for itself ports
0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (inclusively).
* When a thread terminates, all reserved by it ports
are freed automatically.
 
2526,6 → 2501,20
in future versions
 
======================================================================
======== Function 52, subfunction 15 - get local MAC address. ========
======================================================================
Parameters:
* eax = 52 - function number
* ebx = 15 - subfunction number
* ecx = 0 - read first 4 bytes,
ecx = 4 - read last 2 bytes
Returned value:
* for ecx=0: eax = first 4 bytes of MAC address
* for ecx=4: ax = last 2 bytes of MAC address,
high half of eax is destroyed
* for other ecx: eax = -1 indicates an error
 
======================================================================
============ Function 53, subfunction 0 - open UDP-socket. ===========
======================================================================
Parameters:
2820,30 → 2809,6
of play.
 
======================================================================
=============== Function 56 - write file to hard disk. ===============
======================================================================
Parameters:
* eax = 56 - function number
* ebx = pointer to the file name
* ecx = size of data to write (in bytes)
* edx = pointer to data to write
* esi = pointer to path (ASCIIZ-string)
Returned value:
* eax = 0 - success, otherwise file system error code
Remarks:
* This function is obsolete; function 70 allows to fulfil the same
operations with the extended possibilities.
* This function assumes that during its call by one application
no other application works with hard disk.
* The path to file is ASCIIZ-string, which may be empty
(if the file is created in the root folder) or have the format
/d1/d2/.../dn, where all folder names must have the 8+3 format,
i.e. 8 characters of name and 3 characters of the extension
without separator, supplemented by blanks if necessary;
all letters must be capital.
* The file name must also have the format 8+3.
 
======================================================================
================ Function 58 - work with file system. ================
======================================================================
Parameters:
3757,8 → 3722,8
* 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/unisound.obj
* name INFINITY, file /rd/1/infinity.obj
* name SOUND, file /rd/1/drivers/unisound.obj
* name INFINITY, file /rd/1/drivers/infinity.obj
 
======================================================================
============ Function 68, subfunction 17 - driver control. ===========
3791,6 → 3756,21
* eax = address of the old exception handler (0, if it was not set)
 
======================================================================
=============== Function 68, subfunction 19 - load DLL. ==============
======================================================================
Parameters:
* eax = 68 - function number
* ebx = 19 - subfunction number
* ecx = pointer to ASCIIZ-string with the full path to DLL
Returned value:
* eax = 0 - failed
* otherwise eax = pointer to DLL export table
Remarks:
* Export table is an array of structures of 2 dword's, terminated
by zero. The first dword in structure points to function name,
the second dword contains address of function.
 
======================================================================
====================== Fucntion 69 - debugging. ======================
======================================================================
A process can load other process as debugged by set of corresponding
/kernel/trunk/fs/part_set.inc
5,9 → 5,9
;* to MBR - Mario79 *
;*************************************************************
 
uglobal
align 4
 
iglobal
;******************************************************
; Please do not change this place - variables in text
; Mario79
16,6 → 16,7
PARTITION_START dd 0x3f
PARTITION_END dd 0
fs_type db 0 ; 0=none, 1=NTFS, 16=FAT16, 32=FAT32
align 4
 
fs_dependent_data_start:
; FATxx data
64,6 → 65,8
; End place
; Mario79
;***************************************************************************
endg
iglobal
 
partition_types: ; list of fat16/32 partitions
db 0x04 ; DOS: fat16 <32M
/kernel/trunk/kernel.asm
1172,50 → 1172,6
ret
 
 
align 4
 
sys_wss:
 
cmp word [wss],word 0
jnz wssl1
mov [esp+36],dword 1
ret
wssl1:
 
cmp eax,1 ; set volume - main
jnz wssl2
mov [esp+36],dword 0
ret
wssl2:
 
cmp eax,2 ; set volume - cd
jnz wssl3
; L
mov dx,word [wss]
add dx,4
mov al,0x2
out dx,al
mov esi,1
call delay_ms
mov eax,ebx
inc edx
out dx,al
; R
mov dx,word [wss]
add dx,4
mov al,0x3
out dx,al
mov esi,1
call delay_ms
mov eax,ebx
inc edx
out dx,al
mov [esp+36],dword 0
ret
wssl3:
mov [esp+36],dword 2
ret
 
display_number:
 
; eax = print type, al=0 -> ebx is number
1385,7 → 1341,6
; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 4=sb16 base , base io address
; 5=system language, 1eng 2fi 3ger 4rus
; 6=wss base , base io address
; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 8=fat32 partition in hd
; 9
1502,17 → 1457,6
ret
nsyse5:
 
cmp eax,6 ; WSS
jnz nsyse6
cmp ebx,0x100
jb nsyse6
mov [wss],ebx
ret
 
wss_temp dd 0
 
nsyse6:
 
cmp eax,7 ; HD BASE
jne nsyse7
test ebx,ebx
1612,7 → 1556,6
; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 4=sb16 base , base io address
; 5=system language, 1eng 2fi 3ger 4rus
; 6=wss base
; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 8=fat32 partition in hd
; 9=get hs timer tic
1683,12 → 1626,6
mov [esp+36],eax
ret
ngsyse5:
cmp eax,6
jnz ngsyse6
mov eax,[wss]
mov [esp+36],eax
ret
ngsyse6:
cmp eax,7
jnz ngsyse7
movzx eax,[hd_base]
5022,7 → 4959,6
pci_access_enabled dd 0x0 ; 0 = disabled , 1 = enabled
 
sb16 dd 0x0
wss dd 0x0
 
buttontype dd 0x0
windowtypechanged dd 0x0