Rev 131 | Rev 139 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 131 | Rev 133 | ||
---|---|---|---|
Line 8... | Line 8... | ||
8 | 8 | ||
9 | ====================================================================== |
9 | ====================================================================== |
10 | ============== Function 0 - define and draw the window. ============== |
10 | ============== Function 0 - define and draw the window. ============== |
11 | ====================================================================== |
11 | ====================================================================== |
12 | Defines an application window. Draws a frame of the window, header and |
12 | Defines an application window. Draws a frame of the window, header and |
13 | working area. For skinned windows defines standard buttons for close |
13 | working area. For skinned windows defines standard close and minimize |
14 | and minimize. |
14 | buttons. |
15 | Parameters: |
15 | Parameters: |
16 | * eax = 0 - function number |
16 | * eax = 0 - function number |
17 | * ebx = [coordinate on axis x]*65536 + [size on axis x] |
17 | * ebx = [coordinate on axis x]*65536 + [size on axis x] |
18 | * ecx = [coordinate on axis y]*65536 + [size on axis y] |
18 | * ecx = [coordinate on axis y]*65536 + [size on axis y] |
Line 109... | Line 109... | ||
109 | (0,0) - (xsize,_skinh-1) |
109 | (0,0) - (xsize,_skinh-1) |
110 | * if ysize>=26, fill the working area of the window - |
110 | * if ysize>=26, fill the working area of the window - |
111 | rectangle with the left upper corner (5,_skinh) and right lower |
111 | rectangle with the left upper corner (5,_skinh) and right lower |
112 | (xsize-5,ysize-5) with color indicated in edx |
112 | (xsize-5,ysize-5) with color indicated in edx |
113 | (taking a gradient into account) |
113 | (taking a gradient into account) |
114 | * define two standard buttons: for close and minimize |
114 | * define two standard buttons: close and minimize |
115 | (see function 8) |
115 | (see function 8) |
116 | * if A=1 and edi contains (nonzero) pointer to caption string, |
116 | * if A=1 and edi contains (nonzero) pointer to caption string, |
117 | it is drawn in place in header defined in the skin |
117 | it is drawn in place in header defined in the skin |
118 | * value _skinh is accessible as the result of call |
118 | * value _skinh is accessible as the result of call |
119 | subfunction 4 of function 48 |
119 | subfunction 4 of function 48 |
Line 980... | Line 980... | ||
980 | * Recommended delay of the mouse (in subsubfunction 3) = 10. Lower |
980 | * Recommended delay of the mouse (in subsubfunction 3) = 10. Lower |
981 | value is not handled by COM mice. At the very large values the |
981 | value is not handled by COM mice. At the very large values the |
982 | movement of the mouse on 1 pixel is impossible and the cursor will |
982 | movement of the mouse on 1 pixel is impossible and the cursor will |
983 | jump on the value of installed speed (subsubfunction 1). The |
983 | jump on the value of installed speed (subsubfunction 1). The |
984 | installed value is not inspected by the kernel code. |
984 | installed value is not inspected by the kernel code. |
- | 985 | Mouse delay can be regulated through the application SETUP. |
|
985 | * The subsubfunction 4 does not check the passed value. Before |
986 | * The subsubfunction 4 does not check the passed value. Before |
986 | its call find out current screen resolution (with function 14) |
987 | its call find out current screen resolution (with function 14) |
987 | and check that the value of position is inside the limits of the |
988 | and check that the value of position is inside the limits of the |
988 | screen. |
989 | screen. |
Line 1822... | Line 1823... | ||
1822 | * ebx = [start coordinate on axis x]*65536 + |
1823 | * ebx = [start coordinate on axis x]*65536 + |
1823 | [end coordinate on axis x] |
1824 | [end coordinate on axis x] |
1824 | * ecx = [start coordinate on axis y]*65536 + |
1825 | * ecx = [start coordinate on axis y]*65536 + |
1825 | [end coordinate on axis y] |
1826 | [end coordinate on axis y] |
1826 | * edx = 0x00RRGGBB - color |
1827 | * edx = 0x00RRGGBB - color |
- | 1828 | edx = 0x01xxxxxx - draw inversed line |
|
- | 1829 | (low 24 bits are ignored) |
|
1827 | Returned value: |
1830 | Returned value: |
1828 | * function does not return value |
1831 | * function does not return value |
1829 | Remarks: |
1832 | Remarks: |
1830 | * Coordinates are relative to the window. |
1833 | * Coordinates are relative to the window. |
1831 | * End point is also drawn. |
1834 | * End point is also drawn. |
Line 2871... | Line 2874... | ||
2871 | * '/hd0/1/menuet/pics/tanzania.bmp',0 |
2874 | * '/hd0/1/menuet/pics/tanzania.bmp',0 |
2872 | Existing subfunctions: |
2875 | Existing subfunctions: |
2873 | * subfunction 0 - read file/folder |
2876 | * subfunction 0 - read file/folder |
2874 | * subfunction 1 - rewrite file |
2877 | * subfunction 1 - rewrite file |
2875 | * subfunction 2 - delete file/folder |
2878 | * subfunction 2 - delete file/folder |
2876 | * subfunction 3 - write to existing file |
- | |
2877 | * subfunction 4 - make folder |
2879 | * subfunction 4 - make folder |
2878 | * subfunction 5 - rename/move file/folder |
2880 | * subfunction 5 - rename/move file/folder |
2879 | * subfunction 8 - LBA-read from device |
2881 | * subfunction 8 - LBA-read from device |
2880 | * subfunction 15 - get file system information |
2882 | * subfunction 15 - get file system information |
2881 | * subfunction 16 - start application |
2883 | * subfunction 16 - start application |
Line 2988... | Line 2990... | ||
2988 | folder. The code working with hard disk deletes not empty folders |
2990 | folder. The code working with hard disk deletes not empty folders |
2989 | correctly (i.e. recursively with all files and nested folders). |
2991 | correctly (i.e. recursively with all files and nested folders). |
2990 | Function 58 does not support folders on ramdisk. |
2992 | Function 58 does not support folders on ramdisk. |
Line 2991... | Line 2993... | ||
2991 | 2993 | ||
2992 | ====================================================================== |
- | |
2993 | ==== Function 58, subfunction 3 - write data to the existing file. === |
- | |
2994 | ====================================================================== |
- | |
2995 | Parameters: |
- | |
2996 | * eax = 58 - function number |
- | |
2997 | * ebx = pointer to the information structure |
- | |
2998 | Format of the information structure: |
- | |
2999 | * +0: dword: 3 = subfunction number |
- | |
3000 | * +4: dword: starting position in the file; -1 = append to the end |
- | |
3001 | * +8: dword: number of bytes to write |
- | |
3002 | * +12 = +0xC: dword: pointer to data to write |
- | |
3003 | * +16 = +0x10: dword: pointer to buffer for system operations |
- | |
3004 | (4096 bytes) |
- | |
3005 | * +20 = +0x14: ASCIIZ-name of file, the rules of names forming are |
- | |
3006 | given in the general description |
- | |
3007 | Returned value: |
- | |
3008 | * eax = 0 - success, otherwise file system error code |
- | |
3009 | * ebx destroyed |
- | |
3010 | Remarks: |
- | |
3011 | * This function is obsolete, use subfunction 3 of function 70. |
- | |
3012 | * Ramdisk and floppies do not support this function, it is only |
- | |
3013 | for hard disks. |
- | |
3014 | * File must already exist (otherwise function returns 5, not found). |
- | |
3015 | To create files use subfunction 1. |
- | |
3016 | * If the starting position is greater than file size, the function |
- | |
3017 | returns eax=6(EOF). If the end position is greater than file size, |
- | |
3018 | file is extended. |
- | |
3019 | * The code of write processing for hard disk interpretes zero |
- | |
3020 | value of the field +8 as the instruction to truncate the file to |
- | |
3021 | the size, given in the field +4. However the code of processing |
- | |
3022 | 58th function blocks this possibility for applications by |
- | |
3023 | immediate return (with eax=0) in the case of zero size. |
- | |
3024 | - | ||
3025 | ====================================================================== |
2994 | ====================================================================== |
3026 | ============== Function 58, subfunction 4 - make folder. ============= |
2995 | ============== Function 58, subfunction 4 - make folder. ============= |
3027 | ====================================================================== |
2996 | ====================================================================== |
3028 | Parameters: |
2997 | Parameters: |
3029 | * eax = 58 - function number |
2998 | * eax = 58 - function number |
Line 4098... | Line 4067... | ||
4098 | Available subfunctions: |
4067 | Available subfunctions: |
4099 | * subfunction 0 - read file |
4068 | * subfunction 0 - read file |
4100 | * subfunction 1 - read folder |
4069 | * subfunction 1 - read folder |
4101 | * subfunction 2 - create/rewrite file |
4070 | * subfunction 2 - create/rewrite file |
4102 | * subfunction 3 - write to existing file |
4071 | * subfunction 3 - write to existing file |
- | 4072 | * subfunction 4 - set file size |
|
4103 | * subfunction 5 - get attributes of file/folder |
4073 | * subfunction 5 - get attributes of file/folder |
4104 | * subfunction 6 - set attributes of file/folder |
4074 | * subfunction 6 - set attributes of file/folder |
4105 | * subfunction 7 - start application |
4075 | * subfunction 7 - start application |
4106 | For CD-drives due to hardware limitations only subfunctions |
4076 | For CD-drives due to hardware limitations only subfunctions |
4107 | 0,1,5 and 7 are available, other subfunctions return error |
4077 | 0,1,5 and 7 are available, other subfunctions return error |
Line 4285... | Line 4255... | ||
4285 | * The only result of write 0 bytes is update in the file attributes |
4255 | * The only result of write 0 bytes is update in the file attributes |
4286 | date/time of modification and access to the current date/time. |
4256 | date/time of modification and access to the current date/time. |
4287 | * If beginning and/or ending position is greater than file size |
4257 | * If beginning and/or ending position is greater than file size |
4288 | (except for the previous case), the file is expanded to needed |
4258 | (except for the previous case), the file is expanded to needed |
4289 | size with zero characters. |
4259 | size with zero characters. |
- | 4260 | * The function is not supported for CD (returns error code 2). |
|
- | 4261 | ||
- | 4262 | ====================================================================== |
|
- | 4263 | ============ Function 70, subfunction 4 - set end of file. =========== |
|
- | 4264 | ====================================================================== |
|
- | 4265 | Parameters: |
|
- | 4266 | * eax = 70 - function number |
|
- | 4267 | * ebx = pointer to the information structure |
|
- | 4268 | Format of the information structure: |
|
- | 4269 | * +0: dword: 4 = subfunction number |
|
- | 4270 | * +4: dword: low dword of new file size |
|
- | 4271 | * +8: dword: high dword of new file size (must be 0 for FAT) |
|
- | 4272 | * +12 = +0xC: dword: 0 (reserved) |
|
- | 4273 | * +16 = +0x10: dword: 0 (reserved) |
|
- | 4274 | * +20 = +0x14: ASCIIZ-name of file, the rules of names forming are |
|
- | 4275 | given in the general description |
|
- | 4276 | or |
|
- | 4277 | * +20 = +0x14: db 0 |
|
- | 4278 | * +21 = +0x15: dd pointer to ASCIIZ-string with file name |
|
- | 4279 | Returned value: |
|
- | 4280 | * eax = 0 - success, otherwise file system error code |
|
- | 4281 | * ebx destroyed |
|
- | 4282 | Remarks: |
|
- | 4283 | * If the new file size is less than old one, file is truncated. |
|
- | 4284 | If the new size is greater than old one, file is expanded with |
|
- | 4285 | characters with code 0. If the new size is equal to old one, |
|
- | 4286 | the only result of call is set date/time of modification and |
|
- | 4287 | access to the current date/time. |
|
- | 4288 | * If there is not enough free space on disk for expansion, the |
|
- | 4289 | function will expand to maximum possible size and then return |
|
- | 4290 | error code 8. |
|
- | 4291 | * The function is not supported for CD (returns error code 2). |
|
Line 4290... | Line 4292... | ||
4290 | 4292 | ||
4291 | ====================================================================== |
4293 | ====================================================================== |
4292 | ==== Function 70, subfunction 5 - get information on file/folder. ==== |
4294 | ==== Function 70, subfunction 5 - get information on file/folder. ==== |
4293 | ====================================================================== |
4295 | ====================================================================== |