/kernel/trunk/boot/bootcode.inc |
---|
381,11 → 381,9 |
@@: |
mov [di], al |
.preboot_gr_end: |
cmp [di+preboot_dma-preboot_graph], 0 |
jnz @f |
mov [di+preboot_dma-preboot_graph], 3 ; DMA: defaults to none |
@@: |
; following 4 lines set variables to 1 if its current value is 0 |
; following 6 lines set variables to 1 if its current value is 0 |
cmp [di+preboot_dma-preboot_graph], 1 |
adc [di+preboot_dma-preboot_graph], 0 |
cmp [di+preboot_vrrm-preboot_graph], 1 |
adc [di+preboot_vrrm-preboot_graph], 0 |
cmp [di+preboot_device-preboot_graph], 1 |
/kernel/trunk/docs/sysfuncr.txt |
---|
1,4 → 1,4 |
Kolibri 0.7.0.0 |
Kolibri 0.7.1.0 |
®¬¥à äãªæ¨¨ ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax. |
맮¢ á¨á⥬®© äãªæ¨¨ ®áãé¥á⢫ï¥âáï ª®¬ ¤®© "int 0x40". |
22,14 → 22,14 |
* Y=1 - ⮫쪮 ®¯à¥¤¥«¨âì ®¡« áâì ®ª , ¨ç¥£® ¥ à¨á®¢ âì |
* Y=2 - ⨯ II - ®ª® ¨§¬¥ï¥¬ëå à §¬¥à®¢ |
* Y=3 - ®ª® ᮠ᪨®¬ |
* Y=4 - ®ª® ᮠ᪨®¬ ¨ 䨪á¨à®¢ 묨 à §¬¥à ¬¨ |
* ®áâ «ìë¥ ¢®§¬®¦ë¥ § 票ï (®â 4 ¤® 15) § १¥à¢¨à®¢ ë, |
* Y=4 - ®ª® ᮠ᪨®¬ 䨪á¨à®¢ ëå à §¬¥à®¢ |
* ®áâ «ìë¥ ¢®§¬®¦ë¥ § 票ï (®â 5 ¤® 15) § १¥à¢¨à®¢ ë, |
¢ë§®¢ äãªæ¨¨ á â ª¨¬¨ Y ¨£®à¨àã¥âáï |
* RR, GG, BB = ᮮ⢥âá⢥® ªà á ï, §¥«¥ ï, á¨ïï |
á®áâ ¢«ïî騥 梥â à ¡®ç¥© ®¡« á⨠®ª |
(¨£®à¨àã¥âáï ¤«ï á⨫ï Y=2) |
* X = DCBA (¡¨âë) |
* A = 1 - ã ®ª ¥áâì § £®«®¢®ª; ¤«ï á⨫ï Y=3 ¤à¥á áâப¨ |
* A = 1 - ã ®ª ¥áâì § £®«®¢®ª; ¤«ï á⨫¥© Y=3,4 ¤à¥á áâப¨ |
§ £®«®¢ª § ¤ ñâáï ¢ edi, ¤«ï ¯à®ç¨å á⨫¥© |
¨á¯®«ì§ã¥âáï ¯®¤äãªæ¨ï 1 äãªæ¨¨ 71 |
* B = 1 - ª®®à¤¨ âë ¢á¥å £à ä¨ç¥áª¨å ¯à¨¬¨â¨¢®¢ § ¤ îâáï |
53,7 → 53,7 |
í⮩ äãªæ¨¨ ¨ ¨£®à¨àãîâáï ¯à¨ ¯®á«¥¤ãîé¨å; ¤«ï ¨§¬¥¥¨ï |
¯®«®¦¥¨ï ¨/¨«¨ à §¬¥à®¢ 㦥 ᮧ¤ ®£® ®ª ¨á¯®«ì§ã©â¥ |
67-î äãªæ¨î. |
* «ï ®ª® á⨫ï Y=3 á § £®«®¢ª®¬ (A=1) áâப § £®«®¢ª |
* «ï ®ª® á⨫¥© Y=3,4 á § £®«®¢ª®¬ (A=1) áâப § £®«®¢ª |
ãáâ ¢«¨¢ ¥âáï ¯à¨ ¯¥à¢®¬ ¢ë§®¢¥ í⮩ äãªæ¨¨ ¨ ¨£®à¨àã¥âáï ¯à¨ |
¯®á«¥¤ãîé¨å (â®ç¥¥ £®¢®àï, ¨£®à¨àã¥âáï ¯®á«¥ ¢ë§®¢ |
¯®¤äãªæ¨¨ 2 äãªæ¨¨ 12 - ª®æ ¯¥à¥à¨á®¢ª¨); |
869,10 → 869,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.0.0: |
db 0,7,0,0 |
«ï ï¤à Kolibri 0.7.1.0: |
db 0,7,1,0 |
db 2 |
dd 533 |
dd 638 |
====================================================================== |
====================== ãªæ¨ï 18, ¯®¤äãªæ¨ï 14 ===================== |
981,21 → 981,20 |
®§¢à é ¥¬®¥ § 票¥: |
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï |
-------- ®¤¯®¤äãªæ¨ï 5 - í¬ã«ïæ¨ï ª®¯®ª ¬ëè¨. -------- |
------- ®¤¯®¤äãªæ¨ï 5 - ᨬ㫨஢ âì á®áâ®ï¨¥ ª« ¢¨è ¬ëè¨. -------- |
à ¬¥âàë: |
* eax = 18 - ®¬¥à äãªæ¨¨ |
* ebx = 19 - ®¬¥à ¯®¤äãªæ¨¨ |
* ecx = 5 - ®¬¥à ¯®¤¯®¤äãªæ¨¨ |
* edx = ¨ä®à¬ æ¨ï ® í¬ã«¨à㥬ëå ª®¯ª å ¬ëè¨: |
* edx = ¨ä®à¬ æ¨ï ® í¬ã«¨à㥬®¬ á®áâ®ï¨¨ ª®¯®ª ¬ëè¨: |
(ᮮ⢥âáâ¢ã¥â ¢®§¢à é ¥¬®¬ã § ç¥¨î ¯®¤äãªæ¨¨ 2 äãªæ¨¨ 37) |
* ¡¨â 0 ãáâ ®¢«¥ = «¥¢ ï ª®¯ª ¦ â |
* ¡¨â 1 ãáâ ®¢«¥ = ¯à ¢ ï ª®¯ª ¦ â |
* ¡¨â 2 ãáâ ®¢«¥ = á।ïï ª®¯ª ¦ â |
* ¡¨â 3 ãáâ ®¢«¥ = 4-ï ª®¯ª ¦ â |
* ¡¨â 4 ãáâ ®¢«¥ = 5-ï ª®¯ª ¦ â |
* ¯à®ç¨¥ ¡¨âë á¡à®è¥ë |
®§¢à é ¥¬®¥ § 票¥: |
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï |
¬¥ç ¨ï: |
* ¥ª®¬¥¤ã¥¬ ï ᪮à®áâì ¬ëè¨ (¢ ¯®¤¯®¤äãªæ¨¨ 1) ®â 1 ¤® 9. |
áâ ¢«¨¢ ¥¬ ï ¢¥«¨ç¨ ¥ ¯à®¢¥àï¥âáï ª®¤®¬ ï¤à , ¯®í⮬ã |
1039,34 → 1038,35 |
====================================================================== |
====================== ãªæ¨ï 18, ¯®¤äãªæ¨ï 21 ===================== |
==== ®«ãç¨âì ®¬¥à ᫮⠯à®æ¥áá /¯®â®ª ¯® ¥£® ¨¤¥â¨ä¨ª â®àã ===== |
======= ®«ãç¨âì ®¬¥à ᫮⠯à®æ¥áá /¯®â®ª ¯® ¨¤¥â¨ä¨ª â®àã. ====== |
====================================================================== |
à ¬¥âàë: |
* eax = 18 - ®¬¥à äãªæ¨¨ |
* ebx = 21 - ®¬¥à ¯®¤äãªæ¨¨ |
* ecx = PID/TID (¨¤¥â¨ä¨ª â®à ¯à®æ¥áá /¯®â®ª ) |
* ecx = ¨¤¥â¨ä¨ª â®à ¯à®æ¥áá /¯®â®ª (PID/TID) |
®§¢à é ¥¬®¥ § 票¥: |
* eax = ®¬¥à ᫮⠯®â®ª ¥á«¨ ® áãé¥áâ¢ã¥â ¨«¨ 0, ¥á«¨ PID/TID |
«®¦ë©. |
* eax = 0 - ®è¨¡ª (¥¢¥àë© ¨¤¥â¨ä¨ª â®à) |
* ¨ ç¥ eax = ®¬¥à á«®â |
====================================================================== |
====================== ãªæ¨ï 18, ¯®¤äãªæ¨ï 22 ===================== |
=========== ¨¨¬¨§ æ¨ï/¢®ááâ ®¢«¥¨¥ ®ª ¯à®æ¥áá /¯®â®ª ========== |
ãªæ¨ï 18, ¯®¤äãªæ¨ï 22 - ®¯¥à 樨 á ®ª®¬ ¤à㣮£® ¯à®æ¥áá /¯®â®ª . |
====================================================================== |
à ¬¥âàë: |
* eax = 18 - ®¬¥à äãªæ¨¨ |
* ebx = 22 - ®¬¥à ¯®¤äãªæ¨¨ |
* ecx = ¨¯ ®¯¥à 樨 |
0 - ¬¨¨¬¨§ æ¨ï ®ª (᢮à 稢 ¨¥ ¯ ¥«ì) ¯® ®¬¥àã |
᫮⠯®â®ª |
1 - ¬¨¨¬¨§ æ¨ï ®ª ¯® ¨¤¥â¨ä¨ª â®àã PID/TID |
2 - ®ááâ ®¢«¥¨¥ ¬¨¨¬¨§¨à®¢ ®£® ®ª ¯® á«®âã ¯®â®ª |
3 - ®ááâ ®¢«¥¨¥ ¬¨¨¬¨§¨à®¢ ®£® ®ª ¯® ¨¤¥â¨ä¨ª â®àã |
PID/TID |
* edx = à ¬¥âà ®¯¥à 樨 (®¬¥à ᫮⠨«¨ PID/TID) |
* ecx = ⨯ ®¯¥à 樨: |
* 0 = ¬¨¨¬¨§ æ¨ï ®ª , ¯®â®ª § ¤ ®¬¥à®¬ á«®â |
* 1 = ¬¨¨¬¨§ æ¨ï ®ª , ¯®â®ª § ¤ ¨¤¥â¨ä¨ª â®à®¬ |
* 2 = ¢®ááâ ®¢«¥¨¥ ®ª , ¯®â®ª § ¤ ®¬¥à®¬ á«®â |
* 3 = ¢®ááâ ®¢«¥¨¥ ®ª , ¯®â®ª § ¤ ¨¤¥â¨ä¨ª â®à®¬ |
* edx = ¯ à ¬¥âà ®¯¥à 樨 (®¬¥à ᫮⠨«¨ PID/TID) |
®§¢à é ¥¬®¥ § 票¥: |
* eax = 0 - ãᯥ讥 § ¢¥à襨¥ |
eax = -1 - ®è¨¡ª |
* eax = 0 - ãá¯¥è® |
* eax = -1 - ®è¨¡ª (¥¯à ¢¨«ìë© ¯ à ¬¥âà) |
¬¥ç ¨ï: |
* ®â®ª ¬®¦¥â ᢥàãâì ᢮ñ ®ª® ¢ë§®¢®¬ ¯®¤äãªæ¨¨ 10. |
* ®ááâ ®¢«¥¨¥ ®ª á ®¤®¢à¥¬¥®© ªâ¨¢¨§ 樥© ®áãé¥á⢫ï¥âáï |
¯®¤äãªæ¨¨ 3 (¯à¨¨¬ î饩 ®¬¥à á«®â ). |
====================================================================== |
==================== ãªæ¨ï 20 - ¨â¥à䥩á MIDI. ==================== |
1510,31 → 1510,35 |
¯®¤äãªæ¨¨ 3 äãªæ¨¨ 21. |
====================================================================== |
========== ãªæ¨ï 24, ¯®¤äãªæ¨ï 4 - ¨§¢«¥çì «®â®ª ¯à¨¢®¤ ¤¨áª . ============ |
======= ãªæ¨ï 24, ¯®¤äãªæ¨ï 4 - ¨§¢«¥çì «®â®ª ¯à¨¢®¤ ¤¨áª . ====== |
====================================================================== |
à ¬¥âàë: |
* eax = 24 - ®¬¥à äãªæ¨¨ |
* ebx = 4 - ®¬¥à ¯®¤äãªæ¨¨ |
* ecx = ®¬¥à CD/DVD-¤¨áª (®â 0=Primary Master ¤® 3=Secondary Slave) |
* ecx = ®¬¥à CD/DVD-¤¨áª |
(®â 0=Primary Master ¤® 3=Secondary Slave) |
®§¢à é ¥¬®¥ § 票¥: |
* ¨ç¥£® ¥ ¢®§¢à é ¥âáï. |
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï |
¬¥ç ¨ï: |
* ãªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI ãáâனá⢠(CD ¨ DVD). |
* ਠ¨§¢«¥ç¥¨¨ «®âª ¯à®¨§¢®¤¨âáï à §¡«®ª¨à®¢ª àã箣® ã¯à ¢«¥¨ï ¬¥å ¨§¬®¬ «®âª . |
* ਠ¨§¢«¥ç¥¨¨ «®âª ª®¤ ¯à®¨§¢®¤¨â ®ç¨áâªã ªíè ᮮ⢥âáâ¢ãî饣® ãáâனá⢠. |
* ãªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI-ãáâனá⢠(CD ¨ DVD). |
* ਠ¨§¢«¥ç¥¨¨ «®âª ¯à®¨§¢®¤¨âáï à §¡«®ª¨à®¢ª àã箣® ã¯à ¢«¥¨ï |
¬¥å ¨§¬®¬ «®âª . |
* ਠ¨§¢«¥ç¥¨¨ «®âª ª®¤ ¯à®¨§¢®¤¨â ®ç¨áâªã ªíè ᮮ⢥âáâ¢ãî饣® |
ãáâனá⢠. |
* ਬ¥à®¬ ¨á¯®«ì§®¢ ¨ï äãªæ¨¨ ï¥âáï ¯à¨«®¦¥¨¥ CD_tray. |
====================================================================== |
========== ãªæ¨ï 24, ¯®¤äãªæ¨ï 5 - § £à㧨âì «®â®ª ¯à¨¢®¤ ¤¨áª . =========== |
====== ãªæ¨ï 24, ¯®¤äãªæ¨ï 5 - § £à㧨âì «®â®ª ¯à¨¢®¤ ¤¨áª . ===== |
====================================================================== |
à ¬¥âàë: |
* eax = 24 - ®¬¥à äãªæ¨¨ |
* ebx = 5 - ®¬¥à ¯®¤äãªæ¨¨ |
* ecx = ®¬¥à CD/DVD-¤¨áª (®â 0=Primary Master ¤® 3=Secondary Slave) |
* ecx = ®¬¥à CD/DVD-¤¨áª |
(®â 0=Primary Master ¤® 3=Secondary Slave) |
®§¢à é ¥¬®¥ § 票¥: |
* ¨ç¥£® ¥ ¢®§¢à é ¥âáï. |
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï |
¬¥ç ¨ï: |
* ãªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI ãáâனá⢠(CD ¨ DVD) |
* ãªæ¨ï ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¤«ï ATAPI-ãáâனá⢠(CD ¨ DVD). |
* ਬ¥à®¬ ¨á¯®«ì§®¢ ¨ï äãªæ¨¨ ï¥âáï ¯à¨«®¦¥¨¥ CD_tray. |
====================================================================== |
2992,16 → 2996,22 |
¤® ª®æ ¯à®¨£àë¢ ¨ï. |
====================================================================== |
============================ ãªæ¨ï 57 ============================== |
====================== 맮¢ á¥à¢¨á®¢ PCIBIOS ======================== |
======================= ãªæ¨ï 57 - PCI BIOS. ======================= |
====================================================================== |
à ¬¥âàë: |
* eax = 57 |
* ebp = ᮮ⢥âáâ¢ã¥â ॣ¨áâàã al ¯® ᯥæ¨ä¨ª 樨 PCIBIOS |
* ®áâ «ìë¥ à¥£¨áâàë ¯® ᯥæ¨ä¨ª 樨 PCIBIOS |
®§¢à é ¥¬ë¥ § 票ï: |
* eax = 57 - ®¬¥à äãªæ¨¨ |
* ebp ᮮ⢥âáâ¢ã¥â ॣ¨áâàã al ¢ ᯥæ¨ä¨ª 樨 PCI BIOS |
* ®áâ «ìë¥ à¥£¨áâàë - ¯® ᯥæ¨ä¨ª 樨 PCI BIOS |
®§¢à é ¥¬®¥ § 票¥: |
* CF ¥ ®¯à¥¤¥«ñ |
* ®áâ «ìë¥ à¥£¨áâàë ¯® ᯥæ¨ä¨ª 樨 PCIBIOS |
* ®áâ «ìë¥ à¥£¨áâàë - ¯® ᯥæ¨ä¨ª 樨 PCI BIOS |
¬¥ç ¨ï: |
* ®£¨å १ã«ìâ ⮢ í⮩ äãªæ¨¨ ¬®¦® â ª¦¥ ¤®¡¨âìáï ¢ë§®¢®¬ |
ᮮ⢥âáâ¢ãîé¨å ¯®¤äãªæ¨© äãªæ¨¨ 62. |
* ãªæ¨ï ¢ë§ë¢ ¥â à áè¨à¥¨¥ PCI32 BIOS, ¤®ªã¬¥â¨à®¢ ®¥, |
¯à¨¬¥à, ¢ http://alpha1.dyns.net/files/PCI/bios21.pdf. |
* ᫨ BIOS ¥ ¯®¤¤¥à¦¨¢ ¥â íâ® à áè¨à¥¨¥, ¯®¢¥¤¥¨¥ äãªæ¨¨ |
í¬ã«¨àã¥âáï (ç¥à¥§ «®£¨ ¯®¤äãªæ¨© äãªæ¨¨ 62 ०¨¬ ï¤à ). |
====================================================================== |
============== ãªæ¨ï 58 - à ¡®â á ä ©«®¢®© á¨á⥬®©. ============== |
4201,10 → 4211,11 |
«ï CD-¯à¨¢®¤®¢ ¢ á¢ï§¨ á ¯¯ à â묨 ®£à ¨ç¥¨ï¬¨ ¤®áâã¯ë |
⮫쪮 ¯®¤äãªæ¨¨ 0,1,5 ¨ 7, ¢ë§®¢ ¤àã£¨å ¯®¤äãªæ¨© § ¢¥àè¨âáï |
®è¨¡ª®© á ª®¤®¬ 2. |
ਠ¯¥à¢®¬ ®¡à 饨¨ ¯®¤äãªæ¨© 0,1,5,7 ª ãáâனá⢠¬ ATAPI (CD ¨ DVD) |
¯à®¨§¢®¤¨âáï ¡«®ª¨à®¢ª àã箣® ã¯à ¢«¥¨ï ¬¥å ¨§¬®¬ «®âª . â® á¢ï§ ® |
á «£®à¨â¬®¬ ªíè¨à®¢ ¨ï ¤ ëå ¯®«ãç¥ëå ®â ¯à¨¢®¤ . §¡«®ª¨à®¢ª |
¯à®¨§¢®¤¨âáï ®¡à 饨¥¬ äãªæ¨¨ 24.4 ª ᮮ⢥âáâ¢ãî饬ã ãáâனáâ¢ã. |
ਠ¯¥à¢®¬ ®¡à 饨¨ ¯®¤äãªæ¨© 0,1,5,7 ª ãáâனá⢠¬ ATAPI |
(CD ¨ DVD) ¯à®¨§¢®¤¨âáï ¡«®ª¨à®¢ª àã箣® ã¯à ¢«¥¨ï ¬¥å ¨§¬®¬ |
«®âª . â® á¢ï§ ® á ªíè¨à®¢ ¨¥¬ ¤ ëå, ¯®«ãç¥ëå ®â ¯à¨¢®¤ . |
§¡«®ª¨à®¢ª ®áãé¥á⢫ï¥âáï ¯à¨ ®¡à 饨¨ ¯®¤äãªæ¨¨ 4 äãªæ¨¨ 24 |
ª ᮮ⢥âáâ¢ãî饬ã ãáâனáâ¢ã. |
====================================================================== |
= ãªæ¨ï 70, ¯®¤äãªæ¨ï 0 - ç⥨¥ ä ©« á ¯®¤¤¥à¦ª®© ¤«¨ëå ¨¬ñ. = |
/kernel/trunk/docs/sysfuncs.txt |
---|
1,4 → 1,4 |
SYSTEM FUNCTIONS of OS Kolibri 0.7.0.0 |
SYSTEM FUNCTIONS of OS Kolibri 0.7.1.0 |
Number of the function is located in the register eax. |
The call of the system function is executed by "int 0x40" command. |
22,13 → 22,13 |
* Y=1 - only define window area, draw nothing |
* Y=2 - type II - variable-size window |
* Y=3 - skinned window |
* Y=4 - skinned window with fixed sizes |
* other possible values (from 4 up to 15) are reserved, |
* Y=4 - skinned fixed-size window |
* other possible values (from 5 up to 15) are reserved, |
function call with such Y is ignored |
* RR, GG, BB = accordingly red, green, blue components of a color |
of the working area of the window (are ignored for style Y=2) |
* X = DCBA (bits) |
* A = 1 - window has caption; for style Y=3 caption string |
* A = 1 - window has caption; for styles Y=3,4 caption string |
must be passed in edi, for other styles use |
subfunction 1 of function 71 |
* B = 1 - coordinates of all graphics primitives are relative to |
51,11 → 51,11 |
* Position and sizes of the window are installed by the first |
call of this function and are ignored at subsequent; to change |
position and/or sizes of already created window use function 67. |
* For windows with style Y=3 and caption (A=1) caption string is set |
by the first call of this function and is ignored at subsequent |
(strictly speaking, is ignored after a call to subfunction 2 |
of function 12 - end redraw); to change caption of already created |
window use subfunction 1 of function 71. |
* For windows with styles Y=3,4 and caption (A=1) caption string |
is set by the first call of this function and is ignored |
at subsequent (strictly speaking, is ignored after a call to |
subfunction 2 of function 12 - end redraw); to change caption of |
already created window use subfunction 1 of function 71. |
* If the window has appropriate styles, position and/or sizes can be |
changed by user. Current position and sizes can be obtained |
by function 9. |
868,10 → 868,10 |
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.0.0 kernel: |
For Kolibri 0.7.1.0 kernel: |
db 0,7,0,0 |
db 2 |
dd 533 |
dd 638 |
====================================================================== |
======= Function 18, subfunction 14 - wait for screen retrace. ======= |
978,21 → 978,20 |
Returned value: |
* function does not return value |
-------- Subsubfunction 5 - emulation mouse button. -------- |
-------- Subsubfunction 5 - simulate state of mouse buttons. --------- |
Parameters: |
* eax = 18 - function number |
* ebx = 19 - subfunction number |
* ecx = 5 - subsubfunction number |
* edx = information about the emulated mouse buttons: |
* edx = information about emulated state of mouse buttons: |
(same as return value in subfunction 2 of function 37) |
* bit 0 is set = left button is pressed |
* bit 1 is set = right button is pressed |
* bit 2 is set = middle button is pressed |
* bit 3 is set = 4th button is pressed |
* bit 4 is set = 5th button is pressed |
* other bits are cleared |
Returned value: |
* function does not return value |
Remarks: |
* It is recommended to set speed of the mouse (in subsubfunction 1) |
from 1 up to 9. The installed value is not inspected by the kernel |
1035,33 → 1034,37 |
(reserved) |
====================================================================== |
====================== Function 18, subfunction 21 ===================== |
=== Get number of the slot of process/thread at his identificator ==== |
===================== Function 18, subfunction 21 ==================== |
======== Get slot number of process/thread by the identifier. ======== |
====================================================================== |
Parameters: |
* eax = 18 - function number |
* ebx = 21 - subfunction number |
* ecx = PID/TID (process/thread identificator) |
* ecx = identifer of process/thread (PID/TID) |
Returned value: |
* eax = number of the slot of process/thread, if it really present |
or 0, if PID/TID is false |
* eax = 0 - error (invalid identifier) |
* otherwise eax = slot number |
====================================================================== |
==================== Function 18, subfunction 22 ===================== |
============= Minimize/restore window of process/thread ============== |
===================== Function 18, subfunction 22 ==================== |
============== Operations with window of another thread. ============= |
====================================================================== |
Parameters: |
* eax = 18 - function number |
* ebx = 22 - subfunction number |
* ecx = Operation type |
0 - minimize (roll to panel) at number on slot thread |
1 - minimize window at PID/TID identificator |
2 - restore minimized window at slot number of thread |
3 - restore minimized window at PID/TID identificator |
* edx = Operation argument (Number of slot or a PID/TID) |
* ecx = operation type: |
* 0 = minimize window of the thread with given slot number |
* 1 = minimize window of the thread with given identifier |
* 2 = restore window of the thread with given slot number |
* 3 = restore window of the thread with given identifier |
* edx = parameter (slot number or PID/TID) |
Returned value: |
* eax = 0 - successfully ending |
eax = -1 - error |
* eax = 0 - success |
* eax = -1 - error (invalid identifier) |
Remarks: |
* The thread can minimize its window with subfunction 10. |
* One can restore and activate window simultaneously with |
subfunction 3 (which requires slot number). |
====================================================================== |
==================== Function 20 - MIDI interface. =================== |
1491,29 → 1494,33 |
subfunction 3 of function 21. |
====================================================================== |
================ Function 24, subfunction 4 - eject tray of disk drive. ============== |
======= Function 24, subfunction 4 - eject tray of disk drive. ======= |
====================================================================== |
Parameters: |
* eax = 24 - function number |
* ebx = 4 - subfunction number |
* ecx = position of CD/DVD-drive (from 0=Primary Master to 3=Secondary Slave) |
* ecx = position of CD/DVD-drive |
(from 0=Primary Master to 3=Secondary Slave) |
Returned value: |
* Nothing comes back. |
* function does not return value |
Remarks: |
* The function is supported only for ATAPI devices (CD and DVD). |
* At extract of a tray is made deblocking of handle mechanism of a tray. |
* At extract of a tray the code makes clearing the cache of the appropriate device. |
* When the tray is being ejected, |
manual control of tray is unlocked. |
* When the tray is being ejected, the code clears the cache for |
corresponding device. |
* An example of usage of the function is the application CD_tray. |
====================================================================== |
============== Function 24, subfunction 5 - load tray of disk drive. ================= |
======== Function 24, subfunction 5 - load tray of disk drive. ======= |
====================================================================== |
Parameters: |
* eax = 24 - function number |
* ebx = 5 - subfunction number |
* ecx = position of CD/DVD-drive (from 0=Primary Master to 3=Secondary Slave) |
* ecx = position of CD/DVD-drive |
(from 0=Primary Master to 3=Secondary Slave) |
Returned value: |
* Nothing comes back. |
* function does not return value |
Remarks: |
* The function is supported only for ATAPI devices (CD and DVD). |
* An example of usage of the function is the application CD_tray. |
2964,6 → 2971,24 |
of play. |
====================================================================== |
======================= Function 57 - PCI BIOS. ====================== |
====================================================================== |
Parameters: |
* eax = 57 - function number |
* ebp corresponds to al in PCI BIOS specification |
* other registers are set according to PCI BIOS specification |
Returned value: |
* CF is undefined |
* other registers are set according to PCI BIOS specification |
Remarks: |
* Many effects of this function can be also achieved with |
corresponding subfunctions of function 62. |
* The function calls PCI32 BIOS extension, documented e.g. in |
http://alpha1.dyns.net/files/PCI/bios21.pdf. |
* If BIOS does not support this extension, its behavior is emulated |
(through kernel-mode analogues of subfunctions of function 62). |
====================================================================== |
================ Function 58 - work with file system. ================ |
====================================================================== |
Parameters: |
4148,10 → 4173,10 |
For CD-drives due to hardware limitations only subfunctions |
0,1,5 and 7 are available, other subfunctions return error |
with code 2. |
At the first call subfunctions 0,1,5,7 to devices ATAPI (CD and DVD) the locking |
of handle mechanism of a tray is made. It is connected to algorithm of caching |
given obtained from a drive. Deblocking is made by call function 24.4 |
to the appropriate device. |
At the first call of subfunctions 0,1,5,7 to ATAPI devices |
(CD and DVD) the manual control of tray is locked due to caching |
drive data. Unlocking is made when subfunction 4 of function 24 |
is called for corresponding device. |
====================================================================== |
=== Function 70, subfunction 0 - read file with long names support. == |
/kernel/trunk/hid/keyboard.inc |
---|
277,6 → 277,8 |
;.........................Part1 Start.......Code by Rus, optimize by Ghost................................... |
test [kb_state], VKEY_NUMLOCK |
jz .dowrite |
cmp cl, 0xE0 |
jz .dowrite |
cmp ch, 55 |
jnz @f |
/kernel/trunk/kernel.asm |
---|
113,7 → 113,7 |
org 0x0 |
jmp start_of_code |
version db 'Kolibri OS version 0.7.0.0 ',13,10,13,10,0 |
version db 'Kolibri OS version 0.7.1.0 ',13,10,13,10,0 |
include "boot/bootstr.inc" ; language-independent boot messages |
include "boot/preboot.inc" |
2348,7 → 2348,7 |
iglobal |
version_inf: |
db 0,7,0,0 ; version 0.7.0.0 |
db 0,7,1,0 ; version 0.7.1.0 |
db UID_KOLIBRI |
dd __REV__ |
version_end: |
/kernel/trunk/video/cursors.inc |
---|
504,6 → 504,8 |
mov edi, [cur_saved_base] |
mov edx, [cur_saved_h] |
mov ebx, [cur_saved_interl] |
test edx, edx |
jz .ret |
mov esi, cur_saved_data |
@@: |
513,6 → 515,7 |
add edi, ebx |
dec edx |
jnz @B |
.ret: |
ret |
endp |
525,6 → 528,8 |
mov edi, [cur_saved_base] |
mov edx, [cur_saved_h] |
mov ebx, [cur_saved_interl] |
test edx, edx |
jz .ret |
mov esi, cur_saved_data |
@@: |
533,6 → 538,7 |
add edi, ebx |
dec edx |
jnz @B |
.ret: |
ret |
endp |