Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
7707 Alex2003 1
2
xmlns:o="urn:schemas-microsoft-com:office:office"
3
xmlns:w="urn:schemas-microsoft-com:office:word"
4
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
5
xmlns="http://www.w3.org/TR/REC-html40">
6
 
7
8
9
10
11
12
13
31
32
33
332
417
447
448
 
449
450
 
451
452
 
453

Back to

456
main

457
 
458

 

461
 
462

Function 18

465
and its sub-functions (1-11, 13-25)

466
 
467

 

470
 
471

473
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
474
EN-US'>Subfunction
475
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
476
EN-US'> 1 - make the lowest flow window

477
 
478

Options:

481
 
482

  * eax =

485
18 - function number

486
 
487

  * ebx = 1

490
- number of subfunction

491
 
492

  * ecx =

495
stream slot number

496
 
497

Return value:

500
 
501

  * function does not return value

504
 
505

 

508
 
509

Constants for registers:

512
 
513

  eax -

516
SF_SYSTEM (18)

517
 
518

  ebx -

521
SSF_UNFOCUS_WINDOW (1)

522
 
523

 

526
 
527

529
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
530
EN-US'>Subfunction
531
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
532
EN-US'> 2 - complete process / thread by slot

533
 
534

Options:

537
 
538

  * eax =

541
18 - function number

542
 
543

  * ebx = 2

546
- subfunction number

547
 
548

  * ecx =

551
process / thread slot number

552
 
553

Return value:

556
 
557

  * function does not return value

560
 
561

Remarks:

564
 
565

  * You cannot

568
terminate the OS / IDLE OS thread (slot number 1), you
569
can terminate any normal thread process.

570
 
571

  * See also

574
class=SpellE>subfunction 18 - termination of a process / thread with a
575
given identifier.

576
 
577

 

580
 
581

Constants for registers:

584
 
585

  eax -

588
SF_SYSTEM (18)

589
 
590

  ebx -

593
SSF_TERMINATE_THREAD (2)

594
 
595

 

598
 
599

601
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
602
EN-US'>Subfunction
603
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
604
EN-US'> 3 - make the specified stream window active

605
 
606

Options:

609
 
610

  * eax =

613
18 - function number

614
 
615

  * ebx = 3

618
- subfunction number

619
 
620

  * ecx =

623
stream slot number

624
 
625

Return value:

628
 
629

  * function does not return value

632
 
633

Remarks:

636
 
637

  * When specifying a

640
correct, but non-existent slot, a window is activated.

641
 
642

  * You can find out

645
which window is active by calling subfunction 7.

646
 
647

 

650
 
651

Constants for registers:

654
 
655

  eax -

658
SF_SYSTEM (18)

659
 
660

  ebx -

663
SSF_FOCUS_WINDOW (3)

664
 
665

 

668
 
669

671
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
672
EN-US'>Subfunction
673
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
674
EN-US'> 4 - get the empty clock count per second

675
 
676

Under the empty cycles refers to the time at which the processor is idle

679
while waiting for an interrupt (in the hlt
680
instruction).

681
 
682

Options:

685
 
686

  * eax =

689
18 - function number

690
 
691

  * ebx = 4

694
- subfunction number

695
 
696

Return value:

699
 
700

  * eax =

703
empty clock count per second

704
 
705

 

708
 
709

Constants for registers:

712
 
713

  eax -

716
SF_SYSTEM (18)

717
 
718

  ebx -

721
SSF_GET_IDLE_COUNT (4)

722
 
723

 

726
 
727

729
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
730
EN-US'>Subfunction
731
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
732
EN-US'> 5 - get the clock frequency

733
 
734

Options:

737
 
738

  * eax =

741
18 - function number

742
 
743

  * ebx = 5

746
- subfunction number

747
 
748

Return value:

751
 
752

  * eax =

755
clock frequency (modulo 2 ^ 32 clock cycles = 4 GHz)

756
 
757

 

760
 
761

Constants for registers:

764
 
765

  eax -

768
SF_SYSTEM (18)

769
 
770

  ebx -

773
SSF_GET_CPU_FREQUENCY (5)

774
 
775

 

778
 
779

781
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
782
EN-US'>Subfunction
783
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
784
EN-US'> 6 - save ramdisk to a file on the hard disk
785
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>

786
 
787

Options:

790
 
791

  * eax =

794
18 - function number

795
 
796

  * ebx = 6

799
- subfunction number

800
 
801

* ecx = pointer to a

804
string with the full file name (for example, "/hd0/1/kolibri/
805
class=SpellE>kolibri.img")

806
 
807

Return value:

810
 
811

  * eax = 0

814
- successful

815
 
816

  * otherwise eax

819
= file system error code

820
 
821

Remarks:

824
 
825

  * All folders in the

828
specified path must exist, otherwise the value 5 will be returned, "
829
class=GramE>file not found".

830
 
831

 

834
 
835

Constants for registers:

838
 
839

  eax -

842
SF_SYSTEM (18)

843
 
844

  ebx -

847
SSF_RD_TO_HDD (6)

848
 
849

 

852
 
853

855
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
856
EN-US'>Subfunction
857
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
858
EN-US'> 7 - get the number of the active window

859
 
860

Options:

863
 
864

  * eax =

867
18 - function number

868
 
869

  * ebx = 7

872
- subfunction number

873
 
874

Return value:

877
 
878

  * eax =

881
number of the active window (the number of the stream slot, the window of which

882
 
883

    actively)

886
 
887

Remarks:

890
 
891

  * The active window

894
is at the top of the window stack and receives messages about all input from
895
the keyboard.

896
 
897

  * You can make the

900
window active by calling subfunction 3.

901
 
902

 

905
 
906

Constants for registers:

909
 
910

  eax -

913
SF_SYSTEM (18)

914
 
915

  ebx -

918
SSF_GET_ACTIVE_WINDOW (7)

919
 
920

 

923
 
924

926
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
927
EN-US'>Subfunction
928
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
929
EN-US'> 8 - disable / enable speaker sound

930
 
931

When sound is muted, calls to subfunction 55

934
to function 55 are ignored.

935
 
936

When on, it is sent to the built-in speaker.

939
 
940

 

943
 
944

Nested

947
function 1 - get state

948
 
949

Options:

952
 
953

  * eax =

956
18 - function number

957
 
958

  * ebx = 8

961
- number of subfunction

962
 
963

  * ecx = 1

966
- number of sub-function

967
 
968

Return value:

971
 
972

  * eax = 0

975
- the sound of the speaker is allowed; 1 - not allowed

976
 
977

 

980
 
981

Nested

984
function 2 - switch state

985
 
986

Toggles enable / disable states.

989
 
990

Options:

993
 
994

  * eax =

997
18 - function number

998
 
999

  * ebx = 8

1002
- number of subfunction

1003
 
1004

  * ecx = 2

1007
- the number of the sub-function

1008
 
1009

Return value:

1012
 
1013

  * function does not return value

1016
 
1017

 

1020
 
1021

Constants for registers:

1024
 
1025

  eax -

1028
SF_SYSTEM (18)

1029
 
1030

  ebx -

1033
SSF_SPEAKER (8)

1034
 
1035

  ecx -

1038
SSSF_GET_STATE (1), SSSF_TOGGLE (2)

1039
 
1040

 

1043
 
1044

1046
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1047
EN-US'>Subfunction
1048
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1049
EN-US'> 9 - system shutdown with a parameter
1050
style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1051
EN-US'>

1052
 
1053

Options:

1056
 
1057

  * eax =

1060
18 - function number

1061
 
1062

  * ebx = 9

1065
- subfunction number

1066
 
1067

  * ecx =

1070
parameter:

1071
 
1072

    * 2 = turn off computer

1075
 
1076

    * 3 = restart computer

1079
 
1080

    * 4 = restart kernel from kernel.mnt

1083
file on ramdisk

1084
 
1085

Return value:

1088
 
1089

  * if ecx

1092
is incorrect, the registers do not change (ie, 
1093
class=SpellE>eax = 18)

1094
 
1095

  * a correct call always returns a

1098
sign of success eax = 0

1099
 
1100

Remarks:

1103
 
1104

  * Do not rely on the

1107
return value for an incorrect call, it may change in
1108
future versions of the kernel.

1109
 
1110

 

1113
 
1114

Constants for registers:

1117
 
1118

  eax -

1121
SF_SYSTEM (18)

1122
 
1123

  ebx -

1126
SSF_SHUTDOWN (9)

1127
 
1128

 

1131
 
1132

1134
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1135
EN-US'>Subfunction
1136
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1137
EN-US'> 10 - minimize active window
1138
style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>

1139
 
1140

Minimizes the active window.

1143
 
1144

Options:

1147
 
1148

  * eax =

1151
18 - function number

1152
 
1153

  * ebx =

1156
10 - subfunction number

1157
 
1158

Return value:

1161
 
1162

  * function does not return value

1165
 
1166

Remarks:

1169
 
1170

  * The minimized

1173
window in terms of function 9 saves position and size.

1174
 
1175

  * Restoration of the

1178
application window occurs when activating the subfunction
1179
3.

1180
 
1181

  * Usually there is no

1184
need to explicitly minimize / maximize your window: the system minimizes the
1185
window when you press the minimization button (which is automatically
1186
determined for windows with a skin by function 0, for windows without a skin it
1187
can be defined by function 8), recovery by the @taskbar application.

1188
 
1189

 

1192
 
1193

Constants for registers:

1196
 
1197

  eax -

1200
SF_SYSTEM (18)

1201
 
1202

  ebx -

1205
SSF_MINIMIZE_WINDOW (10)

1206
 
1207

 

1210
 
1211

1213
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1214
EN-US'>Subfunction
1215
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1216
EN-US'> 11 - get information about the disk subsystem

1217
 
1218

Options:

1221
 
1222

  * eax =

1225
18 - function number

1226
 
1227

  * ebx =

1230
11 - subfunction number

1231
 
1232

  * ecx =

1235
table type:

1236
 
1237

    * 1 = short version, 16 bytes

1240
 
1241

  * edx =

1244
pointer to buffer (in application) for a table

1245
 
1246

Return value:

1249
 
1250

  * function does not return value

1253
 
1254

Table format: short version:

1257
 
1258

  * +0: byte: information about floppy disk drives, AAAABBBB,

1261
where AAAA specifies the type of the first floppy disk drive, BBBB - the second
1262
one according to the following list:

1263
 
1264

    * 0 = no drive

1267
 
1268

    * 1 = 360Kb, 5.25 ''

1271
 
1272

    * 2 = 1.2Mb, 5.25 ''

1275
 
1276

    * 3 = 720Kb, 3.5 "

1279
 
1280

    * 4 = 1.44Mb, 3.5 "

1283
 
1284

    * 5 = 2.88Mb, 3.5 '' (such diskettes are not

1287
used now). 

1288
 
1289

For example, for a standard configuration of one 1.44 drive, there will

1292
be 40h here, and for the case of 1.2Mb for A: and 1.44Mb for B: the value is
1293
24h.

1294
 
1295

 

1298
 
1299

First IDE controller

1302
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>:

1303
 
1304

  * +1: byte: information about hard drives and CD drives,

1307
AABBCCDD,

1308
 
1309

    where AA corresponds to

1312
the controller IDE0, ..., DD - IDE3:

1313
 
1314

    * 0 = no device

1317
 
1318

    * 1 = hard disk

1321
 
1322

    * 2 = CD drive

1325
 
1326

    For example, in the case of HD on IDE0 and CD on

1329
IDE2 here it will be 48h.

1330
 
1331

  * +2: 4 db: the number of

1334
partitions found on hard drives with

1335
 
1336

    respectively IDE0, ...,

1339
IDE3.

1340
 
1341

 

1344
 
1345

Second IDE controller:

1348
 
1349

  * +6: byte: information about hard drives and CD drives,

1352
AABBCCDD

1353
 
1354

    where AA corresponds to

1357
the IDE4 controller, ..., DD - IDE7:

1358
 
1359

    * 0 = no device

1362
 
1363

    * 1 = hard disk

1366
 
1367

    * 2 = CD drive

1370
 
1371

    For example, in the case of HD on IDE4 and CD on

1374
IDE6 here it will be 48h.

1375
 
1376

  * +7: 4 db: the number of

1379
partitions found on hard drives with

1380
 
1381

    respectively IDE4, ...,

1384
IDE7.

1385
 
1386

 

1389
 
1390

Third IDE Controller:

1393
 
1394

  * +11: byte: information about hard drives and CD drives,

1397
AABBCCDD

1398
 
1399

    where AA corresponds to

1402
the IDE8 controller, ..., DD - IDE11:

1403
 
1404

    * 0 = no device

1407
 
1408

    * 1 = hard disk

1411
 
1412

    * 2 = CD drive

1415
 
1416

    For example, in the case of HD on IDE8 and CD on

1419
IDE10 here it will be 48h.

1420
 
1421

  * +12: 4 db: the number of

1424
partitions found on hard drives with

1425
 
1426

    respectively IDE8, ...,

1429
IDE11.

1430
 
1431

If there is no hard disk on IDEx, the

1434
corresponding byte is zero, and if there is, it shows the number of recognized
1435
partitions that may not be (if the media is not formatted or if the file system
1436
is not supported). In the current kernel version for hard disks, only FAT12 /
1437
16/32, NTFS, ext2 / 3/4 and XFS are supported.

1438
 
1439

Remarks:

1442
 
1443

  * The table can be

1446
used to obtain information. More about the
1447
supported devices.

1448
 
1449

 

1452
 
1453

Constants for registers:

1456
 
1457

  eax -

1460
SF_SYSTEM (18)

1461
 
1462

  ebx -

1465
SSF_INFO_DISC_SYS (11)

1466
 
1467

 

1470
 
1471

1473
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1474
EN-US'>Subfunction
1475
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1476
EN-US'> 13 - get the kernel version

1477
 
1478

Options:

1481
 
1482

  * eax =

1485
18 - function number

1486
 
1487

  * ebx =

1490
13 - number of subfunction

1491
 
1492

  * ecx =

1495
pointer to the buffer (at least 16 bytes) where the information will be placed

1496
 
1497

Return value:

1500
 
1501

  * function does not return value

1504
 
1505

Buffer structure:

1508
 
1509

db

1512
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'> a,
1513
b, c, d for version a.b.c.d

1514
 
1515

db

1518
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'> 0:
1519
reserved

1520
 
1521

dd

1524
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>
1525
REV - number of the kernel svn revision

1526
 
1527

For Kolibri kernel 0.7.7.0+:

1530
 
1531

db

1534
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>
1535
0,7,0

1536
 
1537

db

1540
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'> 0

1541
 
1542

dd

1545
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>
1546
1675

1547
 
1548

 

1551
 
1552

Constants for registers:

1555
 
1556

  eax -

1559
SF_SYSTEM (18)

1560
 
1561

  ebx -

1564
SSF_KERNEL_VERSION (13)

1565
 
1566

 

1569
 
1570

1572
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1573
EN-US'>Subfunction
1574
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1575
EN-US'> 14 - wait for the start of the return stroke of the monitor sweep

1576
 
1577

Options:

1580
 
1581

  * eax =

1584
18 - function number

1585
 
1586

  * ebx =

1589
14 - number of subfunction

1590
 
1591

Return value:

1594
 
1595

  * eax = 0

1598
as a sign of success

1599
 
1600

Remarks:

1603
 
1604

  * The function is

1607
intended exclusively for active high-performance graphics applications; used
1608
for smooth graphics output.

1609
 
1610

 

1613
 
1614

Constants for registers:

1617
 
1618

  eax -

1621
SF_SYSTEM (18)

1622
 
1623

  ebx -

1626
SSF_WAIT_RETRACE (14)

1627
 
1628

 

1631
 
1632

1634
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1635
EN-US'>Subfunction
1636
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1637
EN-US'> 15 - place the mouse cursor in the center of the screen

1638
 
1639

Options:

1642
 
1643

  * eax =

1646
18 - function number

1647
 
1648

  * ebx =

1651
15 - subfunction number

1652
 
1653

Return value:

1656
 
1657

  * eax = 0

1660
as a sign of success

1661
 
1662

 

1665
 
1666

Constants for registers:

1669
 
1670

  eax -

1673
SF_SYSTEM (18)

1674
 
1675

  ebx -

1678
SSF_CURSOR_CENTER (15)

1679
 
1680

 

1683
 
1684

1686
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1687
EN-US'>Subfunction
1688
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1689
EN-US'> 16 - get the size of free RAM

1690
 
1691

Options:

1694
 
1695

  * eax =

1698
18 - function number

1699
 
1700

  * ebx =

1703
16 - number of subfunction

1704
 
1705

Return value:

1708
 
1709

  * eax =

1712
free memory in kilobytes

1713
 
1714

 

1717
 
1718

Constants for registers:

1721
 
1722

  eax -

1725
SF_SYSTEM (18)

1726
 
1727

  ebx -

1730
SSF_GET_FREE_RAM (16)

1731
 
1732

 

1735
 
1736

1738
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1739
EN-US'>Subfunction
1740
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1741
EN-US'> 17 - get the size of available RAM

1742
 
1743

Options:

1746
 
1747

  * eax =

1750
18 - function number

1751
 
1752

  * ebx =

1755
17 - subfunction number

1756
 
1757

Return value:

1760
 
1761

  * eax =

1764
total amount of available memory in kilobytes

1765
 
1766

 

1769
 
1770

Constants for registers:

1773
 
1774

  eax -

1777
SF_SYSTEM (18)

1778
 
1779

  ebx -

1782
SSF_GET_TOTAL_RAM (17)

1783
 
1784

 

1787
 
1788

1790
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1791
EN-US'>Subfunction
1792
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1793
EN-US'> 18 - terminate the process / thread by identifier

1794
 
1795

Options:

1798
 
1799

   * eax =

1802
18 - function number

1803
 
1804

   * ebx =

1807
18 - subfunction number

1808
 
1809

   * ecx =

1812
process / thread id (PID / TID)

1813
 
1814

Return value:

1817
 
1818

   * eax =

1821
 
1822
 
1823

   * eax =

1826
-1 - error (process not found or is system)

1827
 
1828

Remarks:

1831
 
1832

   * You cannot

1835
terminate the OS / IDLE OS thread (slot number 1), you
1836
can terminate any normal thread / process.

1837
 
1838

   * See also

1841
class=SpellE>subfunction 2 - completion of a process / thread at a given
1842
slot.

1843
 
1844

 

1847
 
1848

Constants for registers:

1851
 
1852

   eax -

1855
SF_SYSTEM (18)

1856
 
1857

   ebx -

1860
SSF_TERMINATE_THREAD_ID (18)

1861
 
1862

 

1865
 
1866

1868
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1869
EN-US'>Subfunction
1870
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
1871
EN-US'> 19 - get / set mouse settings

1872
 
1873

 

1876
 
1877

Nested

1880
class=SpellE>subfunction 0 - get mouse speed

1881
 
1882

Options:

1885
 
1886

  * eax =

1889
18 - function number

1890
 
1891

  * ebx =

1894
19 - subfunction number

1895
 
1896

  * ecx = 0

1899
- number of sub-function

1900
 
1901

Return value:

1904
 
1905

  * eax =

1908
current speed divider

1909
 
1910

 

1913
 
1914

Nested

1917
class=SpellE>subfunction 1 - set the speed of the mouse

1918
 
1919

Options:

1922
 
1923

  * eax =

1926
18 - function number

1927
 
1928

  * ebx =

1931
19 - subfunction number

1932
 
1933

  * ecx = 1

1936
- number of sub-function

1937
 
1938

  * edx =

1941
new speed divider value

1942
 
1943

Return value:

1946
 
1947

  * function does not return value

1950
 
1951

Note: recommended speed divider =

1954
4

1955
 
1956

 

1959
 
1960

Nested

1963
class=SpellE>subfunction 2 - get mouse sensitivity

1964
 
1965

Options:

1968
 
1969

  * eax =

1972
18 - function number

1973
 
1974

  * ebx =

1977
19 - subfunction number

1978
 
1979

  * ecx = 2

1982
- the number of the sub-function

1983
 
1984

Return value:

1987
 
1988

  * eax =

1991
current sensitivity coefficient

1992
 
1993

 

1996
 
1997

Nested

2000
class=SpellE>subfunction 3 - set mouse sensitivity

2001
 
2002

Options:

2005
 
2006

  * eax =

2009
18 - function number

2010
 
2011

  * ebx =

2014
19 - subfunction number

2015
 
2016

  * ecx = 3

2019
- number of sub-function

2020
 
2021

  * edx =

2024
new sensitivity value

2025
 
2026

Return value:

2029
 
2030

  * function does not return value

2033
 
2034

Note: recommended sensitivity

2037
coefficient = 3

2038
 
2039

 

2042
 
2043

Nested

2046
class=SpellE>subfunction 4 - set the position of the mouse cursor

2047
 
2048

Options:

2051
 
2052

  * eax =

2055
18 - function number

2056
 
2057

  * ebx =

2060
19 - subfunction number

2061
 
2062

  * ecx = 4

2065
- number of sub-function

2066
 
2067

  * edx =

2070
[x-coordinate] * 65536 + [y-coordinate]

2071
 
2072

Return value:

2075
 
2076

  * function does not return value

2079
 
2080

 

2083
 
2084

Nested

2087
class=SpellE>subfunction 5 - simulate mouse state

2088
 
2089

Options:

2092
 
2093

  * eax =

2096
18 - function number

2097
 
2098

  * ebx =

2101
19 - subfunction number

2102
 
2103

  * ecx = 5

2106
- number of sub-function

2107
 
2108

  * edx =

2111
information about the emulated state of the mouse buttons: (corresponds to the
2112
return value of the sub-function 2 functions 37)

2113
 
2114

    * bit 0 set = left button pressed

2117
 
2118

    * bit 1 set = right button pressed

2121
 
2122

    * bit 2 set = middle button pressed

2125
 
2126

    * bit 3 set = 4th button pressed

2129
 
2130

    * bit 4 set = 5th button pressed

2133
 
2134

Return value:

2137
 
2138

  * function does not return value

2141
 
2142

 

2145
 
2146

Nested

2149
class=SpellE>subfunction 6 - get double click delay

2150
 
2151

Options:

2154
 
2155

  * eax =

2158
18 - function number

2159
 
2160

  * ebx =

2163
19 - subfunction number

2164
 
2165

  * ecx = 6

2168
- number of the sub-function

2169
 
2170

Return value:

2173
 
2174

  * eax =

2177
current double click delay (100 = second)

2178
 
2179

 

2182
 
2183

Nested

2186
class=SpellE>subfunction 7 - set double click delay

2187
 
2188

Options:

2191
 
2192

  * eax =

2195
18 - function number

2196
 
2197

  * ebx =

2200
19 - subfunction number

2201
 
2202

  * ecx = 7

2205
- number of sub-function

2206
 
2207

  * dl = double click delay value

2210
(100 = second)

2211
 
2212

Return value:

2215
 
2216

  * function does not return value

2219
 
2220

Note: mouse settings can be

2223
adjusted in the mouse_cfg application.

2224
 
2225

 

2228
 
2229

Constants for registers:

2232
 
2233

  eax -

2236
SF_SYSTEM (18)

2237
 
2238

  ebx -

2241
SSF_MOUSE_SETTINGS (19)

2242
 
2243

  ecx -

2246
SSSF_GET_SPEED (0), SSSF_SET_SPEED (1), SSSF_GET_SPEEDUP (2),

2247
 
2248

    SSSF_SET_SPEEDUP (3), SSSF_SET_POS (4),

2251
SSSF_SET_BUTTON (5),

2252
 
2253

    SSSF_GET_DOUBLE_CLICK_DELAY (6),

2256
SSSF_SET_DOUBLE_CLICK_DELAY (7)

2257
 
2258

 

2261
 
2262

2264
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2265
EN-US'>Subfunction
2266
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2267
EN-US'> 20 - get information about RAM

2268
 
2269

Options:

2272
 
2273

  * eax =

2276
18 - function number

2277
 
2278

  * ebx =

2281
20 - subfunction number

2282
 
2283

  * ecx =

2286
pointer to buffer for information (36 bytes)

2287
 
2288

Return value:

2291
 
2292

  * eax =

2295
total amount of available RAM in bytes or -1 in case of error

2296
 
2297

  * the buffer pointed to by

2300
class=SpellE>ecx contains the following information:

2301
 
2302

    * + 0: dword: total

2305
size of available RAM in pages

2306
 
2307

    * +4: dword: size of

2310
free RAM in pages

2311
 
2312

    * +8: dword: the

2315
number of page errors (#PF exceptions) in applications

2316
 
2317

    * +12: dword: kernel

2320
heap size in bytes

2321
 
2322

    * +16: dword: amount

2325
of free memory in the kernel heap in bytes

2326
 
2327

    * +20: dword: total

2330
number of memory blocks in the kernel heap

2331
 
2332

    * +24: dword: the

2335
number of free memory blocks in the kernel heap

2336
 
2337

    * +28: dword: size of

2340
the largest free block in the kernel heap

2341
 
2342

                 (

2345
class=GramE>reserved)

2346
 
2347

    * +32: dword: size of

2350
the largest allocated block in the kernel heap

2351
 
2352

                 (

2355
class=GramE>reserved)

2356
 
2357

 

2360
 
2361

Constants for registers:

2364
 
2365

  eax -

2368
SF_SYSTEM (18)

2369
 
2370

  ebx -

2373
SSF_GET_RAM_INFO (20)

2374
 
2375

 

2378
 
2379

2381
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2382
EN-US'>Subfunction
2383
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2384
EN-US'> 21 - get the slot number of the process / thread by identifier

2385
 
2386

Options:

2389
 
2390

  * eax =

2393
18 - function number

2394
 
2395

  * ebx =

2398
21 - subfunction number

2399
 
2400

  * ecx =

2403
process / thread id (PID / TID)

2404
 
2405

Return value:

2408
 
2409

  * eax = 0

2412
- error (invalid identifier)

2413
 
2414

  * otherwise eax

2417
= slot number

2418
 
2419

 

2422
 
2423

Constants for registers:

2426
 
2427

  eax -

2430
SF_SYSTEM (18)

2431
 
2432

  ebx -

2435
SSF_GET_THREAD_SLOT (21)

2436
 
2437

 

2440
 
2441

2443
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2444
EN-US'>Subfunction
2445
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2446
EN-US'> 22 - operations with a window of another process / thread
2447
lang=EN-US style='font-family:"Arial","sans-serif";mso-ansi-language:EN-US'>

2448
 
2449

Options:

2452
 
2453

  * eax =

2456
18 - function number

2457
 
2458

  * ebx =

2461
22 - subfunction number

2462
 
2463

  * ecx =

2466
type of operation:

2467
 
2468

    * 0 = minimizing window, stream specified by

2471
slot number

2472
 
2473

    * 1 = minimizing window, stream specified by id

2476
 
2477

    * 2 = restore window, stream specified by slot

2480
number

2481
 
2482

    * 3 = restore window, stream specified by id

2485
 
2486

  * edx =

2489
operation parameter (slot number or PID / TID)

2490
 
2491

Return value:

2494
 
2495

  * eax = 0

2498
- successful

2499
 
2500

  * eax =

2503
-1 - error (invalid parameter)

2504
 
2505

Remarks:

2508
 
2509

  * A thread can

2512
minimize its window by calling subfunction 10.

2513
 
2514

  * Restoration of the

2517
window with simultaneous activation is carried out by subfunction
2518
3 (receiving the slot number).

2519
 
2520

 

2523
 
2524

Constants for registers:

2527
 
2528

  eax -

2531
SF_SYSTEM (18)

2532
 
2533

  ebx -

2536
SSF_FOREIGN_WINDOW (22)

2537
 
2538

  ecx -

2541
SSSF_MINIMIZE (0), SSSF_MINIMIZE_ID (1), SSSF_RESTORE (2),

2542
 
2543

    SSSF_RESTORE_ID (3)

2546
 
2547

 

2550
 
2551

2553
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2554
EN-US'>Subfunction
2555
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2556
EN-US'> 23 - minimize all windows

2557
 
2558

Options:

2561
 
2562

  * eax =

2565
18 - function number

2566
 
2567

  * ebx =

2570
23 - subfunction number

2571
 
2572

Return value:

2575
 
2576

  * eax = 0

2579
- all windows were minimized before the function was called

2580
 
2581

  * eax = N

2584
- the number of windows minimized by the function

2585
 
2586

Remarks:

2589
 
2590

  * Windows specials

2593
flows (the name begins with the @ symbol) are not
2594
minimized.

2595
 
2596

 

2599
 
2600

Constants for registers:

2603
 
2604

  eax -

2607
SF_SYSTEM (18)

2608
 
2609

  ebx -

2612
SSF_MINIMIZE_ALL (23)

2613
 
2614

 

2617
 
2618

2620
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2621
EN-US'>Subfunction
2622
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2623
EN-US'> 24 - set rendering limits

2624
 
2625

Options:

2628
 
2629

  * eax =

2632
18 - function number

2633
 
2634

  * ebx =

2637
24 - subfunction number

2638
 
2639

  * ecx =

2642
new size X

2643
 
2644

  * edx =

2647
New Y Size

2648
 
2649

Return value:

2652
 
2653

  * function does not return value

2656
 
2657

Remarks:

2660
 
2661

  * The function does not change the physical size of the

2664
video mode. It is intended for non-standard displays that partially display an
2665
image.

2666
 
2667

  * The sizes specified in the function must not exceed the

2670
size of the current video mode, otherwise the function
2671
will not change anything.

2672
 
2673

 

2676
 
2677

Constants for registers:

2680
 
2681

 eax - SF_SYSTEM

2684
(18)

2685
 
2686

  ebx -

2689
SSF_SET_SCREEN_LIMITS (24)

2690
 
2691

 

2694
 
2695

2697
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2698
EN-US'>Subfunction
2699
lang=EN-US style='font-size:14.0pt;font-family:"Arial","sans-serif";mso-ansi-language:
2700
EN-US'> 25 - window positioning relative to other windows

2701
 
2702

 

2705
 
2706

Nested

2709
class=SpellE>subfunction 1 - get position

2710
 
2711

Options:

2714
 
2715

  * eax =

2718
18 - function number

2719
 
2720

  * ebx =

2723
25 - subfunction number

2724
 
2725

  * ecx = 1

2728
- number of sub-function

2729
 
2730

  * edx =

2733
-1 (for the current window) or application PID

2734
 
2735

Return value:

2738
 
2739

  * eax =

2742
one of the window position constants

2743
 
2744

 

2747
 
2748

Nested

2751
class=SpellE>subfunction 2 - set position

2752
 
2753

Options:

2756
 
2757

  * eax =

2760
18 - function number

2761
 
2762

  * ebx =

2765
25 - subfunction number

2766
 
2767

  * ecx = 2

2770
- the number of the sub-function

2771
 
2772

  * edx =

2775
-1 (for the current window) or application PID

2776
 
2777

  * esi =

2780
new window position (one of the constants below)

2781
 
2782

Return value:

2785
 
2786

  * eax = 0

2789
- failure

2790
 
2791

  * eax = 1

2794
- success

2795
 
2796

 

2799
 
2800

Window constants relative to other windows:

2803
 
2804

 ZPOS_DESKTOP = -2 - in the background

2807
 
2808

 ZPOS_ALWAYS_BACK = -1 - behind all windows

2811
 
2812

 ZPOS_NORMAL = 0 - normal

2815
 
2816

 ZPOS_ALWAYS_TOP = 1 - on top of all windows

2819
 
2820

 

2823
 
2824

Constants for registers:

2827
 
2828

  eax -

2831
SF_SYSTEM (18)

2832
 
2833

  ebx -

2836
SSF_WINDOW_BEHAVIOR (25)

2837
 
2838

  ecx -

2841
SSSF_GET_WB (1), SSSF_SET_WB (2)

2842
 
2843

 

2846
 
2847
2848
 
2849
2850
 
2851