forked from KolibriOS/kolibrios
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:
parent
ca82f03c33
commit
9f7b730b3b
@ -1,4 +1,4 @@
|
||||
‘ˆ‘’…Œ<EFBFBD>›… ”“<E2809D>Š–ˆˆ Ž<>…<EFBFBD>€–ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.7.5.0+
|
||||
‘ˆ‘’…Œ<EFBFBD>›… ”“<E2809D>Š–ˆˆ Ž<>…<EFBFBD>€–ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.7.7.0
|
||||
|
||||
<EFBFBD>®¬¥à äãªæ¨¨ ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
|
||||
‚맮¢ á¨á⥬®© äãªæ¨¨ ®áãé¥á⢫ï¥âáï ª®¬ ¤®© "int 0x40".
|
||||
@ -383,7 +383,7 @@
|
||||
ᮡá⢥® à ¡®âã, ¨ ¢à¥¬¥¨ ¯à®áâ®ï ¢ ®¦¨¤ ¨¨ ¯à¥àë¢ ¨ï
|
||||
(ª®â®à®¥ ¬®¦® ¯®«ãç¨âì ¢ë§®¢®¬ ¯®¤äãªæ¨¨ 4 äãªæ¨¨ 18).
|
||||
* <20> ç¨ ï á® á«®â 2, à §¬¥é îâáï ®¡ëçë¥ ¯à¨«®¦¥¨ï.
|
||||
* Ž¡ëçë¥ ¯à¨«®¦¥¨ï à §¬¥é îâáï ¢ ¯ ¬ï⨠¯® ¤à¥áã 0x0
|
||||
* Ž¡ëçë¥ ¯à¨«®¦¥¨ï à §¬¥é îâáï ¢ ¯ ¬ï⨠¯® ¤à¥áã 0
|
||||
(ª®áâ â ï¤à std_application_base_address).
|
||||
<20> «®¦¥¨ï ¥ ¯à®¨á室¨â, ¯®áª®«ìªã ã ª ¦¤®£® ¯à®æ¥áá ᢮ï
|
||||
â ¡«¨æ áâà ¨æ.
|
||||
@ -849,10 +849,10 @@
|
||||
db a,b,c,d ¤«ï ¢¥àᨨ a.b.c.d
|
||||
db UID_xxx: ®¤® ¨§ UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
|
||||
dd REV - ®¬¥à svn-ॢ¨§¨¨ ï¤à
|
||||
„«ï ï¤à Kolibri 0.7.1.0:
|
||||
db 0,7,1,0
|
||||
„«ï ï¤à Kolibri 0.7.7.0:
|
||||
db 0,7,7,0
|
||||
db 2
|
||||
dd 638
|
||||
dd 1319
|
||||
|
||||
======================================================================
|
||||
====================== ”ãªæ¨ï 18, ¯®¤äãªæ¨ï 14 =====================
|
||||
@ -1677,62 +1677,14 @@ dd 638
|
||||
* ecx = 㪠§ â¥«ì ¡ãä¥à
|
||||
* edx = à §¬¥à ¡ãä¥à
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = - 1 ®é¨¡ª , ¯ ¯ª ⥪ã饣® ¯®â®ª ¨¬¥¥â ¤«¨ã ¡®«¥¥ 祬 4096 ᨬ¢®«®¢.
|
||||
* eax = ¤«¨ ¨¬¥¨ ⥪ã饩 ¯ ¯ª¨ (¢ª«îç ï § ¢¥àè î騩 0)
|
||||
‡ ¬¥ç ¨ï:
|
||||
* …᫨ à §¬¥à ¡ãä¥à ¥¤®áâ â®ç® ¤«ï ª®¯¨à®¢ ¨ï ¢á¥£® ¨¬¥¨,
|
||||
ª®¯¨àãîâáï ⮫쪮 ¯¥à¢ë¥ (edx-1) ¡ ©â
|
||||
¨ ¢ ª®æ¥ áâ ¢¨âáï § ¢¥àè î騩 0.
|
||||
|
||||
======================================================================
|
||||
================ ”ãªæ¨ï 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>â äãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥â ¯ ¯®ª à ¬¤¨áª¥.
|
||||
ª®¯¨àãîâáï ⮫쪮 ¯¥à¢ë¥ (edx-1) ¡ ©â ¨ ¢ ª®æ¥ áâ ¢¨âáï
|
||||
§ ¢¥àè î騩 0.
|
||||
* <20>® 㬮«ç ¨î, ⥪ãé ï ¯ ¯ª ¤«ï ¯®â®ª - "/rd/1".
|
||||
* <20>ਠᮧ¤ ¨¨ ¯à®æ¥áá /¯®â®ª ⥪ãé ï ¯ ¯ª á«¥¤ã¥âáï ®â
|
||||
த¨â¥«ï.
|
||||
|
||||
======================================================================
|
||||
============ ”ãªæ¨ï 35 - ¯à®ç¨â âì 梥â â®çª¨ íªà ¥. ============
|
||||
@ -1858,7 +1810,7 @@ dd 638
|
||||
------------------ <20>®¤äãªæ¨ï 7 - ¤ ë¥ ¯à®ªàã⪨ -------------------
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 37 - ®¬¥à äãªæ¨¨
|
||||
* ebx = 6 - ®¬¥à ¯®¤äãªæ¨¨
|
||||
* ebx = 7 - ®¬¥à ¯®¤äãªæ¨¨
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = [horizontal offset]*65536 + [vertical offset]
|
||||
‡ ¬¥ç ¨ï:
|
||||
@ -2219,11 +2171,11 @@ dword-
|
||||
‡ ¬¥ç ¨ï:
|
||||
* ‘âàãªâãà â ¡«¨æë 梥⮢ ®¯¨á ¢ áâ ¤ à⮬ ¢ª«îç ¥¬®¬ ä ©«¥
|
||||
macros.inc ¯®¤ §¢ ¨¥¬ system_colors; ¯à¨¬¥à, ¬®¦® ¯¨á âì:
|
||||
sc system_colors ; ®¡ê¥¨¥ ¯¥à¥¬¥®©
|
||||
... ; £¤¥-â® ¤® ¢ë§¢ âì
|
||||
; ®¯¨áë¢ ¥¬ãî äãªæ¨î á ecx=sc
|
||||
mov ecx, [sc.work_button_text] ; ç¨â ¥¬ 梥â ⥪áâ
|
||||
; ª®¯ª¥ ¢ à ¡®ç¥© ®¡« áâ¨
|
||||
sc system_colors ; ®¡ê¥¨¥ ¯¥à¥¬¥®©
|
||||
... ; £¤¥-â® ¤® ¢ë§¢ âì
|
||||
; ®¯¨áë¢ ¥¬ãî äãªæ¨î á ecx=sc
|
||||
mov ecx, [sc.work_button_text] ; ç¨â ¥¬ 梥â ⥪áâ
|
||||
; ª®¯ª¥ ¢ à ¡®ç¥© ®¡« áâ¨
|
||||
* ˆá¯®«ì§®¢ ¨¥/¥¨á¯®«ì§®¢ ¨¥ íâ¨å 梥⮢ - ¤¥«® ¨áª«îç¨â¥«ì®
|
||||
á ¬®© ¯à®£à ¬¬ë. „«ï ¨á¯®«ì§®¢ ¨ï 㦮 ¯à®áâ® ¯à¨ ¢ë§®¢¥ äãªæ¨©
|
||||
à¨á®¢ ¨ï 㪠§ë¢ âì 梥â, ¢§ïâë© ¨§ í⮩ â ¡«¨æë.
|
||||
@ -3125,10 +3077,10 @@ IPC
|
||||
<EFBFBD>à®£à ¬¬¥ ¤®áâã¯ë ¤ ë¥ £à ä¨ç¥áª®£® íªà (®¡« áâì ¯ ¬ïâ¨, ª®â®à ï
|
||||
ᮡá⢥® ¨ ®â®¡à ¦ ¥â ᮤ¥à¦¨¬®¥ íªà ) ¯àï¬ãî ¡¥§ ¢ë§®¢®¢
|
||||
á¨á⥬ëå äãªæ¨© ç¥à¥§ ᥫ¥ªâ®à gs:
|
||||
mov eax, [gs:0]
|
||||
mov eax, [gs:0]
|
||||
¯®¬¥áâ¨â ¢ eax ¯¥à¢ë© dword ¡ãä¥à , ᮤ¥à¦ 騩 ¨ä®à¬ æ¨î ® 梥â¥
|
||||
«¥¢®© ¢¥à奩 â®çª¨ (¨, ¢®§¬®¦®, 梥⠥᪮«ìª¨å á«¥¤ãîé¨å).
|
||||
mov [gs:0], eax
|
||||
mov [gs:0], eax
|
||||
¯à¨ à ¡®â¥ ¢ ०¨¬ å VESA c LFB
|
||||
ãáâ ®¢¨â 梥⠫¥¢®© ¢¥à奩 â®çª¨
|
||||
(¨ ¢®§¬®¦®, 梥⠥᪮«ìª¨å á«¥¤ãîé¨å).
|
||||
@ -3289,63 +3241,6 @@ IPC
|
||||
¢å®¤¨â, ¯à¨¬¥à, ¢ ¨§¢¥áâë© 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 - à ¡®â á ¤®áª®© ®â« ¤ª¨. ===============
|
||||
======================================================================
|
||||
@ -3459,7 +3354,6 @@ IPC
|
||||
======================================================================
|
||||
<EFBFBD>¥¦¨¬ ¢¢®¤ ¢«¨ï¥â १ã«ìâ âë çâ¥¨ï ª« ¢¨è äãªæ¨¥© 2.
|
||||
<EFBFBD>ਠ§ £à㧪¥ ¯à®£à ¬¬ë ¤«ï ¥ñ ãáâ ¢«¨¢ ¥âáï ASCII-०¨¬ ¢¢®¤ .
|
||||
…᫨ ¢ë§ë¢ ¥âáï ¥áãé¥áâ¢ãîé ï ¯®¤äãªæ¨ï ¢®§¢à é ¥âáï ¢ eax=-1.
|
||||
|
||||
-------- <20>®¤äãªæ¨ï 1 - ãáâ ®¢¨âì ०¨¬ ¢¢®¤ á ª« ¢¨ âãàë. ---------
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
@ -3702,25 +3596,20 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
¨«¨ ¯®¤äãªæ¨¥© 20.
|
||||
|
||||
======================================================================
|
||||
==================== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 14 =======================
|
||||
===== Ž¦¨¤ âì ¯®«ã票ï ᨣ « , ®â ¤àã£¨å ¯à¨«®¦¥¨©/¤à ©¢¥à®¢. =====
|
||||
====================== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 14 =====================
|
||||
====== Ž¦¨¤ âì ¯®«ã票ï ᨣ « ®â ¤àã£¨å ¯à¨«®¦¥¨©/¤à ©¢¥à®¢. =====
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 68 - ®¬¥à äãªæ¨¨
|
||||
* ebx = 14 - ®¬¥à ¯®¤äãªæ¨¨
|
||||
* ecx = 㪠§ â¥«ì ¡ãä¥à ¤«ï ¨ä®à¬ 樨 (24 ¡ ©â )
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax à §àãè ¥âáï
|
||||
* ¡ãä¥à, ª®â®àë© ãª §ë¢ ¥â ecx, ᮤ¥à¦¨â á«¥¤ãîéãî ¨ä®à¬ æ¨î:
|
||||
* +0: dword: ¨¤¥â¨ä¨ª â®à ¯®á«¥¤ãîé¨å ¤ ëå ᨣ «
|
||||
* +4: ¤ ë¥ ¯à¨ï⮣® ᨣ « (20 ¡ ©â), ä®à¬ â ª®â®àëå
|
||||
®¯à¥¤¥«ï¥âáï ¯¥à¢ë¬ dword-®¬
|
||||
|
||||
======================================================================
|
||||
== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 15 - ãáâ ®¢¨âì ®¡à ¡®â稪 ¨áª«î票© FPU. =
|
||||
======================================================================
|
||||
“¤ «¥ (¢ ⥪ã饩 ॠ«¨§ 樨 ¯à®áâ® ¢®§¢à é ¥â 0)
|
||||
ˆá¯®«ì§®¢ âì ¯®¤äãªæ¨¨ 24, 25
|
||||
|
||||
======================================================================
|
||||
=========== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 16 - § £à㧨âì ¤à ©¢¥à. ===========
|
||||
======================================================================
|
||||
@ -3759,12 +3648,6 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
®¯à¥¤¥«ïîâáï ¤à ©¢¥à®¬.
|
||||
* <20>।¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¯®«ãç¥ åí¤« ¤à ©¢¥à ¯®¤äãªæ¨¥© 16.
|
||||
|
||||
======================================================================
|
||||
== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 18 - ãáâ ®¢¨âì ®¡à ¡®â稪 ¨áª«î票© SSE. =
|
||||
======================================================================
|
||||
“¤ «¥ (¢ ⥪ã饩 ॠ«¨§ 樨 ¯à®áâ® ¢®§¢à é ¥â 0)
|
||||
ˆá¯®«ì§®¢ âì ¯®¤äãªæ¨¨ 24, 25
|
||||
|
||||
======================================================================
|
||||
============= ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 19 - § £à㧨âì DLL. =============
|
||||
======================================================================
|
||||
@ -3860,7 +3743,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
®¡« á⨠¯ ¬ïâ¨.
|
||||
|
||||
======================================================================
|
||||
==== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 24 - ãáâ ®¢¨âì ®¡à ¡®â稪 ¨áª«î票© ===
|
||||
==== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 24 - ãáâ ®¢¨âì ®¡à ¡®â稪 ¨áª«î票©. ===
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 68 - ®¬¥à äãªæ¨¨
|
||||
@ -3871,26 +3754,26 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* eax = ¤à¥á áâ ண® ®¡à ¡®â稪 ¨áª«î票© (0, ¥á«¨ ¥ ãáâ ®¢«¥)
|
||||
* ebx = ¬ ᪠áâ ண® ®¡à ¡®â稪 ¨áª«î票©
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>®¬¥à ¡¨â ¢ ¬ ᪥ ¨áª«î票© ᮮ⢥âáâ¢ãîâ ®¬¥à㠨᪫îç¥¨ï ¯®
|
||||
ᯥæ¨ä¨ª 樨 ¯à®æ¥áá®à (Intel-PC). ’ ª ¯à¨¬¥à, ¨áª«î票ï FPU
|
||||
¨¬¥îâ ®¬¥à 16 (#MF), SSE - 19 (#XF).
|
||||
* <20>®¬¥à ¡¨â ¢ ¬ ᪥ ¨áª«î票© ᮮ⢥âáâ¢ã¥â ®¬¥à㠨᪫îç¥¨ï ¯®
|
||||
ᯥæ¨ä¨ª 樨 ¯à®æ¥áá®à (Intel-PC). ’ ª, ¯à¨¬¥à, ¨áª«î票ï
|
||||
FPU ¨¬¥îâ ®¬¥à 16 (#MF), SSE - 19 (#XF).
|
||||
* ‚ ¤ ®© ॠ«¨§ 樨 ¨£®à¨àã¥âáï § ¯à®á ¯¥à¥å¢ ⠨᪫î票ï 7
|
||||
- á¨á⥬ ®¡à ¡ âë¢ ¥â #NM á ¬®áâ®ï⥫ì®.
|
||||
* <20>®«ì§®¢ ⥫ì᪨© ®¡à ¡®â稪 ¯®«ãç ¥â ®¬¥à ¨áª«îç¥¨ï ¯ à ¬¥â஬
|
||||
¢ á⥪¥. <20>®íâ®¬ã ¯à ¢¨«ìë© ¢ë室 ¨§ ®¡à ¡®â稪 : RET 4. ‚®§¢à â
|
||||
¯à¨ í⮬ ¯à®¨§¢®¤¨âáï ª®¬ ¤ã, ¢ë§¢ ¢èãî ¨áª«î票¥.
|
||||
* <20>ਠ¯¥à¥¤ ç¥ ã¯à ¢«¥¨ï ®¡à ¡®â稪㠨᪫î票©, á¡à áë¢ ¥âáï
|
||||
* <20>ਠ¯¥à¥¤ ç¥ ã¯à ¢«¥¨ï ®¡à ¡®â稪㠨᪫î票© á¡à áë¢ ¥âáï
|
||||
ᮮ⢥âáâ¢ãî騩 ¡¨â ¢ ¬ ᪥ ¨áª«î票©. ‚®§¨ª®¢¥¨¥ í⮣® ¦¥
|
||||
¨áª«îç¥¨ï ¢ ¯®á«¥¤á⢨¨ - ¯à¨¢¥¤¥â ª default-®¡à ¡®âª¥ â ª®¢®£®.
|
||||
€ ¨¬¥®: ª § ¢¥à襨î à ¡®âë ¯à¨«®¦¥¨ï, ¨«¨ ¯à¨®áâ ®¢ª¥ á
|
||||
®â¨ä¨ª 樥© ®â« ¦¨¢ î饬㠯ਫ®¦¥¨î.
|
||||
* <20>®á«¥ § ¢¥àè¥¨ï ªà¨â¨ç¥áª¨å ¤¥©á⢨© ¢ ®¡à ¡®â稪¥ ¯®«ì§®¢ ⥫ï,
|
||||
¨áª«îç¥¨ï ¢¯®á«¥¤á⢨¨ ¯à¨¢¥¤ñâ ª 㬮«ç «ì®© ®¡à ¡®âª¥ â ª®¢®£®.
|
||||
€ ¨¬¥®: ª § ¢¥à襨î à ¡®âë ¯à¨«®¦¥¨ï ¢ ®âáãâá⢨¨ ®â« ¤ç¨ª ,
|
||||
¯à¨®áâ ®¢ª á 㢥¤®¬«¥¨¥¬ ®â« ¦¨¢ î饣® ¯à¨«®¦¥¨ï ¨ ç¥.
|
||||
* <20>®á«¥ § ¢¥àè¥¨ï ªà¨â¨ç¥áª¨å ¤¥©á⢨© ¢ ®¡à ¡®â稪¥ ¯®«ì§®¢ ⥫ï
|
||||
¢®ááâ ®¢«¥¨¥ ¡¨â ¬ ᪨ ¤ ®£® ¨áª«îç¥¨ï ¬®¦® ᤥ« âì
|
||||
¯®¤äãªæ¨¥© 25. ‘¡à®á ä« £®¢ ¨áª«î票© ¢ ¬®¤ã«ïå FPU ¨ XMM -
|
||||
â ª¦¥ ¢®§« £ ¥âáï ®¡à ¡®â稪 ¯®«ì§®¢ ⥫ï.
|
||||
¯®¤äãªæ¨¥© 25. ‘¡à®á ä« £®¢ ¨áª«î票© ¢ ¬®¤ã«ïå FPU ¨ XMM â ª¦¥
|
||||
¢®§« £ ¥âáï ®¡à ¡®â稪 ¯®«ì§®¢ ⥫ï.
|
||||
|
||||
======================================================================
|
||||
= ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 25 - ¨§¬¥¥¨¥ á®áâ®ï¨ï ªâ¨¢®á⨠ᨣ « =
|
||||
= ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 25 - ¨§¬¥¨âì á®áâ®ï¨¥ ªâ¨¢®á⨠ᨣ « . =
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 68 - ®¬¥à äãªæ¨¨
|
||||
@ -3898,10 +3781,11 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* ecx = ®¬¥à ᨣ «
|
||||
* edx = § 票¥ ãáâ ¢«¨¢ ¥¬®© ªâ¨¢®á⨠(0/1)
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = áâ ஥ § 票¥ ªâ¨¢®á⨠ᨣ « (0/1)
|
||||
* eax = -1 - § ¤ ¥¢¥àë© ®¬¥à ᨣ «
|
||||
* ¨ ç¥ eax = áâ ஥ § 票¥ ªâ¨¢®á⨠ᨣ « (0/1)
|
||||
‡ ¬¥ç ¨ï:
|
||||
* ‚ ⥪ã饩 ॠ«¨§ 樨 ¨§¬¥ï¥âáï ⮫쪮 ¬ ᪠¯®«ì§®¢ ⥫ì᪮£®
|
||||
®¡à ¡®â稪 ¨áª«î票©, ãáâ ®¢«¥®£® ¯®¤äãªæ¨¥© 24. <20>ਠí⮬,
|
||||
®¡à ¡®â稪 ¨áª«î票©, ãáâ ®¢«¥®£® ¯®¤äãªæ¨¥© 24. <20>ਠí⮬
|
||||
®¬¥à ᨣ « ᮮ⢥âáâ¢ã¥â ®¬¥à㠨᪫î票ï.
|
||||
|
||||
======================================================================
|
||||
@ -3971,7 +3855,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
¨ ¯à¨ ¯®áâ㯫¥¨¨ ®¢®£® á®®¡é¥¨ï á¨á⥬ ¡ã¤¥â ¦¤ âì.
|
||||
„«ï á¨åந§ 樨 ®¡à ¬«ï©â¥ ¢áî à ¡®âã á ¡ãä¥à®¬ ®¯¥à æ¨ï¬¨
|
||||
¡«®ª¨à®¢ª¨/à §¡«®ª¨à®¢ª¨
|
||||
neg [bufsize]
|
||||
neg [bufsize]
|
||||
* „ ë¥ ¢ ¡ãä¥à¥ âà ªâãîâáï ª ª ¬ áᨢ í«¥¬¥â®¢ ¯¥à¥¬¥®© ¤«¨ë -
|
||||
á®®¡é¥¨©. ”®à¬ â á®®¡é¥¨ï 㪠§ ¢ ®¡é¥¬ ®¯¨á ¨¨.
|
||||
|
||||
@ -4204,6 +4088,10 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* '/hd0/2/menuet/pics/tanzania.bmp',0
|
||||
* '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
|
||||
* '/sys/MySuperApp.ini',0
|
||||
’ ª¦¥ äãªæ¨ï ¯®¤¤¥à¦¨¢ ¥â ®â®á¨â¥«ìë¥ ¨¬¥ . …᫨ ¯ãâì ç¨ ¥âáï
|
||||
¥ á '/', â® ® áç¨â ¥âáï ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨. <20>®«ãç¨âì ¨«¨
|
||||
ãáâ ®¢¨âì ⥪ãéãî ¯ ¯ªã ¬®¦® á ¯®¬®éìî á¨áäãªæ¨¨ 30.
|
||||
|
||||
„®áâã¯ë¥ ¯®¤äãªæ¨¨:
|
||||
* ¯®¤äãªæ¨ï 0 - ç⥨¥ ä ©«
|
||||
* ¯®¤äãªæ¨ï 1 - ç⥨¥ ¯ ¯ª¨
|
||||
|
@ -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.
|
||||
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
|
||||
to subfunction 4 of function 18).
|
||||
* Beginning from slot 2, the normal applications are placed.
|
||||
* Applications are placed in memory at the address 0x0
|
||||
(kernel constant 'std_application_base_address').
|
||||
* The normal applications are placed in memory at the address
|
||||
0 (kernel constant 'std_application_base_address').
|
||||
There is no intersection, as each process has its own page table.
|
||||
* At creation of the thread it is assigned the slot
|
||||
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 UID_xxx: one of UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
|
||||
dd REV - kernel SVN revision number
|
||||
For Kolibri 0.7.1.0 kernel:
|
||||
db 0,7,0,0
|
||||
For Kolibri 0.7.7.0 kernel:
|
||||
db 0,7,7,0
|
||||
db 2
|
||||
dd 638
|
||||
dd 1319
|
||||
|
||||
======================================================================
|
||||
======= Function 18, subfunction 14 - wait for screen retrace. =======
|
||||
@ -1658,56 +1658,9 @@ Returned value:
|
||||
Remarks:
|
||||
* If the buffer is too small to hold all data, only first (edx-1)
|
||||
bytes are copied and than terminating 0 is inserted.
|
||||
|
||||
======================================================================
|
||||
=============== Function 32 - delete file from ramdisk. ==============
|
||||
======================================================================
|
||||
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.
|
||||
* By default, current folder for the thread is "/rd/1".
|
||||
* At process/thread creation the current folder will be inherited
|
||||
from the parent.
|
||||
|
||||
======================================================================
|
||||
======= Function 35 - read the color of a pixel on the screen. =======
|
||||
@ -2193,11 +2146,11 @@ Remarks:
|
||||
* Structure of the color table is described in the standard
|
||||
include file 'macros.inc' as 'system_colors'; for example,
|
||||
it is possible to write:
|
||||
sc system_colors ; variable declaration
|
||||
... ; somewhere one must call
|
||||
; this function with ecx=sc
|
||||
mov ecx, [sc.work_button_text] ; read text color on
|
||||
; buttin in working area
|
||||
sc system_colors ; variable declaration
|
||||
... ; somewhere one must call
|
||||
; this function with ecx=sc
|
||||
mov ecx, [sc.work_button_text] ; read text color on
|
||||
; buttin in working area
|
||||
* A program itself desides to use or not to use color table.
|
||||
For usage program must simply at calls to drawing functions select
|
||||
color taken from the table.
|
||||
@ -3098,11 +3051,11 @@ Remarks:
|
||||
The data of the graphics screen (the memory area which displays
|
||||
screen contents) are accessible to a program directly, without
|
||||
any system calls, through the selector gs:
|
||||
mov eax, [gs:0]
|
||||
mov eax, [gs:0]
|
||||
places in eax the first dword of the buffer, which contains
|
||||
information on color of the left upper point (and, possibly, colors
|
||||
of several following).
|
||||
mov [gs:0], eax
|
||||
mov [gs:0], eax
|
||||
by work in VESA modes with LFB sets color of the left upper point
|
||||
(and, possibly, colors of several following).
|
||||
To interpret the data of graphics screen program needs to know
|
||||
@ -3260,59 +3213,6 @@ Remarks:
|
||||
Ralf Brown; registers of the second type must be listed
|
||||
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. ==============
|
||||
======================================================================
|
||||
@ -3421,7 +3321,6 @@ Remarks:
|
||||
======================================================================
|
||||
The input mode influences results of reading keys by function 2.
|
||||
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. --------------
|
||||
Parameters:
|
||||
@ -3670,7 +3569,7 @@ Remarks:
|
||||
|
||||
======================================================================
|
||||
===================== Function 68, subfunction 14 ====================
|
||||
====== Waiting delivering of signal from another program/driver ======
|
||||
============ Wait for signal from another program/driver. ============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
@ -3678,15 +3577,9 @@ Parameters:
|
||||
* ecx = pointer to the buffer for information (24 bytes)
|
||||
Returned value:
|
||||
* buffer pointed to by ecx contains the following information:
|
||||
* +0: dword: identifier for underlying data of signal
|
||||
* +4: data of signal (20 bytes), format of which is defining by
|
||||
first dword
|
||||
|
||||
======================================================================
|
||||
====== Function 68, subfunction 15 - set FPU exception handler. ======
|
||||
======================================================================
|
||||
Deleted (in current implementation only 0 is returned).
|
||||
Using subfunctions 24, 25 is true.
|
||||
* +0: dword: identifier for following data of signal
|
||||
* +4: dword: data of signal (20 bytes), format of which is defined
|
||||
by the first dword
|
||||
|
||||
======================================================================
|
||||
============= Function 68, subfunction 16 - load driver. =============
|
||||
@ -3720,22 +3613,12 @@ Parameters:
|
||||
* +16 = +0x10: dword: pointer to output data
|
||||
* +20 = +0x14: dword: size of output data
|
||||
Returned value:
|
||||
* eax = error code
|
||||
0 - successful call
|
||||
-1 - any error.
|
||||
-2, -3, -4, etc. reserved for kernel error codes
|
||||
1, 2, 3, etc driver specific error codes
|
||||
* eax = determined by driver
|
||||
Remarks:
|
||||
* Function codes and the structure of input/output data
|
||||
are defined by driver.
|
||||
* 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. ==============
|
||||
======================================================================
|
||||
@ -3775,36 +3658,92 @@ Remarks:
|
||||
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:
|
||||
* eax = 68 - function number
|
||||
* ebx = 24 - subfunction number
|
||||
* ecx = address of the new exception handler
|
||||
* edx = the mask of processing exceptions
|
||||
* edx = the mask of handled exceptions
|
||||
Returned value:
|
||||
* 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:
|
||||
* Bit number in mask of exceptions is correspond to exception number
|
||||
by CPU-specification (Intel-PC). For example, FPU-exception have
|
||||
number 16 (#MF), and SSE-exception - 19 (#XF)
|
||||
* The current implementation ignore the inquiry for hook of 7
|
||||
exception - system process #NM by one's own.
|
||||
* User handler get exception number in stack parameter. So, correct
|
||||
exit from handler is: RET 4. Return from handler is to the same
|
||||
instruction, that was cause the exception
|
||||
* When control is transfering to user handler, corresponding bit in
|
||||
exception mask is clearing. Rising this exception in consequence
|
||||
- reduce to default-handling. Exactly: terminating the application,
|
||||
or suspending with debug-notify to owner.
|
||||
* After completion of critical operations in user handler, it may be
|
||||
rising corresponding bit in exception mask by using subfunction 25
|
||||
Clearing exceptions flags in FPU and/or XMM modules - is
|
||||
responsibility of user handler too.
|
||||
* Bit number in mask of exceptions corresponds to exception number
|
||||
in CPU-specification (Intel-PC). For example, FPU exceptions have
|
||||
number 16 (#MF), and SSE exceptions - 19 (#XF).
|
||||
* The current implementation ignores the inquiry for hook of 7
|
||||
exception - the system handles #NM by its own.
|
||||
* The exception handler is called with exception number as first
|
||||
(and only) stack parameter. So, correct exit from the handler is
|
||||
RET 4. It returns to the instruction, that caused the exception,
|
||||
for faults, and to the next instruction for traps (see
|
||||
classification of exceptions in CPU specification).
|
||||
* When user handler receives control, the corresponding bit in
|
||||
the exception mask is cleared. Raising this exception
|
||||
in consequence leads to default handling, that is,
|
||||
terminating the application in absence of debugger or
|
||||
suspend with notification of debugger otherwise.
|
||||
* 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:
|
||||
* eax = 68 - function number
|
||||
@ -3812,14 +3751,15 @@ Parameters:
|
||||
* ecx = signal number
|
||||
* edx = value of activity (0/1)
|
||||
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:
|
||||
* In current implementation, it is changed only exception mask for
|
||||
user exception handler, wich was previously set by subfunction 24.
|
||||
At that, number of signal correspond to exception number.
|
||||
* In current implementation only mask for user excepton handler,
|
||||
which has been previously set by subfunction 24,
|
||||
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
|
||||
bit by call to subfunction 7 of function 70.
|
||||
@ -3882,7 +3822,7 @@ Remarks:
|
||||
and at arrival of new message the system will wait.
|
||||
For synchronization frame all work with the buffer by operations
|
||||
lock/unlock
|
||||
neg [bufsize]
|
||||
neg [bufsize]
|
||||
* Data in the buffer are considered as array of items with variable
|
||||
length - messages. Format of a message is explained in
|
||||
general description.
|
||||
@ -4111,6 +4051,10 @@ Examples:
|
||||
* '/hd0/2/menuet/pics/tanzania.bmp',0
|
||||
* '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',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:
|
||||
* subfunction 0 - read file
|
||||
* subfunction 1 - read folder
|
||||
|
Loading…
Reference in New Issue
Block a user