Subversion Repositories Kolibri OS

Rev

Rev 5565 | Rev 6078 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5565 Rev 5984
Line 190... Line 190...
190
    the moment of start of the system; it is more convenient, because
190
    the moment of start of the system; it is more convenient, because
191
    returns simply DWORD-value of the time counter.
191
    returns simply DWORD-value of the time counter.
192
  * System time can be set by function 22.
192
  * System time can be set by function 22.
Line 193... Line 193...
193
 
193
 
194
======================================================================
194
======================================================================
195
============ Function 4 - draw text string in the window. ============
195
=================== Function 4 - draw text string. ===================
196
======================================================================
196
======================================================================
197
Parameters:
197
Parameters:
198
  * eax = 4 - function number
198
  * eax = 4 - function number
199
  * ebx = [coordinate on axis x]*65536 + [coordinate on axis y]
199
  * ebx = X*65536+Y, coordinates in the window or buffer
200
  * ecx = 0xXYRRGGBB, where
200
  * ecx = 0xXXRRGGBB, where
201
    * RR, GG, BB specify text color
201
    * RR, GG, BB specify text color
202
    * X=ABnn (bits):
202
    * XX = ABFFCSSS (bits):
203
      * nn specifies the used font: 0=system monospaced,
203
      * A=1 - output zero terminated string
204
        1=system font of variable width
204
      * B=1 - fill background (color = edi)
205
      * A=0 - output esi characters, A=1 - output ASCIIZ-string
205
      * FF specifies the font and encoding:
-
 
206
        0 = 6x9  cp866
-
 
207
        1 = 8x16 cp866
206
      * B=1 - fill background with the color edi
208
        2 = 8x16 UTF-16LE
-
 
209
        3 = 8x16 UTF-8
207
    * Y = Cnnn
210
      * C=0 - draw to the window,
208
      * C=1 redirect the output to the user area, specified in edi
211
        C=1 - draw to the user buffer (edi)
209
      * nnn - not used in the current, must be 0 (zero)
212
      * SSS = (size multiplier)-1, so 0 = x1, 7 = x8
210
  * edx = pointer to the beginning of the string
213
  * edx = pointer to the beginning of the string
211
  * esi = for A=0 length of the string, must not exceed 255;
-
 
212
          for A=1 is ignored
214
  * esi = for A=0 length of the string, for A=1 is ignored
213
  * edi = color to fill background, if B=1
215
  * edi = for B=1 color to fill background,
Line 214... Line 216...
214
  * edi = pointer to user area, for redirect, if C=1
216
          for C=1 pointer to user buffer
215
 
217
 
216
Returned value:
218
Returned value:
217
  * function does not return value
219
  * function does not return value
218
Remarks:
-
 
219
  * First system font is read out at loading from the file char.mt,
220
Remarks:
220
    second - from char2.mt.
221
  * You can not use B=1 and C=1 at the same time, since both use edi.
221
  * Both fonts have height 9 pixels, width of the monospaced font
-
 
222
    is equal to 6 pixels.
222
  * When SSS=0, font may be smoothed, depending on system setting.
223
  * C=1, pixel depth = 32 bits, user area is as follows:
223
  * User buffer structure:
224
    dword Xsize
224
Xsize       dd
225
    dword Ysize
-
 
226
    rest of the area = Xsize * Y size * 4
-
 
Line 227... Line 225...
227
  * You can not use B = 1 and C = 1, at the same time. Since in both
225
Ysize       dd
228
    cases, the register edi is used for different purposes.
226
picture     rb  Xsize*Ysize*4  ; 32 bpp
229
 
227
 
230
======================================================================
228
======================================================================
Line 241... Line 239...
241
    and does not make any operations at all. If it is really required
239
    and does not make any operations at all. If it is really required
242
    to transfer control to the next process (to complete a current
240
    to transfer control to the next process (to complete a current
243
    time slice), use subfunction 1 of function 68.
241
    time slice), use subfunction 1 of function 68.
Line 244... Line 242...
244
 
242
 
245
======================================================================
-
 
246
============== Function 6 - read the file from ramdisk. ==============
-
 
247
======================================================================
-
 
248
Parameters:
-
 
249
  * eax = 6 - function number
-
 
250
  * ebx = pointer to the filename
-
 
251
  * ecx = number of start block, beginning from 1;
-
 
252
    ecx=0 - read from the beginning of the file (same as ecx=1)
-
 
253
  * edx = number of blocks to read;
-
 
254
    edx=0 - read one block (same as edx=1)
-
 
255
  * esi = pointer to memory area for the data
-
 
256
Returned value:
-
 
257
  * eax = file size in bytes, if the file was successfully read
-
 
258
  * eax = -1, if the file was not found
-
 
259
Remarks:
-
 
260
  * This function is out-of-date; function 70 allows
-
 
261
    to fulfil the same operations with the extended possibilities.
-
 
262
  * Block = 512 bytes.
-
 
263
  * For reading all file you can specify the certainly large value
-
 
264
    in edx, for example, edx = -1; but in this case be ready that
-
 
265
    the program will "fall", if the file will appear too large and can
-
 
266
    not be placed in the program memory.
-
 
267
  * The filename must be either in the format 8+3 characters
-
 
268
    (first 8 characters - name itself, last 3 - extension,
-
 
269
    the short names and extensions are supplemented with spaces),
-
 
270
    or in the format 8.3 characters "FILE.EXT"/"FILE.EX "
-
 
271
    (name no more than 8 characters, dot, extension 3 characters
-
 
272
    supplemented if necessary by spaces).
-
 
273
    The filename must be written with capital letters. The terminating
-
 
274
    character with code 0 is not necessary (not ASCIIZ-string).
-
 
275
  * This function does not support folders on the ramdisk.
-
 
276
 
-
 
277
======================================================================
243
======================================================================
278
=============== Function 7 - draw image in the window. ===============
244
=============== Function 7 - draw image in the window. ===============
279
======================================================================
245
======================================================================
280
Paramters:
246
Paramters:
281
  * eax = 7 - function number
247
  * eax = 7 - function number
Line 1002... Line 968...
1002
  * ecx = 1 - subsubfunction number
968
  * ecx = 1 - subsubfunction number
1003
  * edx = new value for speed
969
  * edx = new value for speed
1004
Returned value:
970
Returned value:
1005
  * function does not return value
971
  * function does not return value
Line -... Line 972...
-
 
972
 
-
 
973
Remark: recommended speed = 1, 0 = lock the cursor.
1006
 
974
 
1007
---------------- Subsubfunction 2 - get mouse delay. -----------------
975
------------- Subsubfunction 2 - get mouse acceleration. -------------
1008
Parameters:
976
Parameters:
1009
  * eax = 18 - function number
977
  * eax = 18 - function number
1010
  * ebx = 19 - subfunction number
978
  * ebx = 19 - subfunction number
1011
  * ecx = 2 - subsubfunction number
979
  * ecx = 2 - subsubfunction number
1012
Returned value:
980
Returned value:
Line 1013... Line 981...
1013
  * eax = current mouse delay
981
  * eax = 0 - off, 1 - slight, 2 - medium, 3 - intense
1014
 
982
 
1015
---------------- Subsubfunction 3 - set mouse delay. -----------------
983
------------- Subsubfunction 3 - set mouse acceleration. -------------
1016
Parameters:
984
Parameters:
1017
  * eax = 18 - function number
985
  * eax = 18 - function number
1018
  * ebx = 19 - subfunction number
986
  * ebx = 19 - subfunction number
1019
  * ecx = 3 - subsubfunction number
987
  * ecx = 3 - subsubfunction number
1020
  * edx = new value for mouse delay
988
  * edx = 0 - off, 1 - slight, 2 - medium, 3 - intense
Line 1021... Line 989...
1021
Returned value:
989
Returned value:
1022
  * function does not return value
990
  * function does not return value
Line 1042... Line 1010...
1042
    * bit 2 is set = middle button is pressed
1010
    * bit 2 is set = middle button is pressed
1043
    * bit 3 is set = 4th button is pressed
1011
    * bit 3 is set = 4th button is pressed
1044
    * bit 4 is set = 5th button is pressed
1012
    * bit 4 is set = 5th button is pressed
1045
Returned value:
1013
Returned value:
1046
  * function does not return value
1014
  * function does not return value
1047
Remarks:
1015
 
1048
  * It is recommended to set speed of the mouse (in subsubfunction 1)
1016
-------------- Subsubfunction 6 - get doubleclick delay. -------------
-
 
1017
Parameters:
1049
    from 1 up to 9. The installed value is not inspected by the kernel
1018
  * eax = 18 - function number
1050
    code, so set it carefully, at incorrect value the cursor
1019
  * ebx = 19 - subfunction number
1051
    can "freeze". Speed of the mouse can be regulated through the
1020
  * ecx = 6 - subsubfunction number
1052
    application SETUP.
1021
Returned value:
1053
  * Recommended delay of the mouse (in subsubfunction 3) = 10. Lower
1022
  * eax = current doubleclick delay (100 = 1 second)
-
 
1023
 
1054
    value is not handled by COM mice. At the very large values the
1024
-------------- Subsubfunction 7 - set doubleclick delay. -------------
-
 
1025
Parameters:
1055
    movement of the mouse on 1 pixel is impossible and the cursor will
1026
  * eax = 18 - function number
1056
    jump on the value of installed speed (subsubfunction 1). The
1027
  * ebx = 19 - subfunction number
1057
    installed value is not inspected by the kernel code.
1028
  * ecx = 7 - subsubfunction number
1058
    Mouse delay can be regulated through the application SETUP.
1029
  * dl  = new value for doubleclick delay (100 = 1 second)
1059
  * The subsubfunction 4 does not check the passed value. Before
1030
Returned value:
1060
    its call find out current screen resolution (with function 14)
1031
  * function does not return value
-
 
1032
 
1061
    and check that the value of position is inside the limits of the
1033
Remark: mouse settings can be modified in the application mouse_cfg.
1062
    screen.
-
 
Line 1063... Line 1034...
1063
 
1034
 
1064
======================================================================
1035
======================================================================
1065
======== Function 18, subfunction 20 - get information on RAM. =======
1036
======== Function 18, subfunction 20 - get information on RAM. =======
1066
======================================================================
1037
======================================================================
Line 1147... Line 1118...
1147
  * The sizes specified in the function should not exceed the sizes
1118
  * The sizes specified in the function should not exceed the sizes
1148
    of the current video mode, otherwise the function will not change
1119
    of the current video mode, otherwise the function will not change
1149
    anything.
1120
    anything.
Line 1150... Line 1121...
1150
 
1121
 
-
 
1122
======================================================================
-
 
1123
===================== Function 18, subfunction 25 ====================
-
 
1124
===== Control position of the window relative to other windows. ======
-
 
1125
======================================================================
-
 
1126
 
-
 
1127
------------- Subsubfunction 1 - get position  -----------------------
-
 
1128
Parameters:
-
 
1129
  * eax = 18 - function number
-
 
1130
  * ebx = 25 - subfunction number
-
 
1131
  * ecx = 1 - subsubfunction number
-
 
1132
  * edx = -1(for current window) or PID application
-
 
1133
Returned value:
-
 
1134
  * eax = one of the constants window position
-
 
1135
 
-
 
1136
------------- Subsubfunction 2 - set position  -----------------------
-
 
1137
Parameters:
-
 
1138
  * eax = 18 - function number
-
 
1139
  * ebx = 25 - subfunction number
-
 
1140
  * ecx = 2 - subsubfunction number
-
 
1141
  * edx = -1(for current window) or PID application
-
 
1142
  * esi = new window position (one of the constants below)
-
 
1143
Returned value:
-
 
1144
  * eax = 0 - error
-
 
1145
  * eax = 1 - success
-
 
1146
 
-
 
1147
Constant position of the window relative to other windows:
-
 
1148
 ZPOS_DESKTOP     = -2 - on the background
-
 
1149
 ZPOS_ALWAYS_BACK = -1 - behind all the windows
-
 
1150
 ZPOS_NORMAL      = 0  - normal
-
 
1151
 ZPOS_ALWAYS_TOP  = 1  - on top of all windows
-
 
1152
 
1151
======================================================================
1153
======================================================================
1152
==================== Function 20 - MIDI interface. ===================
1154
==================== Function 20 - MIDI interface. ===================
Line 1153... Line 1155...
1153
======================================================================
1155
======================================================================
1154
 
1156
 
Line 1452... Line 1454...
1452
  * Counter takes modulo 2^32, that correspond to a little more
1454
  * Counter takes modulo 2^32, that correspond to a little more
1453
    than 497 days.
1455
    than 497 days.
1454
  * To get system time use function 3.
1456
  * To get system time use function 3.  
Line 1455... Line 1457...
1455
 
1457
  
-
 
1458
======================================================================
-
 
1459
===================== Function 26, subfunction 10 ====================
-
 
1460
========== Get the value of the high precision time counter. =========
-
 
1461
======================================================================
-
 
1462
Parameters:
-
 
1463
  * eax = 26 - function number
-
 
1464
  * ebx = 10 - subfunction number
-
 
1465
Returned value:
-
 
1466
  * eax = number of nanoseconds since system boot time (lower DWORD)
-
 
1467
  * edx = number of nanoseconds since system boot time (high DWORD)  
-
 
1468
Remarks:
-
 
1469
  * The counter is based on HPET, if HPET is not available, resolution
-
 
1470
    will be reduced to 10 000 000 nanoseconds.
-
 
1471
 
1456
======================================================================
1472
======================================================================
1457
===================== Function 26, subfunction 11 ====================
1473
===================== Function 26, subfunction 11 ====================
1458
========== Find out whether low-level HD access is enabled. ==========
1474
========== Find out whether low-level HD access is enabled. ==========
1459
======================================================================
1475
======================================================================
1460
Parameters:
1476
Parameters:
Line 1609... Line 1625...
1609
    relative y-coordinate, and the high word - relative x-coordinate
1625
    relative y-coordinate, and the high word - relative x-coordinate
1610
    (with correct sign). Otherwise the low word is negative and still
1626
    (with correct sign). Otherwise the low word is negative and still
1611
    contains relative y-coordinate, and to the high word
1627
    contains relative y-coordinate, and to the high word
1612
    1 should be added.
1628
    1 should be added.
Line 1613... Line 1629...
1613
 
1629
 
1614
------------ Subfunction 2 - pressed buttons of the mouse ------------
1630
------------- Subfunction 2 - states of the mouse buttons ------------
1615
Parameters:
1631
Parameters:
1616
  * eax = 37 - function number
1632
  * eax = 37 - function number
1617
  * ebx = 2 - subfunction number
1633
  * ebx = 2 - subfunction number
-
 
1634
Returned value:
-
 
1635
  * eax = bits 0-4 equal to subfunction 3
-
 
1636
 
-
 
1637
------- Subfunction 3 - states and events of the mouse buttons -------
-
 
1638
Parameters:
-
 
1639
  * eax = 37 - function number
-
 
1640
  * ebx = 3 - subfunction number
1618
Returned value:
1641
Returned value:
-
 
1642
  * eax contains next information:
-
 
1643
 
1619
  * eax contains information on the pressed mouse buttons:
1644
states:
1620
  * bit 0 is set = left button is pressed
1645
  * bit 0 is set = left button is held
1621
  * bit 1 is set = right button is pressed
1646
  * bit 1 is set = right button is held
-
 
1647
  * bit 2 is set = middle button is held
-
 
1648
  * bit 3 is set = 4th button is held
-
 
1649
  * bit 4 is set = 5th button is held
-
 
1650
 
1622
  * bit 2 is set = middle button is pressed
1651
events:
1623
  * bit 3 is set = 4th button is pressed
1652
  * bit 8 is set = left button is pressed
-
 
1653
  * bit 9 is set = right button is pressed
-
 
1654
  * bit 10 is set = middle button is pressed
-
 
1655
 
-
 
1656
  * bit 15 is set = vertical scroll is used
-
 
1657
 
1624
  * bit 4 is set = 5th button is pressed
1658
  * bit 16 is set = left button is released
-
 
1659
  * bit 17 is set = right button is released
-
 
1660
  * bit 18 is set = middle button is released
-
 
1661
 
-
 
1662
  * bit 23 is set = horisontal scroll is used
-
 
1663
 
Line 1625... Line 1664...
1625
  * other bits are cleared
1664
  * bit 24 is set = doubleclick by left button
1626
 
1665
 
1627
-------------------- Subfunction 4 - load cursor ---------------------
1666
-------------------- Subfunction 4 - load cursor ---------------------
1628
Parameters:
1667
Parameters:
Line 2072... Line 2111...
2072
    on ramdisk.
2111
    on ramdisk.
2073
  * User can change the skin statically by creating hisself
2112
  * User can change the skin statically by creating hisself
2074
    'default.skn' or dynamically with the application 'desktop'.
2113
    'default.skn' or dynamically with the application 'desktop'.
Line 2075... Line 2114...
2075
 
2114
 
-
 
2115
======================================================================
-
 
2116
====== Function 48, subfunction 9 - get font smoothing setting. ======
-
 
2117
======================================================================
-
 
2118
Parameters:
-
 
2119
  * eax = 48 - function number
-
 
2120
  * ebx = 9 - subfunction number
-
 
2121
Returned value:
-
 
2122
  * eax = 2 - subpixel, 1 - anti-aliasing, 0 - off
-
 
2123
 
-
 
2124
======================================================================
-
 
2125
========== Function 48, subfunction 10 - set font smoothing. =========
-
 
2126
======================================================================
-
 
2127
Parameters:
-
 
2128
  * eax = 48 - function number
-
 
2129
  * ebx = 10 - subfunction number
-
 
2130
  * cl  = 2 - subpixel, 1 - anti-aliasing, 0 - off
-
 
2131
 
-
 
2132
======================================================================
-
 
2133
============ Function 48, subfunction 11 - get font size. ============
-
 
2134
======================================================================
-
 
2135
Parameters:
-
 
2136
  * eax = 48 - function number
-
 
2137
  * ebx = 9 - subfunction number
-
 
2138
Returned value:
-
 
2139
  * eax = current font height in pixels
-
 
2140
 
-
 
2141
======================================================================
-
 
2142
============ Function 48, subfunction 12 - set font size. ============
-
 
2143
======================================================================
-
 
2144
Parameters:
-
 
2145
  * eax = 48 - function number
-
 
2146
  * ebx = 10 - subfunction number
-
 
2147
  * cl  = new font height in pixels
-
 
2148
 
2076
======================================================================
2149
======================================================================
2077
=========== Function 49 - Advanced Power Management (APM). ===========
2150
=========== Function 49 - Advanced Power Management (APM). ===========
2078
======================================================================
2151
======================================================================
2079
Parameters:
2152
Parameters:
2080
  * eax = 49 - function number
2153
  * eax = 49 - function number
Line 3054... Line 3127...
3054
    the corresponding bit in the exception mask with subfunction 25.
3127
    the corresponding bit in the exception mask with subfunction 25.
3055
    Also user handler is responsible for clearing exceptions flags in
3128
    Also user handler is responsible for clearing exceptions flags in
3056
    FPU and/or SSE.
3129
    FPU and/or SSE.
Line 3057... Line 3130...
3057
 
3130
 
3058
======================================================================
3131
======================================================================
3059
====== Function 68, subfunction 25 - set FPU exception handler. ======
3132
======== Function 68, subfunction 25 - set exception activity ========
3060
======================================================================
3133
======================================================================
3061
Parameters:
3134
Parameters:
3062
  * eax = 68 - function number
3135
  * eax = 68 - function number
3063
  * ebx = 25 - subfunction number
3136
  * ebx = 25 - subfunction number
Line 3770... Line 3843...
3770
========== Function 71, subfunction 1 - set window caption. ==========
3843
========== Function 71, subfunction 1 - set window caption. ==========
3771
======================================================================
3844
======================================================================
3772
Parameters:
3845
Parameters:
3773
  * eax = 71 - function number
3846
  * eax = 71 - function number
3774
  * ebx = 1 - subfunction number
3847
  * ebx = 1 - subfunction number
3775
  * ecx = pointer to caption string
3848
  * ecx = pointer to zero terminated string
3776
Returned value:
3849
Returned value:
3777
  * function does not return value
3850
  * function does not return value
3778
Remarks:
3851
Remarks:
3779
  * String must be in the ASCIIZ-format. Disregarding real string
3852
  * You may set the caption string encoding by putting
3780
    length, no more than 255 characters are drawn.
3853
    at the start of the string a byte with next values:
-
 
3854
    1 = cp866
-
 
3855
    2 = UTF-16LE
-
 
3856
    3 = UTF-8
-
 
3857
    otherwise will be used cp866.
3781
  * Pass NULL in ecx to remove caption.
3858
  * Pass NULL in ecx to remove caption.
Line 3782... Line 3859...
3782
 
3859
 
3783
======================================================================
3860
======================================================================
3784
=============== Function 72 - send message to a window. ==============
3861
=============== Function 72 - send message to a window. ==============
Line 3832... Line 3909...
3832
 
3909
 
3833
Returned value:
3910
Returned value:
Line 3834... Line 3911...
3834
  * function does not return value
3911
  * function does not return value
3835
 
3912
 
3836
======================================================================
3913
======================================================================
3837
= Function 74, Subfunction -1, Get number of active network devices. =
3914
= Function 74, Subfunction 255, Get number of active network devices. =
3838
======================================================================
3915
======================================================================
3839
Parameters:
3916
Parameters:
3840
  * eax = 74 - function number
3917
  * eax = 74 - function number
3841
  * bl = -1 - subfunction number
3918
  * bl = 255 - subfunction number
Line 3842... Line 3919...
3842
Returned value:
3919
Returned value:
3843
  * eax = number of active network devices
3920
  * eax = number of active network devices
Line 3848... Line 3925...
3848
Parameters:
3925
Parameters:
3849
  * eax = 74 - function number
3926
  * eax = 74 - function number
3850
  * bl = 0 - subfunction number
3927
  * bl = 0 - subfunction number
3851
  * bh = device number
3928
  * bh = device number
3852
Returned value:
3929
Returned value:
3853
  * eax = device type
3930
  * eax = device type number
Line 3854... Line 3931...
3854
 
3931
 
3855
======================================================================
3932
======================================================================
3856
======== Function 74, Subfunction 1, Get network device name. ========
3933
======== Function 74, Subfunction 1, Get network device name. ========
3857
======================================================================
3934
======================================================================
Line 3883... Line 3960...
3883
  * bh = device number
3960
  * bh = device number
3884
Returned value:
3961
Returned value:
3885
  * eax = -1 on error
3962
  * eax = -1 on error
Line 3886... Line 3963...
3886
 
3963
 
-
 
3964
======================================================================
-
 
3965
=========== Function 74, Subfunction 4, Get device pointer. ==========
-
 
3966
======================================================================
-
 
3967
Parameters:
-
 
3968
  * eax = 74 - function number
-
 
3969
  * bl = 4 - subfunction number
-
 
3970
  * bh = device number
-
 
3971
Returned value:
-
 
3972
  * eax = device pointer, -1 on error
-
 
3973
 
-
 
3974
======================================================================
-
 
3975
========= Function 74, Subfunction 6, Get packet TX counter. =========
-
 
3976
======================================================================
-
 
3977
Parameters:
-
 
3978
  * eax = 74 - function number
-
 
3979
  * bl = 6 - subfunction number
-
 
3980
  * bh = device number
-
 
3981
Returned value:
-
 
3982
  * eax = Number of packets sent since device start, -1 on error
-
 
3983
 
-
 
3984
======================================================================
-
 
3985
========= Function 74, Subfunction 7, Get packet RX counter. =========
-
 
3986
======================================================================
-
 
3987
Parameters:
-
 
3988
  * eax = 74 - function number
-
 
3989
  * bl = 7 - subfunction number
-
 
3990
  * bh = device number
-
 
3991
Returned value:
-
 
3992
  * eax = Number of packets received since device start, -1 on error
-
 
3993
 
-
 
3994
======================================================================
-
 
3995
========== Function 74, Subfunction 8, Get TX byte counter. ==========
-
 
3996
======================================================================
-
 
3997
Parameters:
-
 
3998
  * eax = 74 - function number
-
 
3999
  * bl = 8 - subfunction number
-
 
4000
  * bh = device number
-
 
4001
Returned value:
-
 
4002
  * eax = Number of bytes sent since device start (lower dword)
-
 
4003
                  -1 on error
-
 
4004
  * ebx = Number of bytes sent since device start (higher dword)
-
 
4005
 
-
 
4006
======================================================================
-
 
4007
========== Function 74, Subfunction 9, Get RX byte counter. ==========
-
 
4008
======================================================================
-
 
4009
Parameters:
-
 
4010
  * eax = 74 - function number
-
 
4011
  * bl = 9 - subfunction number
-
 
4012
  * bh = device number
-
 
4013
Returned value:
-
 
4014
  * eax = Number of bytes received since device start (lower dword)
-
 
4015
                  -1 on error
-
 
4016
  * ebx = Number of bytes received since device start (higher dword)
-
 
4017
 
-
 
4018
======================================================================
-
 
4019
========== Function 74, Subfunction 10, Get link status. =============
-
 
4020
======================================================================
-
 
4021
Parameters:
-
 
4022
  * eax = 74 - function number
-
 
4023
  * bl = 10 - subfunction number
-
 
4024
  * bh = device number
-
 
4025
Returned value:
-
 
4026
  * eax = link status, -1 on error
-
 
4027
 
-
 
4028
  Link status:
-
 
4029
    ETH_LINK_DOWN   =    0b         ; Link is down
-
 
4030
    ETH_LINK_UNKNOWN=    1b         ; There could be an active link
-
 
4031
    ETH_LINK_FD     =   10b         ; full duplex flag
-
 
4032
    ETH_LINK_10M    =  100b         ; 10 mbit
-
 
4033
    ETH_LINK_100M   = 1000b         ; 100 mbit
-
 
4034
    ETH_LINK_1G     = 1100b         ; gigabit
-
 
4035
 
3887
======================================================================
4036
======================================================================
3888
============== Function 75, Subfunction 0, Open socket. ==============
4037
============== Function 75, Subfunction 0, Open socket. ==============
3889
======================================================================
4038
======================================================================
3890
Parameters:
4039
Parameters:
3891
  * eax = 75 - function number
4040
  * eax = 75 - function number
Line 3998... Line 4147...
3998
Returned value:
4147
Returned value:
3999
  * eax = -1 on error
4148
  * eax = -1 on error
4000
  * ebx = errorcode
4149
  * ebx = errorcode
4001
Remarks:
4150
Remarks:
Line 4002... Line 4151...
4002
 
4151
 
-
 
4152
  Optstruct: 
4003
  Optstruct: dd level
4153
    dd level
4004
             dd optionname
4154
    dd optionname
4005
             dd optlength
4155
    dd optlength
Line 4006... Line 4156...
4006
             db options...
4156
    db options...
Line 4016... Line 4166...
4016
Returned value:
4166
Returned value:
4017
  * eax = -1 on error
4167
  * eax = -1 on error
4018
  * ebx = errorcode
4168
  * ebx = errorcode
4019
Remarks:
4169
Remarks:
Line 4020... Line 4170...
4020
 
4170
 
-
 
4171
  Optstruct: 
4021
  Optstruct: dd level
4172
    dd level
4022
             dd optionname
4173
    dd optionname
4023
             dd optlength
4174
    dd optlength
Line 4024... Line 4175...
4024
             db options...
4175
    db options...
Line 4032... Line 4183...
4032
Returned value:
4183
Returned value:
4033
  * eax = socketnum1, -1 on error
4184
  * eax = socketnum1, -1 on error
4034
  * ebx = socketnum2, errorcode on error
4185
  * ebx = socketnum2, errorcode on error
Line 4035... Line 4186...
4035
 
4186
  
-
 
4187
======================================================================
-
 
4188
============ Function 76, Network options and statistics. ============
-
 
4189
======================================================================
-
 
4190
Parameters:
-
 
4191
  * eax = 76 - function number
-
 
4192
  * high half of ebx = protocol number
-
 
4193
  * bh = device number
-
 
4194
  * bl = subfunction number
-
 
4195
 
-
 
4196
Ethernet (0)
-
 
4197
        0 - Read MAC
-
 
4198
        
-
 
4199
IPv4 (1)
-
 
4200
        0 - Read # IP packets send
-
 
4201
        1 - Read # IP packets received
-
 
4202
        2 - Read IP
-
 
4203
        3 - Write IP
-
 
4204
        4 - Read DNS
-
 
4205
        5 - Write DNS
-
 
4206
        6 - Read subnet
-
 
4207
        7 - Write subnet
-
 
4208
        8 - Read gateway
-
 
4209
        9 - Write gateway
-
 
4210
        
-
 
4211
ICMP (2)
-
 
4212
        0 - Read # ICMP packets send
-
 
4213
        1 - Read # ICMP packets received
-
 
4214
        3 - enable/disable ICMP echo reply
-
 
4215
 
-
 
4216
UDP (3)
-
 
4217
        0 - Read # UDP packets send
-
 
4218
        1 - Read # UDP packets received
-
 
4219
 
-
 
4220
TCP (4)
-
 
4221
        0 - Read # TCP packets send
-
 
4222
        1 - Read # TCP packets received 
-
 
4223
        
-
 
4224
ARP (5)
-
 
4225
        0 - Read # ARP packets send
-
 
4226
        1 - Read # ARP packets received
-
 
4227
        2 - Read # ARP entry's
-
 
4228
        3 - Read ARP entry
-
 
4229
        4 - Add static ARP entry
-
 
4230
        5 - Remove ARP entry (-1 = remove all)
-
 
4231
        6 - Send ARP announce on specified interface
-
 
4232
        7 - Read # ARP conflicts (IP address conflicts) 
-
 
4233
 
4036
======================================================================
4234
======================================================================
4037
=============== Function -1 - terminate thread/process ===============
4235
=============== Function -1 - terminate thread/process ===============
4038
======================================================================
4236
======================================================================
4039
Parameters:
4237
Parameters:
4040
  * eax = -1 - function number
4238
  * eax = -1 - function number