Sysfunctions 70 & 30: the info about relative names is added.

git-svn-id: svn://kolibrios.org@1662 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Nasarus 2010-10-17 08:53:29 +00:00
parent ca82f03c33
commit 9f7b730b3b
2 changed files with 210 additions and 378 deletions

View File

@ -1,4 +1,4 @@
ˆ…Œ<EFBFBD>… ”“<E2809D>Šˆˆ Ž<><EFBFBD>ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.7.5.0+ <EFBFBD><EFBFBD><EFBFBD>… ”“<E2809D><E2809C><EFBFBD><E28093> <20><><EFBFBD><E282AC><E28093><EFBFBD><EFBFBD><EFBFBD><><E28099> Kolibri 0.7.7.0
<EFBFBD>®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax. <EFBFBD>®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40". ‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
@ -383,7 +383,7 @@
ᮡá⢥­­® à ¡®âã, ¨ ¢à¥¬¥­¨ ¯à®áâ®ï ¢ ®¦¨¤ ­¨¨ ¯à¥à뢠­¨ï ᮡá⢥­­® à ¡®âã, ¨ ¢à¥¬¥­¨ ¯à®áâ®ï ¢ ®¦¨¤ ­¨¨ ¯à¥à뢠­¨ï
(ª®â®à®¥ ¬®¦­® ¯®«ãç¨âì ¢ë§®¢®¬ ¯®¤ä㭪樨 4 ä㭪樨 18). (ª®â®à®¥ ¬®¦­® ¯®«ãç¨âì ¢ë§®¢®¬ ¯®¤ä㭪樨 4 ä㭪樨 18).
* <20> ç¨­ ï á® á«®â  2, à §¬¥é îâáï ®¡ëç­ë¥ ¯à¨«®¦¥­¨ï. * <20> ç¨­ ï á® á«®â  2, à §¬¥é îâáï ®¡ëç­ë¥ ¯à¨«®¦¥­¨ï.
* Ž¡ëç­ë¥ ¯à¨«®¦¥­¨ï à §¬¥é îâáï ¢ ¯ ¬ï⨠¯®  ¤à¥áã 0x0 * <EFBFBD>΅λη­λ¥ ―ਫ®¦¥­¨ο ΰ §¬¥ι ξβαο Ά ― ¬οβ¨ ―®  ¤ΰ¥αγ 0
(ª®­áâ ­â  ï¤à  std_application_base_address). (ª®­áâ ­â  ï¤à  std_application_base_address).
<20> «®¦¥­¨ï ­¥ ¯à®¨á室¨â, ¯®áª®«ìªã ã ª ¦¤®£® ¯à®æ¥áá  á¢®ï <20> «®¦¥­¨ï ­¥ ¯à®¨á室¨â, ¯®áª®«ìªã ã ª ¦¤®£® ¯à®æ¥áá  á¢®ï
â ¡«¨æ  áâà ­¨æ. â ¡«¨æ  áâà ­¨æ.
@ -849,10 +849,10 @@
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
dd REV - ­®¬¥à svn-ॢ¨§¨¨ ï¤à  dd REV - ­®¬¥à svn-ॢ¨§¨¨ ï¤à 
„«ï ï¤à  Kolibri 0.7.1.0: „«ο ο¤ΰ  Kolibri 0.7.7.0:
db 0,7,1,0 db 0,7,7,0
db 2 db 2
dd 638 dd 1319
====================================================================== ======================================================================
====================== ”ã­ªæ¨ï 18, ¯®¤äã­ªæ¨ï 14 ===================== ====================== ”ã­ªæ¨ï 18, ¯®¤äã­ªæ¨ï 14 =====================
@ -1677,62 +1677,14 @@ dd 638
* ecx = 㪠§ â¥«ì ­  ¡ãä¥à * ecx = 㪠§ â¥«ì ­  ¡ãä¥à
* edx = à §¬¥à ¡ãä¥à  * edx = à §¬¥à ¡ãä¥à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥: ‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = - 1 ®é¨¡ª , ¯ ¯ª  ⥪ã饣® ¯®â®ª  ¨¬¥¥â ¤«¨­­ã ¡®«¥¥ 祬 4096 ᨬ¢®«®¢.
* eax = ¤«¨­  ¨¬¥­¨ ⥪ã饩 ¯ ¯ª¨ (¢ª«îç ï § ¢¥àè î騩 0) * eax = ¤«¨­  ¨¬¥­¨ ⥪ã饩 ¯ ¯ª¨ (¢ª«îç ï § ¢¥àè î騩 0)
‡ ¬¥ç ­¨ï: ‡ ¬¥ç ­¨ï:
* …᫨ à §¬¥à  ¡ãä¥à  ­¥¤®áâ â®ç­® ¤«ï ª®¯¨à®¢ ­¨ï ¢á¥£® ¨¬¥­¨, * …᫨ à §¬¥à  ¡ãä¥à  ­¥¤®áâ â®ç­® ¤«ï ª®¯¨à®¢ ­¨ï ¢á¥£® ¨¬¥­¨,
ª®¯¨àãîâáï ⮫쪮 ¯¥à¢ë¥ (edx-1) ¡ ©â <20>®―¨ΰγξβαο β®«μ<C2AB>® ―¥ΰΆλ¥ (edx-1) ΅ ©β ¨ Ά <20>®­ζ¥ αβ Ά¨βαο
¨ ¢ ª®­æ¥ áâ ¢¨âáï § ¢¥àè î騩 0. § Ά¥ΰθ ξ騩 0.
* <20>® 㬮«η ­¨ξ, β¥<CEB2>γι ο <C2A0>  ¤«ο ―®β®<CEB2>  - "/rd/1".
====================================================================== * <20>ਠᮧ¤ ­¨¨ ―ΰ®ζ¥αα /―®β®<CEB2>  β¥<CEB2>γι ο <C2A0>  ­ α«¥¤γ¥βαο ®β
================ ”ã­ªæ¨ï 32 - 㤠«¨âì ä ©« á à ¬¤¨áª . =============== த¨β¥«ο.
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 32 - ­®¬¥à ä㭪樨
* ebx = 㪠§ â¥«ì ­  ¨¬ï ä ©« 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮; ¨­ ç¥ ª®¤ ®è¨¡ª¨ ä ©«®¢®© á¨á⥬ë
‡ ¬¥ç ­¨ï:
* <20>â  äã­ªæ¨ï ãáâ à¥« ; äã­ªæ¨ï 58 ¯®§¢®«ï¥â ¢ë¯®«­ïâì
⥠¦¥ ¤¥©á⢨ï á à áè¨à¥­­ë¬¨ ¢®§¬®¦­®áâﬨ.
* ’¥ªãé ï ॠ«¨§ æ¨ï ¢®§¢à é ¥â ⮫쪮 §­ ç¥­¨ï 0(ãᯥå) ¨
5(ä ©« ­¥ ­ ©¤¥­).
* ˆ¬ï ä ©«  ¤®«¦­® ¡ëâì «¨¡® ¢ ä®à¬ â¥ 8+3 ᨬ¢®«®¢ (¯¥à¢ë¥
8 ᨬ¢®«®¢ - ᮡá⢥­­® ¨¬ï, ¯®á«¥¤­¨¥ 3 - à áè¨à¥­¨¥,
ª®à®âª¨¥ ¨¬¥­  ¨ à áè¨à¥­¨ï ¤®¯®«­ïîâáï ¯à®¡¥« ¬¨),
«¨¡® ¢ ä®à¬ â¥ 8.3 ᨬ¢®«®¢ "FILE.EXT"/"FILE.EX "
(¨¬ï ­¥ ¡®«¥¥ 8 ᨬ¢®«®¢, â®çª , à áè¨à¥­¨¥ 3 ᨬ¢®« ,
¤®¯®«­¥­­®¥ ¯à¨ ­¥®¡å®¤¨¬®á⨠¯à®¡¥« ¬¨).
ˆ¬ï ä ©«  ¤®«¦­® ¡ëâì § ¯¨á ­® § £« ¢­ë¬¨ ¡ãª¢ ¬¨.
‡ ¢¥àè î騩 ᨬ¢®« á ª®¤®¬ 0 ­¥ ­ã¦¥­ (­¥ ASCIIZ-áâப ).
* <20>â  äã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥â ¯ ¯®ª ­  à ¬¤¨áª¥.
======================================================================
=============== ”ã­ªæ¨ï 33 - § ¯¨á âì ä ©« ­  à ¬¤¨áª. ===============
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 33 - ­®¬¥à ä㭪樨
* ebx = 㪠§ â¥«ì ­  ¨¬ï ä ©« 
* ecx = 㪠§ â¥«ì ­  ¤ ­­ë¥ ¤«ï § ¯¨á¨
* edx = ç¨á«® ¡ ©â ¤«ï § ¯¨á¨
* á«¥¤ã¥â ãáâ ­ ¢«¨¢ âì esi=0
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮, ¨­ ç¥ ª®¤ ®è¨¡ª¨ ä ©«®¢®© á¨á⥬ë
‡ ¬¥ç ­¨ï:
* <20>â  äã­ªæ¨ï ãáâ à¥« ; äã­ªæ¨ï 70 ¯®§¢®«ï¥â ¢ë¯®«­ïâì
⥠¦¥ ¤¥©á⢨ï á à áè¨à¥­­ë¬¨ ¢®§¬®¦­®áâﬨ.
* …᫨ 㪠§ âì ­¥­ã«¥¢®¥ §­ ç¥­¨¥ ¢ esi ¨ ­  à ¬¤¨áª¥ 㦥 ¥áâì
㪠§ ­­ë© ä ©«, â® ¡ã¤¥â ᮧ¤ ­ ¥éñ ®¤¨­ ä ©« á ⥬ ¦¥ ¨¬¥­¥¬.
* ¯à®â¨¢­®¬ á«ãç ¥ ä ©« ¯¥à¥§ ¯¨á뢠¥âáï.
* ˆ¬ï ä ©«  ¤®«¦­® ¡ëâì «¨¡® ¢ ä®à¬ â¥ 8+3 ᨬ¢®«®¢
(¯¥à¢ë¥ 8 ᨬ¢®«®¢ - ᮡá⢥­­® ¨¬ï, ¯®á«¥¤­¨¥ 3 - à áè¨à¥­¨¥,
ª®à®âª¨¥ ¨¬¥­  ¨ à áè¨à¥­¨ï ¤®¯®«­ïîâáï ¯à®¡¥« ¬¨),
«¨¡® ¢ ä®à¬ â¥ 8.3 ᨬ¢®«®¢ "FILE.EXT"/"FILE.EX "
(¨¬ï ­¥ ¡®«¥¥ 8 ᨬ¢®«®¢, â®çª , à áè¨à¥­¨¥ 3 ᨬ¢®« ,
¤®¯®«­¥­­®¥ ¯à¨ ­¥®¡å®¤¨¬®á⨠¯à®¡¥« ¬¨).
ˆ¬ï ä ©«  ¤®«¦­® ¡ëâì § ¯¨á ­® § £« ¢­ë¬¨ ¡ãª¢ ¬¨.
‡ ¢¥àè î騩 ᨬ¢®« á ª®¤®¬ 0 ­¥ ­ã¦¥­ (­¥ ASCIIZ-áâப ).
* <20>â  äã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥â ¯ ¯®ª ­  à ¬¤¨áª¥.
====================================================================== ======================================================================
============ ”ã­ªæ¨ï 35 - ¯à®ç¨â âì 梥â â®çª¨ ­  íªà ­¥. ============ ============ ”ã­ªæ¨ï 35 - ¯à®ç¨â âì 梥â â®çª¨ ­  íªà ­¥. ============
@ -1858,7 +1810,7 @@ dd 638
------------------ <20>®¤äã­ªæ¨ï 7 - ¤ ­­ë¥ ¯à®ªàã⪨ ------------------- ------------------ <20>®¤äã­ªæ¨ï 7 - ¤ ­­ë¥ ¯à®ªàã⪨ -------------------
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨 * eax = 37 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 7 - ­®¬¥ΰ ―®¤δγ­<CEB3>樨
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥: ‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = [horizontal offset]*65536 + [vertical offset] * eax = [horizontal offset]*65536 + [vertical offset]
‡ ¬¥ç ­¨ï: ‡ ¬¥ç ­¨ï:
@ -3289,63 +3241,6 @@ IPC
¢å®¤¨â, ­ ¯à¨¬¥à, ¢ ¨§¢¥áâ­ë© Interrupt List by Ralf Brown; ¢å®¤¨â, ­ ¯à¨¬¥à, ¢ ¨§¢¥áâ­ë© Interrupt List by Ralf Brown;
ᯨ᮪ ¢â®àëå ¤®«¦¥­ ¡ëâì 㪠§ ­ ¢ ¤®ªã¬¥­â æ¨¨ ¯® ãáâனáâ¢ã. ᯨ᮪ ¢â®àëå ¤®«¦¥­ ¡ëâì 㪠§ ­ ¢ ¤®ªã¬¥­â æ¨¨ ¯® ãáâனáâ¢ã.
======================================================================
====================== ”ã­ªæ¨ï 62, ¯®¤äã­ªæ¨ï 11 =====================
== ˆ­¨æ¨ «¨§¨à®¢ âì ¯®«ì§®¢ â¥«ì᪨© / á ®â®¡à ¦¥­¨¥¬ ­  ¯ ¬ïâì ==
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 62 - ­®¬¥à ä㭪樨
* bl = 11 - ­®¬¥à ¯®¤ä㭪樨
* cx =  ¤à¥á PCI-ãáâனá⢠
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = -1 - ¤®áâ㯠ª PCI § ¯à¥éñ­;
* eax = -2 - ¤®áâ㯠ª MMIO-¡«®ª ¬ ãáâனá⢠ ­¥ à §à¥èñ­;
* eax = -3 - ®è¨¡ª   ««®ª æ¨¨ ¯®«ì§®¢ â¥«ì᪮© ¤¨­. ¯ ¬ïâ¨; ¨­ ç¥
* eax = à §¬¥à ¤®áâ㯭®© ¤¨­ ¬¨ç¥áª®© ¯ ¬ïâ¨.
‡ ¬¥ç ­¨ï:
* <20>।¢ à¨â¥«ì­® ¤®«¦¥­ ¡ëâì à §à¥èñ­ ­¨§ª®ã஢­¥¢ë© ¤®áâ㯠ª PCI
¤«ï ¯à¨«®¦¥­¨© ¯®¤ä㭪樥© 12 ä㭪樨 21.
*  ¤à¥á PCI-ãáâனá⢠ ¤®«¦¥­ ᮢ¯ ¤ âì á á¨á⥬­®© ¯¥à¥¬¥­­®©
mmio_pci_addr
======================================================================
====================== ”ã­ªæ¨ï 62, ¯®¤äã­ªæ¨ï 12 =====================
== ‚뤥«¨âì ¤¨ ¯ §®­ «¨­¥©­ëå  ¤à¥á®¢ ¤«ï ¯®«ì§®¢ â¥«ì᪮£® MMIO ==
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 62 - ­®¬¥à ä㭪樨
* bl = 12 - ­®¬¥à ¯®¤ä㭪樨
* bh = ­®¬¥à BAR-ॣ¨áâà  ¢ ª®­ä¨£ãà æ¨®­­®© §®­¥ PCI
* ecx = à §¬¥à MMIO-¡«®ª  (¢ ¡ ©â å)
* edx = ᬥ饭¨¥ ®â­®á¨â¥«ì­® ­ ç «  MMIO-¡«®ª  (¢ 4K-áâà ­¨æ å!)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = -1 - ¤®áâ㯠ª PCI § ¯à¥éñ­;
* eax = -2 - ­¥¢¥à­ë© ­®¬¥à BAR-ॣ¨áâà ;
* eax = -3 - BAR ­¥ ᮤ¥à¦¨â  ¤à¥á  IO;
* eax = -4 - BAR  ¤à¥áã¥â ¯®àâë IO;
* eax = -5 - ®è¨¡ª   ««®ª æ¨¨; ¨­ ç¥
* eax = ­ ç «ì­ë©  ¤à¥á MMIO ¢  ¤à¥á­®¬ ¯à®áâà ­á⢥ ¯à¨«®¦¥­¨ï.
‡ ¬¥ç ­¨ï:
* <20>।¢ à¨â¥«ì­® ¤®«¦¥­ ¡ëâì à §à¥èñ­ ­¨§ª®ã஢­¥¢ë© ¤®áâ㯠ª PCI
¤«ï ¯à¨«®¦¥­¨© ¯®¤ä㭪樥© 12 ä㭪樨 21.
* €¤à¥á PCI-ãáâனá⢠ § ¤ ¥âáï á¨á⥬­®© ¯¥à¥¬¥­­®© mmio_pci_addr.
* <20>।®áâ ¢«¥­­ë© ¤¨ ¯ §®­ «¨­¥©­ëå  ¤à¥á®¢ ¤®«¦¥­ ®á¢®¡®¦¤ âìáï
¯®á।á⢮¬ ¢ë§®¢  ä㭪樨 62:13
======================================================================
====================== ”ã­ªæ¨ï 62, ¯®¤äã­ªæ¨ï 13 =====================
== Žá¢®¡®¤¨âì ¤¨ ¯ §®­ «¨­¥©­ëå  ¤à¥á®¢ ¯®«ì§®¢ â¥«ì᪮£® MMIO ==
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 62 - ­®¬¥à ä㭪樨
* bl = 12 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ­ ç «ì­ë©  ¤à¥á ®á¢®¡®¦¤ ¥¬®£® MMIO-¡«®ª  ¢  ¤à¥á­®¬
¯à®áâà ­á⢥ ¯à¨«®¦¥­¨ï
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 1 - ¡«®ª ãᯥ譮 ®á¢®¡®¦¤¥­;
‡ ¬¥ç ­¨ï:
* <20>।¢ à¨â¥«ì­® ¯à¨«®¦¥­¨î ¤®«¦¥­ ¡ëâì ¢ë¤¥«¥­ uMMIO-¡«®ª (fn62:12)
====================================================================== ======================================================================
================ ”ã­ªæ¨ï 63 - à ¡®â  á ¤®áª®© ®â« ¤ª¨. =============== ================ ”ã­ªæ¨ï 63 - à ¡®â  á ¤®áª®© ®â« ¤ª¨. ===============
====================================================================== ======================================================================
@ -3459,7 +3354,6 @@ IPC
====================================================================== ======================================================================
<EFBFBD>¥¦¨¬ ¢¢®¤  ¢«¨ï¥â ­  १ã«ìâ âë ç⥭¨ï ª« ¢¨è ä㭪樥© 2. <EFBFBD>¥¦¨¬ ¢¢®¤  ¢«¨ï¥â ­  १ã«ìâ âë ç⥭¨ï ª« ¢¨è ä㭪樥© 2.
<EFBFBD>ਠ§ £à㧪¥ ¯à®£à ¬¬ë ¤«ï ­¥ñ ãáâ ­ ¢«¨¢ ¥âáï ASCII-०¨¬ ¢¢®¤ . <EFBFBD>ਠ§ £à㧪¥ ¯à®£à ¬¬ë ¤«ï ­¥ñ ãáâ ­ ¢«¨¢ ¥âáï ASCII-०¨¬ ¢¢®¤ .
…᫨ ¢ë§ë¢ ¥âáï ­¥áãé¥áâ¢ãîé ï ¯®¤äã­ªæ¨ï ¢®§¢à é ¥âáï ¢ eax=-1.
-------- <20>®¤äã­ªæ¨ï 1 - ãáâ ­®¢¨âì ०¨¬ ¢¢®¤  á ª« ¢¨ âãàë. --------- -------- <20>®¤äã­ªæ¨ï 1 - ãáâ ­®¢¨âì ०¨¬ ¢¢®¤  á ª« ¢¨ âãàë. ---------
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
@ -3702,25 +3596,20 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
¨«¨ ¯®¤ä㭪樥© 20. ¨«¨ ¯®¤ä㭪樥© 20.
====================================================================== ======================================================================
==================== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 14 ======================= ====================== ”γ­<CEB3>ζ¨ο 68, ―®¤δγ­<CEB3>ζ¨ο 14 =====================
===== Ž¦¨¤ âì ¯®«ã祭¨ï ᨣ­ « , ®â ¤àã£¨å ¯à¨«®¦¥­¨©/¤à ©¢¥à®¢. ===== ====== <20>¦¨¤ βμ ―®«γη¥­¨ο ᨣ­ «  ®β ¤ΰγ£¨ε ―ΰ¨«®¦¥­¨©/¤ΰ ©Ά¥ΰ®Ά. =====
====================================================================== ======================================================================
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨 * eax = 68 - ­®¬¥à ä㭪樨
* ebx = 14 - ­®¬¥à ¯®¤ä㭪樨 * ebx = 14 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ¡ãä¥à ¤«ï ¨­ä®à¬ æ¨¨ (24 ¡ ©â ) * ecx = 㪠§ â¥«ì ­  ¡ãä¥à ¤«ï ¨­ä®à¬ æ¨¨ (24 ¡ ©â )
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥: ‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax ΰ §ΰγθ ¥βαο
* ¡ãä¥à, ­  ª®â®àë© ãª §ë¢ ¥â ecx, ᮤ¥à¦¨â á«¥¤ãîéãî ¨­ä®à¬ æ¨î: * ¡ãä¥à, ­  ª®â®àë© ãª §ë¢ ¥â ecx, ᮤ¥à¦¨â á«¥¤ãîéãî ¨­ä®à¬ æ¨î:
* +0: dword: ¨¤¥­â¨ä¨ª â®à ¯®á«¥¤ãîé¨å ¤ ­­ëå ᨣ­ «  * +0: dword: ¨¤¥­â¨ä¨ª â®à ¯®á«¥¤ãîé¨å ¤ ­­ëå ᨣ­ « 
* +4: ¤ ­­ë¥ ¯à¨­ï⮣® ᨣ­ «  (20 ¡ ©â), ä®à¬ â ª®â®àëå * +4: ¤ ­­ë¥ ¯à¨­ï⮣® ᨣ­ «  (20 ¡ ©â), ä®à¬ â ª®â®àëå
®¯à¥¤¥«ï¥âáï ¯¥à¢ë¬ dword-®¬ ®¯à¥¤¥«ï¥âáï ¯¥à¢ë¬ dword-®¬
======================================================================
== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 15 - ãáâ ­®¢¨âì ®¡à ¡®â稪 ¨áª«î祭¨© FPU. =
======================================================================
“¤ «¥­  (¢ ⥪ã饩 ॠ«¨§ æ¨¨ ¯à®áâ® ¢®§¢à é ¥â 0)
ˆá¯®«ì§®¢ âì ¯®¤ä㭪樨 24, 25
====================================================================== ======================================================================
=========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 16 - § £à㧨âì ¤à ©¢¥à. =========== =========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 16 - § £à㧨âì ¤à ©¢¥à. ===========
====================================================================== ======================================================================
@ -3759,12 +3648,6 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
®¯à¥¤¥«ïîâáï ¤à ©¢¥à®¬. ®¯à¥¤¥«ïîâáï ¤à ©¢¥à®¬.
* <20>।¢ à¨â¥«ì­® ¤®«¦¥­ ¡ëâì ¯®«ã祭 åí­¤« ¤à ©¢¥à  ¯®¤ä㭪樥© 16. * <20>।¢ à¨â¥«ì­® ¤®«¦¥­ ¡ëâì ¯®«ã祭 åí­¤« ¤à ©¢¥à  ¯®¤ä㭪樥© 16.
======================================================================
== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 18 - ãáâ ­®¢¨âì ®¡à ¡®â稪 ¨áª«î祭¨© SSE. =
======================================================================
“¤ «¥­  (¢ ⥪ã饩 ॠ«¨§ æ¨¨ ¯à®áâ® ¢®§¢à é ¥â 0)
ˆá¯®«ì§®¢ âì ¯®¤ä㭪樨 24, 25
====================================================================== ======================================================================
============= ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 19 - § £à㧨âì DLL. ============= ============= ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 19 - § £à㧨âì DLL. =============
====================================================================== ======================================================================
@ -3860,7 +3743,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
®¡« á⨠¯ ¬ïâ¨. ®¡« á⨠¯ ¬ïâ¨.
====================================================================== ======================================================================
==== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 24 - ãáâ ­®¢¨âì ®¡à ¡®â稪 ¨áª«î祭¨© === ==== ”γ­<EFBFBD>ζ¨ο 68, ―®¤δγ­<CEB3>ζ¨ο 24 - γαβ ­®Ά¨βμ ®΅ΰ ΅®βη¨<CEB7> ¨α<C2A8>«ξη¥­¨©. ===
====================================================================== ======================================================================
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨 * eax = 68 - ­®¬¥à ä㭪樨
@ -3871,26 +3754,26 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* eax =  ¤à¥á áâ à®£® ®¡à ¡®â稪  ¨áª«î祭¨© (0, ¥á«¨ ­¥ ãáâ ­®¢«¥­) * eax =  ¤à¥á áâ à®£® ®¡à ¡®â稪  ¨áª«î祭¨© (0, ¥á«¨ ­¥ ãáâ ­®¢«¥­)
* ebx = ¬ áª  áâ à®£® ®¡à ¡®â稪  ¨áª«î祭¨© * ebx = ¬ áª  áâ à®£® ®¡à ¡®â稪  ¨áª«î祭¨©
‡ ¬¥ç ­¨ï: ‡ ¬¥ç ­¨ï:
* <20>®¬¥à ¡¨â  ¢ ¬ áª¥ ¨áª«î祭¨© ᮮ⢥âáâ¢ãîâ ­®¬¥à㠨᪫î祭¨ï ¯® * <20>®¬¥ΰ ΅¨β  Ά ¬ α<C2A0>¥ ¨α<C2A8>«ξη¥­¨© α®®βΆ¥βαβΆγ¥β ­®¬¥ΰγ ¨α<C2A8>«ξη¥­¨ο®
ᯥæ¨ä¨ª æ¨¨ ­  ¯à®æ¥áá®à (Intel-PC). ’ ª ­ ¯à¨¬¥à, ¨áª«î祭¨ï FPU α―¥ζ¨δ¨<EFBFBD> ζ¨¨ ­  ―ΰ®ζ¥αα®ΰ (Intel-PC).  <E28099>, ­ ―ਬ¥ΰ, ¨α<C2A8>«ξη¥­¨ο
¨¬¥îâ ­®¬¥à 16 (#MF),   SSE - 19 (#XF). FPU ¨¬¥ξβ ­®¬¥ΰ 16 (#MF),   SSE - 19 (#XF).
* ¤ ­­®© ॠ«¨§ æ¨¨ ¨£­®à¨àã¥âáï § ¯à®á ­  ¯¥à¥å¢ â ¨áª«î祭¨ï 7 * ¤ ­­®© ॠ«¨§ æ¨¨ ¨£­®à¨àã¥âáï § ¯à®á ­  ¯¥à¥å¢ â ¨áª«î祭¨ï 7
- á¨á⥬  ®¡à ¡ â뢠¥â #NM á ¬®áâ®ï⥫쭮. - á¨á⥬  ®¡à ¡ â뢠¥â #NM á ¬®áâ®ï⥫쭮.
* <20>®«ì§®¢ â¥«ì᪨© ®¡à ¡®â稪 ¯®«ã砥⠭®¬¥à ¨áª«î祭¨ï ¯ à ¬¥â஬ * <20>®«ì§®¢ â¥«ì᪨© ®¡à ¡®â稪 ¯®«ã砥⠭®¬¥à ¨áª«î祭¨ï ¯ à ¬¥â஬
¢ á⥪¥. <20>®í⮬㠯ࠢ¨«ì­ë© ¢ë室 ¨§ ®¡à ¡®â稪 : RET 4. ‚®§¢à â ¢ á⥪¥. <20>®í⮬㠯ࠢ¨«ì­ë© ¢ë室 ¨§ ®¡à ¡®â稪 : RET 4. ‚®§¢à â
¯à¨ í⮬ ¯à®¨§¢®¤¨âáï ­  ª®¬ ­¤ã, ¢ë§¢ ¢èãî ¨áª«î祭¨¥. ¯à¨ í⮬ ¯à®¨§¢®¤¨âáï ­  ª®¬ ­¤ã, ¢ë§¢ ¢èãî ¨áª«î祭¨¥.
* <20>ਠ¯¥à¥¤ ç¥ ã¯à ¢«¥­¨ï ®¡à ¡®â稪㠨᪫î祭¨©, á¡à á뢠¥âáï * <20>ΰ¨ ―¥ΰ¥¤ η¥ γ―ΰ Ά«¥­¨ο ®΅ΰ ΅®βη¨<CEB7>γ ¨α<C2A8>«ξη¥­¨© α΅ΰ αλΆ ¥βαο
ᮮ⢥âáâ¢ãî騩 ¡¨â ¢ ¬ áª¥ ¨áª«î祭¨©. ‚®§­¨ª­®¢¥­¨¥ í⮣® ¦¥ ᮮ⢥âáâ¢ãî騩 ¡¨â ¢ ¬ áª¥ ¨áª«î祭¨©. ‚®§­¨ª­®¢¥­¨¥ í⮣® ¦¥
¨áª«î祭¨ï ¢ ¯®á«¥¤á⢨¨ - ¯à¨¢¥¤¥â ª default-®¡à ¡®âª¥ â ª®¢®£®. ¨α<EFBFBD>«ξη¥­¨ο Ά―®α«¥¤αβΆ¨¨ ―ΰ¨Ά¥¤ρβ <20> 㬮«η «μ­®© ®΅ΰ ΅®β<C2AE>¥ β <CEB2>®Ά®£®.
€ ¨¬¥­­®: ª § ¢¥à襭¨î à ¡®âë ¯à¨«®¦¥­¨ï, ¨«¨ ¯à¨®áâ ­®¢ª¥ á € ¨¬¥­­®: <EFBFBD> § Ά¥ΰθ¥­¨ξ ΰ ΅®βλ ―ΰ¨«®¦¥­¨ο Ά ®βαγβαβΆ¨¨ ®β« ¤η¨<CEB7> ,
­®â¨ä¨ª æ¨¥© ®â« ¦¨¢ î饬㠯ਫ®¦¥­¨î. ―ਮαβ ­®Ά<EFBFBD>  α γΆ¥¤®¬«¥­¨¥¬ ®β« ¦¨Ά ξι¥£® ―ਫ®¦¥­¨ο ¨­ η¥.
* <20>®á«¥ § ¢¥à襭¨ï ªà¨â¨ç¥áª¨å ¤¥©á⢨© ¢ ®¡à ¡®â稪¥ ¯®«ì§®¢ â¥«ï, * <20>®α«¥ § Ά¥ΰθ¥­¨ο <20>ΰ¨β¨η¥α<C2A5>¨ε ¤¥©αβΆ¨© Ά ®΅ΰ ΅®βη¨<CEB7>¥ ―®«μ§®Ά β¥«ο
¢®ááâ ­®¢«¥­¨¥ ¡¨â  ¬ áª¨ ¤ ­­®£® ¨áª«î祭¨ï ¬®¦­® ᤥ« âì ¢®ááâ ­®¢«¥­¨¥ ¡¨â  ¬ áª¨ ¤ ­­®£® ¨áª«î祭¨ï ¬®¦­® ᤥ« âì
¯®¤ä㭪樥© 25. ‘¡à®á ä« £®¢ ¨áª«î祭¨© ¢ ¬®¤ã«ïå FPU ¨ XMM - ―®¤δγ­<EFBFBD>樥© 25. ‘΅ΰ®α δ« £®Ά ¨α<C2A8>«ξη¥­¨© Ά ¬®¤γ«οε FPU ¨ XMM β <CEB2>¦¥
â ª¦¥ ¢®§« £ ¥âáï ­  ®¡à ¡®â稪 ¯®«ì§®¢ â¥«ï. Ά®§« £ ¥βαο ­  ®΅ΰ ΅®βη¨<CEB7> ―®«μ§®Ά β¥«ο.
====================================================================== ======================================================================
= ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 25 - ¨§¬¥­¥­¨¥ á®áâ®ï­¨ï  ªâ¨¢­®á⨠ᨣ­ «  = = ”γ­<EFBFBD>ζ¨ο 68, ―®¤δγ­<CEB3>ζ¨ο 25 - ¨§¬¥­¨βμ α®αβ®ο­¨¥  <>β¨Ά­®α⨠ᨣ­ « . =
====================================================================== ======================================================================
<EFBFBD> à ¬¥âàë: <EFBFBD> à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨 * eax = 68 - ­®¬¥à ä㭪樨
@ -3898,10 +3781,11 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* ecx = ­®¬¥à ᨣ­ «  * ecx = ­®¬¥à ᨣ­ « 
* edx = §­ ç¥­¨¥ ãáâ ­ ¢«¨¢ ¥¬®©  ªâ¨¢­®á⨠(0/1) * edx = §­ ç¥­¨¥ ãáâ ­ ¢«¨¢ ¥¬®©  ªâ¨¢­®á⨠(0/1)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥: ‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = áâ à®¥ §­ ç¥­¨¥  ªâ¨¢­®á⨠ᨣ­ «  (0/1) * eax = -1 - § ¤ ­ ­¥Ά¥ΰ­λ© ­®¬¥ΰ ᨣ­ « 
* ¨­ η¥ eax = αβ ΰ®¥ §­ η¥­¨¥  <>β¨Ά­®α⨠ᨣ­ «  (0/1)
‡ ¬¥ç ­¨ï: ‡ ¬¥ç ­¨ï:
* ⥪ã饩 ॠ«¨§ æ¨¨ ¨§¬¥­ï¥âáï ⮫쪮 ¬ áª  ¯®«ì§®¢ â¥«ì᪮£® * ⥪ã饩 ॠ«¨§ æ¨¨ ¨§¬¥­ï¥âáï ⮫쪮 ¬ áª  ¯®«ì§®¢ â¥«ì᪮£®
®¡à ¡®â稪  ¨áª«î祭¨©, ãáâ ­®¢«¥­­®£® ¯®¤ä㭪樥© 24. <20>ਠí⮬, ®΅ΰ ΅®βη¨<EFBFBD>  ¨α<C2A8>«ξη¥­¨©, γαβ ­®Ά«¥­­®£® ―®¤δγ­<CEB3>樥© 24. <20>ΰ¨ ν⮬
­®¬¥à ᨣ­ «  ᮮ⢥âáâ¢ã¥â ­®¬¥à㠨᪫î祭¨ï. ­®¬¥à ᨣ­ «  ᮮ⢥âáâ¢ã¥â ­®¬¥à㠨᪫î祭¨ï.
====================================================================== ======================================================================
@ -4204,6 +4088,10 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* '/hd0/2/menuet/pics/tanzania.bmp',0 * '/hd0/2/menuet/pics/tanzania.bmp',0
* '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0 * '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
* '/sys/MySuperApp.ini',0 * '/sys/MySuperApp.ini',0
 <EFBFBD>¦¥ δγ­<CEB3>ζ¨ο ―®¤¤¥ΰ¦¨Ά ¥β ®β­®α¨β¥«μ­λ¥ ¨¬¥­ . …᫨ ―γβμ ­ η¨­ ¥βαο
­¥ α '/', β® ®­ αη¨β ¥βαο ®β­®α¨β¥«μ­® β¥<CEB2>γ饩 ― <C2A0>¨. <20>®«γη¨βμ ¨«¨
γαβ ­®Ά¨βμ β¥<CEB2>γιγξ ― <C2A0>γ ¬®¦­® α ―®¬®ιμξ α¨αδγ­<CEB3>樨 30.
„®áâã¯­ë¥ ¯®¤ä㭪樨: „®áâã¯­ë¥ ¯®¤ä㭪樨:
* ¯®¤äã­ªæ¨ï 0 - ç⥭¨¥ ä ©«  * ¯®¤äã­ªæ¨ï 0 - ç⥭¨¥ ä ©« 
* ¯®¤äã­ªæ¨ï 1 - ç⥭¨¥ ¯ ¯ª¨ * ¯®¤äã­ªæ¨ï 1 - ç⥭¨¥ ¯ ¯ª¨

View File

@ -1,4 +1,4 @@
SYSTEM FUNCTIONS of OS Kolibri 0.7.5.0 SYSTEM FUNCTIONS of OS Kolibri 0.7.7.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.
@ -376,8 +376,8 @@ Remarks:
and idle time in waiting for interrupt (which can be got by call and idle time in waiting for interrupt (which can be got by call
to subfunction 4 of function 18). to subfunction 4 of function 18).
* Beginning from slot 2, the normal applications are placed. * Beginning from slot 2, the normal applications are placed.
* Applications are placed in memory at the address 0x0 * The normal applications are placed in memory at the address
(kernel constant 'std_application_base_address'). 0 (kernel constant 'std_application_base_address').
There is no intersection, as each process has its own page table. There is no intersection, as each process has its own page table.
* At creation of the thread it is assigned the slot * At creation of the thread it is assigned the slot
in the system table and identifier (Process/Thread IDentifier = in the system table and identifier (Process/Thread IDentifier =
@ -846,10 +846,10 @@ 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
dd REV - kernel SVN revision number dd REV - kernel SVN revision number
For Kolibri 0.7.1.0 kernel: For Kolibri 0.7.7.0 kernel:
db 0,7,0,0 db 0,7,7,0
db 2 db 2
dd 638 dd 1319
====================================================================== ======================================================================
======= Function 18, subfunction 14 - wait for screen retrace. ======= ======= Function 18, subfunction 14 - wait for screen retrace. =======
@ -1658,56 +1658,9 @@ Returned value:
Remarks: Remarks:
* If the buffer is too small to hold all data, only first (edx-1) * If the buffer is too small to hold all data, only first (edx-1)
bytes are copied and than terminating 0 is inserted. bytes are copied and than terminating 0 is inserted.
* By default, current folder for the thread is "/rd/1".
====================================================================== * At process/thread creation the current folder will be inherited
=============== Function 32 - delete file from ramdisk. ============== from the parent.
======================================================================
Parameters:
* eax = 32 - function number
* ebx = pointer to the filename
Returned value:
* eax = 0 - success; otherwise file system error code
Remarks:
* This function is obsolete; function 58 allows to fulfill
the same operations with the extended possibilities.
* The current implementation returns only values 0(success) and
5(file not found).
* The filename must be either in the format 8+3 characters
(first 8 characters - name itself, last 3 - extension,
the short names and extensions are supplemented with spaces),
or in the format 8.3 characters "FILE.EXT"/"FILE.EX "
(name no more than 8 characters, dot, extension 3 characters
supplemented if necessary by spaces).
The filename must be written with capital letters. The terminating
character with code 0 is not necessary (not ASCIIZ-string).
* This function does not support folders on the ramdisk.
======================================================================
================ Function 33 - write file to ramdisk. ================
======================================================================
Parameters:
* eax = 33 - function number
* ebx = pointer to the filename
* ecx = pointer to data for writing
* edx = number of bytes for writing
* should be set esi=0
Returned value:
* eax = 0 - success, otherwise file system error code
Remarks:
* This function is obsolete; function 70 allows to fulfil
the same operations with extended possibilities.
* If esi contains non-zero value and selected file already exists,
one more file with the same name will be created.
* Otherwise file will be overwritten.
* The filename must be either in the format 8+3 characters
(first 8 characters - name itself, last 3 - extension,
the short names and extensions are supplemented with spaces),
or in the format 8.3 characters "FILE.EXT"/"FILE.EX "
(name no more than 8 characters, dot, extension 3 characters
supplemented if necessary by spaces).
The filename must be written with capital letters. The terminating
character with code 0 is not necessary (not ASCIIZ-string).
* This function does not support folders on the ramdisk.
====================================================================== ======================================================================
======= Function 35 - read the color of a pixel on the screen. ======= ======= Function 35 - read the color of a pixel on the screen. =======
@ -3260,59 +3213,6 @@ Remarks:
Ralf Brown; registers of the second type must be listed Ralf Brown; registers of the second type must be listed
in the device documentation. in the device documentation.
======================================================================
===================== Function 62, subfunction 11 ====================
== Initialize user-accessible MMIO channel ==
======================================================================
Parameters:
* eax = 62 - function
* bl = 11 - subfunction
* cx = PCI-address (bbbbbbbb dddddfff)
Returns:
* eax = -1 - PCI access not granted;
* eax = -2 - no user MMIO access to this PCI address;
* eax = -3 - memory allocation error; otherwise
* eax = available user heap size.
Remarks:
* Low-level PCI access must be allowed (fn21:12)
* PCI-address should correspond the system var [mmio_pci_addr]
======================================================================
===================== Function 62, subfunction 12 ====================
== Request user-accessible MMIO address space ==
======================================================================
Parameters:
* eax = 62 - function
* bl = 12 - subfunction
* bh = BAR number in PCI configuration space
* ecx = MMIO-block size needed (bytes)
* edx = MMIO-offset (number of whole 4Kb-pages!)
Returns:
* eax = -1 - user PCI access denied;
* eax = -2 - invalid BAR number;
* eax = -3 - BAR contains no valid IO addres;
* eax = -4 - BAR addresses IO ports;
* eax = -5 - dynamic allocation error; otherwise
* eax = MMIO start address (in application's linear space).
Remarks:
* Low-level PCI access must be allowed (fn21:12)
* The system var [mmio_pci_addr] sets the actual PCI-address
* The granted MMIO addresses should be released after use (fn62:13)
======================================================================
===================== Function 62, subfunction 13 ====================
== Release a block of user MMIO addresses ==
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 62 - function
* bl = 12 - subfunction
* ecx = MMIO start address (in application's linear space).
Returns:
* eax = 1 if the block is successfully released;
* eax = 0 in case of reallocation error;
Remarks:
* A valid uMMIO block should exist at this address (fn62:12)
====================================================================== ======================================================================
============== Function 63 - work with the debug board. ============== ============== Function 63 - work with the debug board. ==============
====================================================================== ======================================================================
@ -3421,7 +3321,6 @@ Remarks:
====================================================================== ======================================================================
The input mode influences results of reading keys by function 2. The input mode influences results of reading keys by function 2.
When a program loads, ASCII input mode is set for it. When a program loads, ASCII input mode is set for it.
If subfunction is not support then eax=-1.
-------------- Subfunction 1 - set keyboard input mode. -------------- -------------- Subfunction 1 - set keyboard input mode. --------------
Parameters: Parameters:
@ -3670,7 +3569,7 @@ Remarks:
====================================================================== ======================================================================
===================== Function 68, subfunction 14 ==================== ===================== Function 68, subfunction 14 ====================
====== Waiting delivering of signal from another program/driver ====== ============ Wait for signal from another program/driver. ============
====================================================================== ======================================================================
Parameters: Parameters:
* eax = 68 - function number * eax = 68 - function number
@ -3678,15 +3577,9 @@ Parameters:
* ecx = pointer to the buffer for information (24 bytes) * ecx = pointer to the buffer for information (24 bytes)
Returned value: Returned value:
* buffer pointed to by ecx contains the following information: * buffer pointed to by ecx contains the following information:
* +0: dword: identifier for underlying data of signal * +0: dword: identifier for following data of signal
* +4: data of signal (20 bytes), format of which is defining by * +4: dword: data of signal (20 bytes), format of which is defined
first dword by the first dword
======================================================================
====== Function 68, subfunction 15 - set FPU exception handler. ======
======================================================================
Deleted (in current implementation only 0 is returned).
Using subfunctions 24, 25 is true.
====================================================================== ======================================================================
============= Function 68, subfunction 16 - load driver. ============= ============= Function 68, subfunction 16 - load driver. =============
@ -3720,22 +3613,12 @@ Parameters:
* +16 = +0x10: dword: pointer to output data * +16 = +0x10: dword: pointer to output data
* +20 = +0x14: dword: size of output data * +20 = +0x14: dword: size of output data
Returned value: Returned value:
* eax = error code * eax = determined by driver
0 - successful call
-1 - any error.
-2, -3, -4, etc. reserved for kernel error codes
1, 2, 3, etc driver specific error codes
Remarks: Remarks:
* Function codes and the structure of input/output data * Function codes and the structure of input/output data
are defined by driver. are defined by driver.
* Previously one must obtain driver handle by subfunction 16. * Previously one must obtain driver handle by subfunction 16.
======================================================================
====== Function 68, subfunction 18 - set SSE exception handler. ======
======================================================================
Deleted (in current implementation only 0 is returned).
Using subfunctions 24, 25 is true.
====================================================================== ======================================================================
=============== Function 68, subfunction 19 - load DLL. ============== =============== Function 68, subfunction 19 - load DLL. ==============
====================================================================== ======================================================================
@ -3775,36 +3658,92 @@ Remarks:
the new and old sizes. the new and old sizes.
====================================================================== ======================================================================
====== Function 68, subfunction 24 - set new exceptions handler ====== ======== Function 68, subfunction 22 - open named memory area. =======
======================================================================
Parameters:
* eax = 68 - function number
* ebx = 22 - subfunction number
* ecx = area name. Maximum of 31 characters with terminating zero
* edx = area size in bytes for SHM_CREATE and SHM_OPEN_ALWAYS
* esi = flags for open and access:
* SHM_OPEN = 0x00 - open existing memory area. If an area
with such name does not exist, the function
will return error code 5.
* SHM_OPEN_ALWAYS = 0x04 - open existing or create new
memory area.
* SHM_CREATE = 0x08 - create new memory area. If an area
with such name already exists, the function
will return error code 10.
* SHM_READ = 0x00 - only read access
* SHM_WRITE = 0x01 - read and write access
Returned value:
* eax = pointer to memory area, 0 if error has occured
* if new area is created (SHM_CREATE or SHM_OPEN_ALWAYS):
edx = 0 - success, otherwise - error code
* if existing area is opened (SHM_OPEN or SHM_OPEN_ALWAYS):
edx = error code (if eax=0) or area size in bytes
Error codes:
* E_NOTFOUND = 5
* E_ACCESS = 10
* E_NOMEM = 30
* E_PARAM = 33
Remarks:
* Before this call one must initialize process heap by call to
subfunction 11.
* If a new area is created, access flags set maximal rights
for other processes. An attempt from other process to open
with denied rights will fail with error code E_ACCESS.
* The process which has created an area always has write access.
======================================================================
======= Function 68, subfunction 23 - close named memory area. =======
======================================================================
Parameters:
* eax = 68 - function number
* ebx = 23 - subfunction number
* ecx = area name. Maximum of 31 characters with terminating zero
Returned value:
* eax destroyed
Remarks:
* A memory area is physically freed (with deleting all data and
freeing physical memory), when all threads which have opened
this area will close it.
* When thread is terminating, all opened by it areas are closed.
======================================================================
======== Function 68, subfunction 24 - set exception handler. ========
====================================================================== ======================================================================
Parameters: Parameters:
* eax = 68 - function number * eax = 68 - function number
* ebx = 24 - subfunction number * ebx = 24 - subfunction number
* ecx = address of the new exception handler * ecx = address of the new exception handler
* edx = the mask of processing exceptions * edx = the mask of handled exceptions
Returned value: Returned value:
* eax = address of the old exception handler (0, if it was not set) * eax = address of the old exception handler (0, if it was not set)
* ebx = the old mask of exception handler * ebx = the old mask of handled exceptions
Remarks: Remarks:
* Bit number in mask of exceptions is correspond to exception number * Bit number in mask of exceptions corresponds to exception number
by CPU-specification (Intel-PC). For example, FPU-exception have in CPU-specification (Intel-PC). For example, FPU exceptions have
number 16 (#MF), and SSE-exception - 19 (#XF) number 16 (#MF), and SSE exceptions - 19 (#XF).
* The current implementation ignore the inquiry for hook of 7 * The current implementation ignores the inquiry for hook of 7
exception - system process #NM by one's own. exception - the system handles #NM by its own.
* User handler get exception number in stack parameter. So, correct * The exception handler is called with exception number as first
exit from handler is: RET 4. Return from handler is to the same (and only) stack parameter. So, correct exit from the handler is
instruction, that was cause the exception RET 4. It returns to the instruction, that caused the exception,
* When control is transfering to user handler, corresponding bit in for faults, and to the next instruction for traps (see
exception mask is clearing. Rising this exception in consequence classification of exceptions in CPU specification).
- reduce to default-handling. Exactly: terminating the application, * When user handler receives control, the corresponding bit in
or suspending with debug-notify to owner. the exception mask is cleared. Raising this exception
* After completion of critical operations in user handler, it may be in consequence leads to default handling, that is,
rising corresponding bit in exception mask by using subfunction 25 terminating the application in absence of debugger or
Clearing exceptions flags in FPU and/or XMM modules - is suspend with notification of debugger otherwise.
responsibility of user handler too. * After user handler completes critical operations, it can set
the corresponding bit in the exception mask with subfunction 25.
Also user handler is responsible for clearing exceptions flags in
FPU and/or SSE.
====================================================================== ======================================================================
==== Function 68, subfunction 25 - change state of signal activity === ====== Function 68, subfunction 25 - set FPU exception handler. ======
====================================================================== ======================================================================
Parameters: Parameters:
* eax = 68 - function number * eax = 68 - function number
@ -3812,14 +3751,15 @@ Parameters:
* ecx = signal number * ecx = signal number
* edx = value of activity (0/1) * edx = value of activity (0/1)
Returned value: Returned value:
* eax = value of old activity for this signal (0/1) * eax = -1 - invalid signal number
* otherwise eax = old value of activity for this signal (0/1)
Remarks: Remarks:
* In current implementation, it is changed only exception mask for * In current implementation only mask for user excepton handler,
user exception handler, wich was previously set by subfunction 24. which has been previously set by subfunction 24,
At that, number of signal correspond to exception number. is changed. Signal number corresponds to exception number.
====================================================================== ======================================================================
====================== Fucntion 69 - debugging. ====================== ====================== Function 69 - debugging. ======================
====================================================================== ======================================================================
A process can load other process as debugged by set of corresponding A process can load other process as debugged by set of corresponding
bit by call to subfunction 7 of function 70. bit by call to subfunction 7 of function 70.
@ -4111,6 +4051,10 @@ Examples:
* '/hd0/2/menuet/pics/tanzania.bmp',0 * '/hd0/2/menuet/pics/tanzania.bmp',0
* '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0 * '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
* '/sys/MySuperApp.ini',0 * '/sys/MySuperApp.ini',0
Also function supports relative names. If the path begins not
with '/', it is considered relative to a current folder. To get or
set a current folder, use the function 30.
Available subfunctions: Available subfunctions:
* subfunction 0 - read file * subfunction 0 - read file
* subfunction 1 - read folder * subfunction 1 - read folder