Rev 5565 | Rev 6078 | Go to most recent revision | Show entire file | Ignore 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 1449... | Line 1451... | ||
1449 | Returned value: |
1451 | Returned value: |
1450 | * eax = number of 1/100s of second, past from the system boot time |
1452 | * eax = number of 1/100s of second, past from the system boot time |
1451 | Remarks: |
1453 | Remarks: |
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. |
- | 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. |
|
Line 1455... | Line 1471... | ||
1455 | 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. ========== |
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 1952... | Line 1991... | ||
1952 | * +36 = +0x24: dword: work_graph - color of graphics in working area |
1991 | * +36 = +0x24: dword: work_graph - color of graphics in working area |
1953 | Remarks: |
1992 | Remarks: |
1954 | * Structure of the color table is described in the standard |
1993 | * Structure of the color table is described in the standard |
1955 | include file 'macros.inc' as 'system_colors'; for example, |
1994 | include file 'macros.inc' as 'system_colors'; for example, |
1956 | it is possible to write: |
1995 | it is possible to write: |
1957 | sc system_colors ; variable declaration |
1996 | sc system_colors ; variable declaration |
1958 | ... ; somewhere one must call |
1997 | ... ; somewhere one must call |
1959 | ; this function with ecx=sc |
1998 | ; this function with ecx=sc |
1960 | mov ecx, [sc.work_button_text] ; read text color on |
1999 | mov ecx, [sc.work_button_text] ; read text color on |
1961 | ; buttin in working area |
2000 | ; buttin in working area |
1962 | * A program itself desides to use or not to use color table. |
2001 | * A program itself desides to use or not to use color table. |
1963 | For usage program must simply at calls to drawing functions select |
2002 | For usage program must simply at calls to drawing functions select |
1964 | color taken from the table. |
2003 | color taken from the table. |
1965 | * At change of the table of standard colors (by subfunction 2 with |
2004 | * At change of the table of standard colors (by subfunction 2 with |
1966 | the subsequent application of changes by subfunction 0 or |
2005 | the subsequent application of changes by subfunction 0 or |
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 2322... | Line 2395... | ||
2322 | ==== Function 61 - get parameters for the direct graphics access. ==== |
2395 | ==== Function 61 - get parameters for the direct graphics access. ==== |
2323 | ====================================================================== |
2396 | ====================================================================== |
2324 | The data of the graphics screen (the memory area which displays |
2397 | The data of the graphics screen (the memory area which displays |
2325 | screen contents) are accessible to a program directly, without |
2398 | screen contents) are accessible to a program directly, without |
2326 | any system calls, through the selector gs: |
2399 | any system calls, through the selector gs: |
2327 | mov eax, [gs:0] |
2400 | mov eax, [gs:0] |
2328 | places in eax the first dword of the buffer, which contains |
2401 | places in eax the first dword of the buffer, which contains |
2329 | information on color of the left upper point (and, possibly, colors |
2402 | information on color of the left upper point (and, possibly, colors |
2330 | of several following). |
2403 | of several following). |
2331 | mov [gs:0], eax |
2404 | mov [gs:0], eax |
2332 | by work in VESA modes with LFB sets color of the left upper point |
2405 | by work in VESA modes with LFB sets color of the left upper point |
2333 | (and, possibly, colors of several following). |
2406 | (and, possibly, colors of several following). |
2334 | To interpret the data of graphics screen program needs to know |
2407 | To interpret the data of graphics screen program needs to know |
2335 | some parameters, returning by this function. |
2408 | some parameters, returning by this function. |
2336 | Remarks: |
2409 | Remarks: |
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 3159... | Line 3232... | ||
3159 | Remarks: |
3232 | Remarks: |
3160 | * If the size field is negative, the buffer is considered locked |
3233 | * If the size field is negative, the buffer is considered locked |
3161 | and at arrival of new message the system will wait. |
3234 | and at arrival of new message the system will wait. |
3162 | For synchronization frame all work with the buffer by operations |
3235 | For synchronization frame all work with the buffer by operations |
3163 | lock/unlock |
3236 | lock/unlock |
3164 | neg [bufsize] |
3237 | neg [bufsize] |
3165 | * Data in the buffer are considered as array of items with variable |
3238 | * Data in the buffer are considered as array of items with variable |
3166 | length - messages. Format of a message is explained in |
3239 | length - messages. Format of a message is explained in |
3167 | general description. |
3240 | general description. |
Line 3168... | Line 3241... | ||
3168 | 3241 | ||
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... |
4007 | 4157 | ||
4008 | ====================================================================== |
4158 | ====================================================================== |
4009 | =========== Function 75, Subfunction 9, Get socket options. ========== |
4159 | =========== Function 75, Subfunction 9, Get socket 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... |
4025 | 4176 | ||
4026 | ====================================================================== |
4177 | ====================================================================== |
4027 | ============ Function 75, Subfunction 10, Get socketpair. =========== |
4178 | ============ Function 75, Subfunction 10, Get socketpair. =========== |
4028 | ====================================================================== |
4179 | ====================================================================== |
4029 | Parameters: |
4180 | Parameters: |
4030 | * eax = 75 - function number |
4181 | * eax = 75 - function number |
4031 | * bl = 10 - subfunction number |
4182 | * bl = 10 - subfunction number |
4032 | Returned value: |
4183 | Returned value: |
- | 4184 | * eax = socketnum1, -1 on error |
|
- | 4185 | * ebx = socketnum2, errorcode on error |
|
- | 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) |
|
Line 4033... | Line 4231... | ||
4033 | * eax = socketnum1, -1 on error |
4231 | 6 - Send ARP announce on specified interface |
4034 | * ebx = socketnum2, errorcode on error |
4232 | 7 - Read # ARP conflicts (IP address conflicts) |
4035 | 4233 | ||
4036 | ====================================================================== |
4234 | ====================================================================== |