* Updated documentation

* Deleted useless code

git-svn-id: svn://kolibrios.org@277 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2007-01-17 14:43:18 +00:00
parent 1e7402569a
commit a9706fb6ca
5 changed files with 189 additions and 361 deletions

View File

@ -95,7 +95,7 @@ iglobal
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

View File

@ -1,4 +1,4 @@
ˆ…Œ<EFBFBD>… ”“<E2809D>Šˆˆ Ž<><EFBFBD>ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.6.0.0
ˆ…Œ<EFBFBD>… ”“<E2809D>Šˆˆ Ž<><EFBFBD>ˆŽ<CB86><C5BD>Ž‰ ‘ˆ‘’…Œ› Kolibri 0.6.3.0
<EFBFBD>®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
@ -685,7 +685,7 @@
* eax = 0 - ãᯥ譮
* ¨­ ç¥ eax = ª®¤ ®è¨¡ª¨ ä ©«®¢®© á¨á⥬ë
‡ ¬¥ç ­¨ï:
* ˆ¬ï ä ©«  䨪á¨à®¢ ­®, "menuet.img" (£«®¡ «ì­ ï ¯¥à¥¬¥­­ ï ï¤à 
* ˆ¬ï ä ©«  䨪á¨à®¢ ­®, "kolibri.img" (£«®¡ «ì­ ï ¯¥à¥¬¥­­ ï ï¤à 
image_save ¨§ preboot.inc)
* <20>  ª ª®¬ à §¤¥«¥ ª ª®£® ¤¨áª  ä ©« ¡ã¤¥â á®åà ­ñ­, ®¯à¥¤¥«ï¥âáï
¯®¤ä㭪樥© 7 ¨ ¯®¤ä㭪樥© 8 ä㭪樨 21.
@ -814,7 +814,7 @@
­ã«¥¢®©, ¯à¨ ­ «¨ç¨¨ ¯®ª §ë¢ ¥â ç¨á«® à á¯®§­ ­­ëå à §¤¥«®¢,
ª®â®àëå ¬®¦¥â ¨ ­¥ ¡ëâì (¥á«¨ ­®á¨â¥«ì ­¥ ®âä®à¬ â¨à®¢ ­ ¨«¨
¥á«¨ ä ©«®¢ ï á¨á⥬  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï). ⥪ã饩 ¢¥àᨨ ï¤à 
¤«ï ¦ñáâª¨å ¤¨áª®¢ ¯®¤¤¥à¦¨¢ îâáï ⮫쪮 FAT16 ¨ FAT32.
¤«ï ¦ñáâª¨å ¤¨áª®¢ ¯®¤¤¥à¦¨¢ îâáï ⮫쪮 FAT16, FAT32 ¨ NTFS.
* +6: 4 db: § à¥§¥à¢¨à®¢ ­®
”®à¬ â â ¡«¨æë: ¯®«­ ï ¢¥àá¨ï:
* +0: 10 db: â ª¨¥ ¦¥, ª ª ¨ ¢ ª®à®âª®© ¢¥àᨨ
@ -825,44 +825,17 @@
<EFBFBD> §¤¥«ë à á¯®«®¦¥­ë ¢ á«¥¤ãî饬 ¯®à浪¥: á­ ç «  ¯®á«¥¤®¢ â¥«ì­® ¢á¥
à á¯®§­ ­­ë¥ à §¤¥«ë ­  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
* ä®à¬ â ¤ «ì­¥©è¨å ¤ ­­ëå § ¢¨á¨â ®â ä ©«®¢®© á¨á⥬ë,
¬®¦¥â ¬¥­ïâìáï á ¨§¬¥­¥­¨ï¬¨ ¢ ï¤à¥ ¨ ¯®í⮬㠭¥ ®¯¨á뢠¥âáï
‡ ¬¥ç ­¨ï:
* Š®à®âª ï â ¡«¨æ  ¬®¦¥â ¡ëâì ¨á¯®«ì§®¢ ­  ¤«ï ¯®«ã祭¨ï ¨­ä®à¬ æ¨¨
®¡ ¨¬¥îé¨åáï ãáâனá⢠å.
* <20>¥à¢ë¥ ¤¢  ¯®«ï ¨­ä®à¬ æ¨¨ ® à §¤¥«¥ ¢ ¯®«­®© ¢¥àᨨ â ¡«¨æë
á®®¡é îâ ¯ à ¬¥âàë à §¤¥« , ®á⠢訥áï - ¯ à ¬¥âàë ä ©«®¢®©
á¨á⥬ë 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 @@ db 'Kolibri',0
¨ ¯à®¢¥à¨âì, çâ® ãáâ ­ ¢«¨¢ ¥¬®¥ ¯®«®¦¥­¨¥ ­¥ ¢ë室¨â §  ¯à¥¤¥«ë
íªà ­ .
======================================================================
====================== ”ã­ªæ¨ï 18, ¯®¤äã­ªæ¨ï 20 =====================
============= <20>®«ãç¨âì ¨­ä®à¬ æ¨î ®¡ ®¯¥à â¨¢­®© ¯ ¬ïâ¨. =============
@ -1149,22 +1121,6 @@ db 'Kolibri',0
¯¥à¥¬¥­­ãî ­¥ ¨á¯®«ì§ã¥â.
* <20>®«ãç¨âì ï§ëª á¨áâ¥¬ë ¬®¦­® ¢ë§®¢®¬ ¯®¤ä㭪樨 5 ä㭪樨 26.
======================================================================
======= ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 6 - ãáâ ­®¢¨âì ¡ §®¢ë© ¯®àâ WSS. ======
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 21 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ¡ §®¢ë© ¯®àâ
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮
* eax = -1 - ®è¨¡®ç­ë© ­®¬¥à ¯®àâ 
‡ ¬¥ç ­¨ï:
* <20>®¬¥à ¯®àâ  ¤®«¦¥­ 㤮¢«¥â¢®àïâì ãá«®¢¨î 0x100<=ecx.
* <20> §  WSS ¨á¯®«ì§ã¥âáï ä㭪樥© 27.
* <20>®«ãç¨âì ãáâ ­®¢«¥­­ë© ¡ §®¢ë© ¯®àâ WSS ¬®¦­® ¢ë§®¢®¬
¯®¤ä㭪樨 6 ä㭪樨 26.
======================================================================
=========== ”ã­ªæ¨ï 21, ¯®¤äã­ªæ¨ï 7 - ãáâ ­®¢¨âì ¡ §ã HD. ===========
======================================================================
@ -1599,18 +1555,6 @@ db 'Kolibri',0
ᮮ⢥âáâ¢ãîéãî ¨ª®­ªã (¨á¯®«ì§ãï ®¯¨á뢠¥¬ãî äã­ªæ¨î).
* “áâ ­®¢¨âì ï§ëª á¨áâ¥¬ë ¬®¦­® ¢ë§®¢®¬ ¯®¤ä㭪樨 5 ä㭪樨 21.
======================================================================
======== ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 6 - ¯®«ãç¨âì ¡ §®¢ë© ¯®àâ WSS. =======
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 26 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ¡ §®¢ë© ¯®àâ
‡ ¬¥ç ­¨ï:
* <20> §  WSS ¨á¯®«ì§ã¥âáï ä㭪樥© 27.
* “áâ ­®¢¨âì ¡ §®¢ë© ¯®àâ WSS ¬®¦­® ¢ë§®¢®¬ ¯®¤ä㭪樨 6 ä㭪樨 21.
======================================================================
============ ”ã­ªæ¨ï 26, ¯®¤äã­ªæ¨ï 7 - ¯®«ãç¨âì ¡ §ã HD. ============
======================================================================
@ -1706,28 +1650,6 @@ db 'Kolibri',0
* “áâ ­®¢¨âì ⥪ã饥 á®áâ®ï­¨¥ ¬®¦­® ¢ë§®¢®¬
¯®¤ä㭪樨 12 ä㭪樨 21.
======================================================================
==== ”ã­ªæ¨ï 27 - ãáâ ­®¢¨âì £à®¬ª®áâì Windows Sound System (WSS). ===
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 27 - ­®¬¥à ä㭪樨
* ebx = çâ® ãáâ ­ ¢«¨¢ âì:
* 1 - ãáâ ­®¢¨âì ®¡éãî £à®¬ª®áâì
* 2 - ãáâ ­®¢¨âì £à®¬ª®áâì Line In
* cl = ã஢¥­ì £à®¬ª®á⨠(0x0=á ¬ë© ¢ë᮪¨©, 0x1F=á ¬ë© ­¨§ª¨©,
ãáâ ­®¢«¥­­ë© ¡¨â 0x80=®âª«îç¨âì)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮
* eax = 1 - ­¥ ®¯à¥¤¥«¥­  ¡ §  WSS
* eax = 2 - ­¥¢¥à­ ï ¯®¤äã­ªæ¨ï
‡ ¬¥ç ­¨ï:
* <20>।¢ à¨â¥«ì­® ­ã¦­® ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ WSS ¢ë§®¢®¬
¯®¤ä㭪樨 6 ä㭪樨 21.
* “áâ ­®¢ª  ®¡é¥© £à®¬ª®á⨠䠪â¨ç¥áª¨ ¨£­®à¨àã¥âáï
(¢®§¢à é ¥âáï eax=0).
* áâ à®© ¤®ªã¬¥­â æ¨¨ ¨ ¢ ¨á室­¨ª å ï¤à  ¯®¤äã­ªæ¨ï 2
®è¨¡®ç­® ­ §¢ ­  £à®¬ª®áâìî CD-audio.
======================================================================
=============== ”ã­ªæ¨ï 28 - ãáâ ­®¢¨âì £à®¬ª®áâì SB16. ==============
======================================================================
@ -1829,7 +1751,7 @@ db 'Kolibri',0
¬®¦­® ¯®«ãç¨âì ä㭪樥© 61.
======================================================================
========== ”ã­ªæ¨ï 37 - ¯®«ãç¨âì ª®®à¤¨­ âë/á®áâ®ï­¨¥ ¬ëè¨. ==========
==================== ”ã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî. ====================
======================================================================
-------------- <20>®¤äã­ªæ¨ï 0 - íªà ­­ë¥ ª®®à¤¨­ âë ¬ëè¨ ---------------
@ -1864,70 +1786,54 @@ db 'Kolibri',0
* ¡¨â 1 ãáâ ­®¢«¥­ = ¯à ¢ ï ª­®¯ª  ­ ¦ â 
* ¯à®ç¨¥ ¡¨âë á¡à®è¥­ë
----------------- <20>®¤äã­ªæ¨ï 3 - ãáâ ­®¢¨âì ¯®§¨æ¨î ªãàá®à  ------------
------------------ äã­ªæ¨ï § à¥§¥à¢¨à®¢ ­  -----------------
<EFBFBD> à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 3 - ­®¬¥à ¯®¤ä㭪樨
* ecx = ª®®à¤¨­ âë ªãàá®à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax ¯à¥¤ë¤ã騥 ª®®à¤¨­ âë ªãàá®à 
----------------- <20>®¤äã­ªæ¨ï 4 - § £à㧨âì ªãàá®à -----------------
------------------ <20>®¤äã­ªæ¨ï 4 - § £à㧨âì ªãàá®à -------------------
<EFBFBD> à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 4 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ¢å®¤­ë¥ ¤¢­­ë¥
* edx = (hotspot << 16) or flags
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax ᮤ¥à¦¨â «®£¨ç¥áª¨© ­®¬¥à ªãàá®à 
¨«¨ 0 ¢ á«ãç ¥ ­¥ã¤ ç¨
‡­ ç¥­¨¥ 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
* 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 ¯¨ªá¥«ï
* hotspot (hotspot.x <<8)or hotspot.y
0<= x,y <=31
* edx = 0xXXYY0002, £¤¥
* XX = x-ª®®à¤¨­ â  "£®àï祩 â®çª¨" ªãàá®à 
* YY = y-ª®®à¤¨­ â 
* 0 <= XX, YY <= 31
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ­¥ã¤ ç 
* ¨­ ç¥ eax = åí­¤« ªãàá®à 
* dx = LOAD_SYSTEM = 3; § à¥§¥à¢¨à®¢ ­®
* ecx = ­®¬¥à á¨á⥬­®£® ªãàá®à 
* hotspot ¨£­®à¨àã¥âáï
----------------- <20>®¤äã­ªæ¨ï 5 - ãáâ ­®¢¨âì ªãàá®à -----------------
------------------ <20>®¤äã­ªæ¨ï 5 - ãáâ ­®¢¨âì ªãàá®à ------------------
“áâ ­ ¢«¨¢ ¥â ­®¢ë© ªãàá®à ¤«ï ®ª­  ⥪ã饣® ¯®â®ª .
<EFBFBD> à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 5 - ­®¬¥à ¯®¤ä㭪樨
* ecx = «®£¨ç¥áª¨© ­®¬¥à ªãàá®à  § £à㦥­­®£® ä­. 37.4
* ecx = åí­¤« ªãàá®à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = «®£¨ç¥áª¨© ­®¬¥à ¯à¥¤ë¤ã饣® ªãàá®à 
* eax = åí­¤« ¯à¥¤ë¤ã饣® ãáâ ­®¢«¥­­®£® ªãàá®à 
‡ ¬¥ç ­¨ï:
* …᫨ ¯¥à¥¤ ­ ­¥ª®à४â­ë© åí­¤«, â® äã­ªæ¨ï ¢®ááâ ­®¢¨â ªãàá®à
¯® 㬮«ç ­¨î (áâ ­¤ àâ­ãî áâ५ªã). ç áâ­®áâ¨, ª ¢®ááâ ­®¢«¥­¨î
ªãàá®à  ¯® 㬮«ç ­¨î ¯à¨¢®¤¨â ¯¥à¥¤ ç  ecx=0.
”ã­ªæ¨ï ãáâ ­ ¢«¨¢ ¥â ­®¢ë© ªãàá®à ¤«ï ®ª­  ¢ë§¢ ¢è¥£® ¥ñ ¯®â®ª ,
----------------- <20>®¤äã­ªæ¨ï 6 - 㤠«¨âì ªãàá®à -----------------
------------------ äã­ªæ¨ï § à¥§¥à¢¨à®¢ ­  -----------------
------------------- <20>®¤äã­ªæ¨ï 6 - 㤠«¨âì ªãàá®à --------------------
<EFBFBD> à ¬¥âàë:
* eax = 37 - ­®¬¥à ä㭪樨
* ebx = 6 - ­®¬¥à ¯®¤ä㭪樨
* ecx = «®£¨ç¥áª¨© ­®¬¥à ªãàá®à  § £à㦥­­®£® ä­. 37.4
* ecx = åí­¤« ªãàá®à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ®¡é¥¥ ª®«¨ç¥á⢮ § £à㦥­­ëå ªãàá®à®¢
…᫨ 㤠«ï¥¬ë© ªãàá®à ï¥âáï  ªâ¨¢­ë¬ ¤«ï ¤ ­­®£® ®ª­ ,®­ § ¬¥­ï¥âáï
á¨á⥬­ë¬. ”ã­ªæ¨ï ­¥ 㤠«ï¥â ªãàá®àë § £à㦥­­ë¥ ¤à㣨¬ ¯à¨«®¦¥­¨¥¬.
‘¨á⥬­ë¥ ªãàá®àë ­¥ 㤠«ïîâáï.
* eax à §àãè ¥âáï
‡ ¬¥ç ­¨ï:
* Šãàá®à ¤®«¦¥­ ¡ë« ¡ëâì à ­¥¥ § £à㦥­ ⥪ã騬 ¯®â®ª®¬
(¢ë§®¢®¬ ¯®¤ä㭪樨 4). ”ã­ªæ¨ï ­¥ 㤠«ï¥â á¨á⥬­ë¥ ªãàá®àë ¨
ªãàá®àë, § £à㦥­­ë¥ ¤à㣨¬¨ ¯à¨«®¦¥­¨ï¬¨.
* …᫨ 㤠«ï¥âáï  ªâ¨¢­ë© (ãáâ ­®¢«¥­­ë© ¯®¤ä㭪樥© 5) ªãàá®à, â®
¢®ááâ ­ ¢«¨¢ ¥âáï ªãàá®à ¯® 㬮«ç ­¨î (áâ ­¤ àâ­ ï áâ५ª ).
======================================================================
================== ”ã­ªæ¨ï 38 - ­ à¨á®¢ âì ®â१®ª. ==================
@ -2150,9 +2056,8 @@ db 'Kolibri',0
§ à¥§¥à¢¨à®¢ ­ í⮩ ¦¥ ä㭪樥© (á â ª¨¬¨ ¦¥ §­ ç¥­¨ï¬¨ ecx,edx).
* <20>ਠ®¡­ à㦥­¨¨ ®è¨¡ª¨ (¢ ®¡®¨å á«ãç ïå) ­¨ª ª¨å ¤¥©á⢨©
­¥ ¯à®¨§¢®¤¨âáï.
* <20>ਠ§ £à㧪¥ á¨á⥬  १¥à¢¨àã¥â §  ᮡ®© ¯®àâë 0..0xff,   ¯à¨
®¡­ à㦥­¨¨ COM-¬ëè¨ - ¤®¯®«­¨â¥«ì­® ¤¨ ¯ §®­ COM-¯®à⮢
0x3f0..0x3ff ¨/¨«¨ 0x2f0..0x2ff.
* <20>ਠ§ £à㧪¥ á¨á⥬  १¥à¢¨àã¥â §  ᮡ®© ¯®àâë
0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (¢ª«îç¨â¥«ì­®).
* <20>ਠ§ ¢¥à襭¨¨ ¯®â®ª   ¢â®¬ â¨ç¥áª¨ ®á¢®¡®¦¤ îâáï ¢á¥
§ à¥§¥à¢¨à®¢ ­­ë¥ ¨¬ ¯®àâë.
@ -2621,6 +2526,20 @@ dword-
* ⥪ãé ï ॠ«¨§ æ¨ï ¢®§¢à é ¥â eax=14, ­® íâ® ¬®¦¥â ¡ëâì ¨§¬¥­¥­®
¢ á«¥¤ãîé¨å ¢¥àá¨ïå
======================================================================
====== ”ã­ªæ¨ï 52, ¯®¤äã­ªæ¨ï 15 - ¯®«ãç¨âì «®ª «ì­ë© MAC- ¤à¥á. =====
======================================================================
<EFBFBD> à ¬¥âàë:
* 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-᮪¥â. ===========
======================================================================
@ -2915,31 +2834,6 @@ dword-
* „ ­­ë¥ ¤®«¦­ë á®åà ­ïâìáï ¢ ¯ ¬ï⨠¯® ªà ©­¥© ¬¥à¥
¤® ª®­æ  ¯à®¨£à뢠­¨ï.
======================================================================
============= ”ã­ªæ¨ï 56 - § ¯¨á âì ä ©« ­  ¦ñá⪨© ¤¨áª. ============
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 56 - ­®¬¥à ä㭪樨
* ebx = 㪠§ â¥«ì ­  ¨¬ï ä ©« 
* ecx = à §¬¥à ¤ ­­ëå ¤«ï § ¯¨á¨ (¢ ¡ ©â å)
* edx = 㪠§ â¥«ì ­  ¤ ­­ë¥ ¤«ï § ¯¨á¨
* esi = 㪠§ â¥«ì ­  ¯ãâì (ASCIIZ-áâபã)
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ãᯥ譮, ¨­ ç¥ ª®¤ ®è¨¡ª¨ ä ©«®¢®© á¨á⥬ë
‡ ¬¥ç ­¨ï:
* <20>â  äã­ªæ¨ï ãáâ à¥« ; äã­ªæ¨ï 70 ¯®§¢®«ï¥â ¢ë¯®«­ïâì
⥠¦¥ ¤¥©á⢨ï á à áè¨à¥­­ë¬¨ ¢®§¬®¦­®áâﬨ.
* „ ­­ ï äã­ªæ¨ï ¯à¥¤¯®« £ ¥â, çâ® ¢® ¢à¥¬ï ¥ñ ¢ë§®¢  ®¤­¨¬
¯à¨«®¦¥­¨¥¬ ­¨ª ª®¥ ¤à㣮¥ ¯à¨«®¦¥­¨¥ ­¥ à ¡®â ¥â
á ¦ñá⪨¬ ¤¨áª®¬.
* <20>ãâì ª ä ©«ã - ASCIIZ-áâப , ª®â®à ï ¬®¦¥â ¡ëâì ¯ãá⮩
(¥á«¨ ä ©« ᮧ¤ ñâáï ¢ ª®à­¥¢®¬ ª â «®£¥) ¨«¨ ¨¬¥âì ä®à¬ â
/d1/d2/.../dn, £¤¥ ¢á¥ ¨¬¥­  ¯ ¯®ª ¤®«¦­ë ¨¬¥âì ä®à¬ â 8+3, â.¥.
8 ᨬ¢®«®¢ ¨¬¥­¨ ¨ 3 ᨬ¢®«  à áè¨à¥­¨ï ¡¥§ à §¤¥«¨â¥«ï,
¯à¨ ­¥®¡å®¤¨¬®á⨠¤®¯®«­¥­­ë¥ ¯à®¡¥« ¬¨;
¢á¥ ¡ãª¢ë ¤®«¦­ë ¡ëâì § £« ¢­ë¥.
* ˆ¬ï ª ä ©«ã â ª¦¥ ¤®«¦­® ¨¬¥âì ä®à¬ â 8+3.
======================================================================
============== ”ã­ªæ¨ï 58 - à ¡®â  á ä ©«®¢®© á¨á⥬®©. ==============
======================================================================
@ -3563,9 +3457,9 @@ IPC
‡ ¬¥ç ­¨ï:
* …áâì ¤à㣮© ᯮᮡ ¢ë¤¥«¥­¨ï/®á¢®¡®¦¤¥­¨ï ¤¨­ ¬¨ç¥áª®© ¯ ¬ï⨠-
¯®¤ä㭪樨 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 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* ‚맮¢ ä㭪樨 ¨­¨æ¨ «¨§¨àã¥â ªãçã, ¨§ ª®â®à®© ¢¯®á«¥¤á⢨¨ ¬®¦­®
¢ë¤¥«ïâì ¨ ®á¢®¡®¦¤ âì ¡«®ª¨ ¯ ¬ï⨠¯®¤äã­ªæ¨ï¬¨ 12 ¨ 13.
<20> §¬¥à ªãç¨ à ¢¥­ à §¬¥à㠢ᥩ ᢮¡®¤­®© ¯ ¬ï⨠¯à¨«®¦¥­¨ï.
* <20>ਠ¯®¢â®à­®¬ ¢ë§®¢¥ ä㭪樨 ⥬ ¦¥ ¯à®æ¥áᮬ äã­ªæ¨ï ¢¥à­ñâ à §¬¥à
áãé¥áâ¢ãî饩 ªãç¨.
* <20>®á«¥ ᮧ¤ ­¨ï ªãç¨ ¢ë§®¢ë ä㭪樨 64.1 ¨£­®à¨àãîâáï.
* <20>ਠ¯®¢â®à­®¬ ¢ë§®¢¥ ä㭪樨 ⥬ ¦¥ ¯à®æ¥áᮬ äã­ªæ¨ï ¢¥à­ñâ
à §¬¥à áãé¥áâ¢ãî饩 ªãç¨.
* <20>®á«¥ ᮧ¤ ­¨ï ªãç¨ ¢ë§®¢ë ä㭪樨 64 ¨£­®à¨àãîâáï.
======================================================================
========== ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 12 - ¢ë¤¥«¨âì ¡«®ª ¯ ¬ïâ¨. =========
@ -3844,9 +3738,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
<EFBFBD> à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨
* ebx = 16 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ASCIIZ áâபã á ¨¬¥­¥¬ ¤à ©¢¥à 
¬ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ 16 ᨬ¢®«®¢ ¢ª«îç ï ­®«ì
®áâ «ì­ë¥ ᨬ¢®«ë ¨£­®à¨àãîâáï
* ecx = 㪠§ â¥«ì ­  ASCIIZ-áâபã á ¨¬¥­¥¬ ¤à ©¢¥à 
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ­¥ã¤ ç 
* ¨­ ç¥ eax = åí­¤« ¤à ©¢¥à 
@ -3854,10 +3746,12 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* …᫨ ¤à ©¢¥à ¥éñ ­¥ § £à㦥­, ®­ § £à㦠¥âáï;
¥á«¨ ¤à ©¢¥à 㦥 § £à㦥­, ­¨ç¥£® ­¥ ¬¥­ï¥âáï.
* ˆ¬ï ¤à ©¢¥à  çã¢á⢨⥫쭮 ª ॣ¨áâàã ᨬ¢®«®¢.
Œ ªá¨¬ «ì­ ï ¤«¨­  ¨¬¥­¨ - 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 - ã¯à ¢«¥­¨¥ ¤à ©¢¥à®¬. =========
@ -3890,6 +3784,21 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* eax =  ¤à¥á áâ à®£® ®¡à ¡®â稪  ¨áª«î祭¨©
(0, ¥á«¨ ®­ ­¥ ¡ë« ãáâ ­®¢«¥­)
======================================================================
============= ”ã­ªæ¨ï 68, ¯®¤äã­ªæ¨ï 19 - § £à㧨âì DLL. =============
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 68 - ­®¬¥à ä㭪樨
* ebx = 19 - ­®¬¥à ¯®¤ä㭪樨
* ecx = 㪠§ â¥«ì ­  ASCIIZ-áâபã á ¯®«­ë¬ ¯ãâñ¬ ª DLL
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ­¥ã¤ ç 
* ¨­ ç¥ eax = 㪠§ â¥«ì ­  â ¡«¨æã íªá¯®àâ  DLL
‡ ¬¥ç ­¨ï:
* ’ ¡«¨æ  íªá¯®àâ  ¯à¥¤áâ ¢«ï¥â ᮡ®© ¬ áᨢ áâàãªâãà ¯® 2 dword' ,
§ ª ­ç¨¢ î騩áï ­ã«ñ¬. <20>¥à¢ë© dword ¢ áâàãªâãॠï¥âáï
㪠§ â¥«¥¬ ­  ¨¬ï ä㭪樨, ¢â®à®© ᮤ¥à¦¨â  ¤à¥á ä㭪樨.
======================================================================
======================== ”ã­ªæ¨ï 69 - ®â« ¤ª . =======================
======================================================================

View File

@ -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 @@ Returned value:
* 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 @@ Format of the table: short version:
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 @@ Format of the information about partition
* +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 @@ Structure of the buffer:
db a,b,c,d for version a.b.c.d
db UID_xxx: one of UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
db 'name',0 - ASCIIZ-string with the name
For Kolibri 0.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
@ -1139,21 +1115,6 @@ Remarks:
use this variable.
* 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. =============
======================================================================
@ -1574,18 +1535,6 @@ Remarks:
appropriate icon (using this function).
* 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. =============
======================================================================
@ -1676,27 +1625,6 @@ Remarks:
* The current implementation uses only low bit of ecx.
* 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. ===================
======================================================================
@ -1797,7 +1725,7 @@ Remarks:
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 @@ Returned value:
* 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 @@ Remarks:
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.
@ -2525,6 +2500,20 @@ Returned value:
* the current implementation returns eax=14, but this can be changed
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. ===========
======================================================================
@ -2819,30 +2808,6 @@ Remarks:
* The data must be kept in the memory at least up to the end
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. ================
======================================================================
@ -3757,8 +3722,8 @@ Remarks:
* 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. ===========
@ -3790,6 +3755,21 @@ Parameters:
Returned value:
* 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. ======================
======================================================================

View File

@ -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 @@ iglobal
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 virtual
; End place
; Mario79
;***************************************************************************
endg
iglobal
partition_types: ; list of fat16/32 partitions
db 0x04 ; DOS: fat16 <32M

View File

@ -1172,50 +1172,6 @@ sys_sb16II:
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 @@ sys_setup:
; 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 @@ cd_base db 0
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 @@ sys_getsetup:
; 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 @@ sys_getsetup:
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 @@ wraw_bacground_select db 0
pci_access_enabled dd 0x0 ; 0 = disabled , 1 = enabled
sb16 dd 0x0
wss dd 0x0
buttontype dd 0x0
windowtypechanged dd 0x0