Subversion Repositories Kolibri OS

Rev

Rev 9174 | Rev 9187 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9174 Rev 9175
1
(*
1
(*
2
    Copyright 2021 Anton Krotov
2
    Copyright 2021 Anton Krotov
3
 
3
 
4
    This file is part of CEdit.
4
    This file is part of CEdit.
5
 
5
 
6
    CEdit is free software: you can redistribute it and/or modify
6
    CEdit is free software: you can redistribute it and/or modify
7
    it under the terms of the GNU General Public License as published by
7
    it under the terms of the GNU General Public License as published by
8
    the Free Software Foundation, either version 3 of the License, or
8
    the Free Software Foundation, either version 3 of the License, or
9
    (at your option) any later version.
9
    (at your option) any later version.
10
 
10
 
11
    CEdit is distributed in the hope that it will be useful,
11
    CEdit is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
    GNU General Public License for more details.
14
    GNU General Public License for more details.
15
 
15
 
16
    You should have received a copy of the GNU General Public License
16
    You should have received a copy of the GNU General Public License
17
    along with CEdit. If not, see .
17
    along with CEdit. If not, see .
18
*)
18
*)
19
 
19
 
20
MODULE KolibriOS;
20
MODULE KolibriOS;
21
 
21
 
22
IMPORT
22
IMPORT
23
    KOSAPI, SYSTEM;
23
    KOSAPI, SYSTEM;
24
 
24
 
25
CONST
25
CONST
26
    fontWidth* = 8;
26
    fontWidth* = 8;
27
    fontHeight* = 16;
27
    fontHeight* = 16;
28
 
28
 
29
VAR
29
VAR
30
 
30
 
31
    winColor*, textColor*, btnColor*, btnTextColor*,
31
    winColor*, textColor*, btnColor*, btnTextColor*,
32
    toolbarColor*, scrollColor*, scrollBkColor*,
32
    toolbarColor*, scrollColor*, scrollBkColor*,
33
    borderColor*, shadowColor*, (*darkColor*, lightColor*,*)
33
    borderColor*, shadowColor*, darkColor*, lightColor*,
34
    caseColor*, disCaseColor*: INTEGER;
34
    caseColor*, disCaseColor*: INTEGER;
35
 
35
 
36
 
36
 
37
PROCEDURE GetCommandLine* (): INTEGER;
37
PROCEDURE GetCommandLine* (): INTEGER;
38
    RETURN KOSAPI.GetCommandLine()
38
    RETURN KOSAPI.GetCommandLine()
39
END GetCommandLine;
39
END GetCommandLine;
40
 
40
 
41
 
41
 
42
PROCEDURE GetName* (): INTEGER;
42
PROCEDURE GetName* (): INTEGER;
43
    RETURN KOSAPI.GetName()
43
    RETURN KOSAPI.GetName()
44
END GetName;
44
END GetName;
45
 
45
 
46
 
46
 
47
PROCEDURE CreateWindow* (x, y, w, h, color, style, hcolor, hstyle: INTEGER; htext: ARRAY OF CHAR);
47
PROCEDURE CreateWindow* (x, y, w, h, color, style, hcolor, hstyle: INTEGER; htext: ARRAY OF CHAR);
48
BEGIN
48
BEGIN
49
    KOSAPI.sysfunc6(0, x * 65536 + w, y * 65536 + h, color + LSL(style, 24), hcolor + LSL(hstyle, 24), SYSTEM.ADR(htext[0]))
49
    KOSAPI.sysfunc6(0, x * 65536 + w, y * 65536 + h, color + LSL(style, 24), hcolor + LSL(hstyle, 24), SYSTEM.ADR(htext[0]))
50
END CreateWindow;
50
END CreateWindow;
51
 
51
 
52
 
52
 
53
PROCEDURE BeginDraw*;
53
PROCEDURE BeginDraw*;
54
BEGIN
54
BEGIN
55
    KOSAPI.sysfunc2(12, 1)
55
    KOSAPI.sysfunc2(12, 1)
56
END BeginDraw;
56
END BeginDraw;
57
 
57
 
58
 
58
 
59
PROCEDURE EndDraw*;
59
PROCEDURE EndDraw*;
60
BEGIN
60
BEGIN
61
    KOSAPI.sysfunc2(12, 2)
61
    KOSAPI.sysfunc2(12, 2)
62
END EndDraw;
62
END EndDraw;
63
 
63
 
64
 
64
 
65
PROCEDURE WaitForEvent* (): INTEGER;
65
PROCEDURE WaitForEvent* (): INTEGER;
66
    RETURN KOSAPI.sysfunc1(10)
66
    RETURN KOSAPI.sysfunc1(10)
67
END WaitForEvent;
67
END WaitForEvent;
68
 
68
 
69
 
69
 
70
PROCEDURE ThreadInfo (offsa, offsb: INTEGER; VAR a, b: INTEGER);
70
PROCEDURE ThreadInfo (offsa, offsb: INTEGER; VAR a, b: INTEGER);
71
VAR
71
VAR
72
    buffer: ARRAY 1024 OF BYTE;
72
    buffer: ARRAY 1024 OF BYTE;
73
BEGIN
73
BEGIN
74
    KOSAPI.sysfunc3(9, SYSTEM.ADR(buffer[0]), -1);
74
    KOSAPI.sysfunc3(9, SYSTEM.ADR(buffer[0]), -1);
75
    SYSTEM.GET32(SYSTEM.ADR(buffer[0]) + offsa, a);
75
    SYSTEM.GET32(SYSTEM.ADR(buffer[0]) + offsa, a);
76
    SYSTEM.GET32(SYSTEM.ADR(buffer[0]) + offsb, b);
76
    SYSTEM.GET32(SYSTEM.ADR(buffer[0]) + offsb, b);
77
END ThreadInfo;
77
END ThreadInfo;
78
 
78
 
79
 
79
 
80
PROCEDURE WinSize* (VAR width, height: INTEGER);
80
PROCEDURE WinSize* (VAR width, height: INTEGER);
81
BEGIN
81
BEGIN
82
    ThreadInfo(42, 46, width, height)
82
    ThreadInfo(42, 46, width, height)
83
END WinSize;
83
END WinSize;
84
 
84
 
85
 
85
 
86
PROCEDURE WinPos* (VAR x, y: INTEGER);
86
PROCEDURE WinPos* (VAR x, y: INTEGER);
87
BEGIN
87
BEGIN
88
    ThreadInfo(34, 38, x, y)
88
    ThreadInfo(34, 38, x, y)
89
END WinPos;
89
END WinPos;
90
 
90
 
91
 
91
 
92
PROCEDURE ClientSize* (VAR width, height: INTEGER);
92
PROCEDURE ClientSize* (VAR width, height: INTEGER);
93
BEGIN
93
BEGIN
94
    ThreadInfo(62, 66, width, height)
94
    ThreadInfo(62, 66, width, height)
95
END ClientSize;
95
END ClientSize;
96
 
96
 
97
 
97
 
98
PROCEDURE ClientPos* (VAR x, y: INTEGER);
98
PROCEDURE ClientPos* (VAR x, y: INTEGER);
99
BEGIN
99
BEGIN
100
    ThreadInfo(54, 58, x, y)
100
    ThreadInfo(54, 58, x, y)
101
END ClientPos;
101
END ClientPos;
102
 
102
 
103
 
103
 
104
PROCEDURE ScreenSize* (VAR width, height: INTEGER);
104
PROCEDURE ScreenSize* (VAR width, height: INTEGER);
105
VAR
105
VAR
106
    eax, ebx: INTEGER;
106
    eax, ebx: INTEGER;
107
    right, left, top, bottom: INTEGER;
107
    right, left, top, bottom: INTEGER;
108
BEGIN
108
BEGIN
109
    eax := KOSAPI.sysfunc22(48, 5, ebx);
109
    eax := KOSAPI.sysfunc22(48, 5, ebx);
110
    left := LSR(eax, 16);
110
    left := LSR(eax, 16);
111
    right := eax MOD 65536;
111
    right := eax MOD 65536;
112
    top := LSR(ebx, 16);
112
    top := LSR(ebx, 16);
113
    bottom := ebx MOD 65536;
113
    bottom := ebx MOD 65536;
114
    width := right - left + 1;
114
    width := right - left + 1;
115
    height := bottom - top + 1
115
    height := bottom - top + 1
116
END ScreenSize;
116
END ScreenSize;
117
 
117
 
118
 
118
 
119
PROCEDURE ThreadID* (): INTEGER;
119
PROCEDURE ThreadID* (): INTEGER;
120
VAR
120
VAR
121
    id: INTEGER;
121
    id: INTEGER;
122
BEGIN
122
BEGIN
123
    ThreadInfo(30, 30, id, id)
123
    ThreadInfo(30, 30, id, id)
124
    RETURN id
124
    RETURN id
125
END ThreadID;
125
END ThreadID;
126
 
126
 
127
 
127
 
128
PROCEDURE RolledUp* (): BOOLEAN;
128
PROCEDURE RolledUp* (): BOOLEAN;
129
VAR
129
VAR
130
    buffer: ARRAY 1024 OF BYTE;
130
    buffer: ARRAY 1024 OF BYTE;
131
BEGIN
131
BEGIN
132
    KOSAPI.sysfunc3(9, SYSTEM.ADR(buffer[0]), -1)
132
    KOSAPI.sysfunc3(9, SYSTEM.ADR(buffer[0]), -1)
133
    RETURN ODD(LSR(buffer[70], 2))
133
    RETURN ODD(LSR(buffer[70], 2))
134
END RolledUp;
134
END RolledUp;
135
 
135
 
136
 
136
 
137
PROCEDURE SetWinSize* (width, height: INTEGER);
137
PROCEDURE SetWinSize* (width, height: INTEGER);
138
BEGIN
138
BEGIN
139
    KOSAPI.sysfunc5(67, -1, -1, width, height)
139
    KOSAPI.sysfunc5(67, -1, -1, width, height)
140
END SetWinSize;
140
END SetWinSize;
141
 
141
 
142
 
142
 
143
PROCEDURE DrawText* (x, y, color: INTEGER; text: ARRAY OF WCHAR);
143
PROCEDURE DrawText* (x, y, color: INTEGER; text: ARRAY OF WCHAR);
144
BEGIN
144
BEGIN
145
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(0A0H, 24), SYSTEM.ADR(text[0]), 0, 0)
145
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(0A0H, 24), SYSTEM.ADR(text[0]), 0, 0)
146
END DrawText;
146
END DrawText;
147
 
147
 
148
 
148
 
149
PROCEDURE DrawText69* (x, y, color: INTEGER; text: ARRAY OF CHAR);
149
PROCEDURE DrawText69* (x, y, color: INTEGER; text: ARRAY OF CHAR);
150
BEGIN
150
BEGIN
151
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(080H, 24), SYSTEM.ADR(text[0]), 0, 0)
151
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(080H, 24), SYSTEM.ADR(text[0]), 0, 0)
152
END DrawText69;
152
END DrawText69;
153
 
153
 
154
 
154
 
155
PROCEDURE DrawText866* (x, y, color: INTEGER; text: ARRAY OF CHAR);
155
PROCEDURE DrawText866* (x, y, color: INTEGER; text: ARRAY OF CHAR);
156
BEGIN
156
BEGIN
157
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(0D0H, 24), SYSTEM.ADR(text[0]), 0, winColor)
157
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(0D0H, 24), SYSTEM.ADR(text[0]), 0, winColor)
158
END DrawText866;
158
END DrawText866;
159
 
159
 
160
 
160
 
161
PROCEDURE DrawText866bk* (x, y, color, bkColor: INTEGER; text: ARRAY OF CHAR);
161
PROCEDURE DrawText866bk* (x, y, color, bkColor: INTEGER; text: ARRAY OF CHAR);
162
BEGIN
162
BEGIN
163
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(0D0H, 24), SYSTEM.ADR(text[0]), 0, bkColor)
163
    KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(0D0H, 24), SYSTEM.ADR(text[0]), 0, bkColor)
164
END DrawText866bk;
164
END DrawText866bk;
165
 
165
 
166
 
166
 
167
PROCEDURE MousePos* (VAR x, y: INTEGER);
167
PROCEDURE MousePos* (VAR x, y: INTEGER);
168
VAR
168
VAR
169
    res: INTEGER;
169
    res: INTEGER;
170
BEGIN
170
BEGIN
171
    res := KOSAPI.sysfunc2(37, 0);
171
    res := KOSAPI.sysfunc2(37, 0);
172
    y := res MOD 65536;
172
    y := res MOD 65536;
173
    x := res DIV 65536
173
    x := res DIV 65536
174
END MousePos;
174
END MousePos;
175
 
175
 
176
 
176
 
177
PROCEDURE CreateButton* (id, Left, Top, Width, Height, Color: INTEGER; Caption: ARRAY OF WCHAR);
177
PROCEDURE CreateButton* (id, Left, Top, Width, Height, Color: INTEGER; Caption: ARRAY OF WCHAR);
178
VAR
178
VAR
179
    x, y: INTEGER;
179
    x, y: INTEGER;
180
BEGIN
180
BEGIN
181
    KOSAPI.sysfunc5(8, LSL(Left, 16) + Width, LSL(Top, 16) + Height, id, Color);
181
    KOSAPI.sysfunc5(8, LSL(Left, 16) + Width, LSL(Top, 16) + Height, id, Color);
182
    x := Left + (Width - fontWidth * LENGTH(Caption)) DIV 2;
182
    x := Left + (Width - fontWidth * LENGTH(Caption)) DIV 2;
183
    y := Top + (Height - fontHeight) DIV 2 + 1;
183
    y := Top + (Height - fontHeight) DIV 2 + 1;
184
    DrawText(x, y, btnTextColor, Caption)
184
    DrawText(x, y, btnTextColor, Caption)
185
END CreateButton;
185
END CreateButton;
186
 
186
 
187
 
187
 
188
PROCEDURE DeleteButton* (id: INTEGER);
188
PROCEDURE DeleteButton* (id: INTEGER);
189
BEGIN
189
BEGIN
190
    KOSAPI.sysfunc5(8, 0, 0, id + 80000000H, 0)
190
    KOSAPI.sysfunc5(8, 0, 0, id + 80000000H, 0)
191
END DeleteButton;
191
END DeleteButton;
192
 
192
 
193
 
193
 
194
PROCEDURE GetTickCount* (): INTEGER;
194
PROCEDURE GetTickCount* (): INTEGER;
195
    RETURN KOSAPI.sysfunc2(26, 9)
195
    RETURN KOSAPI.sysfunc2(26, 9)
196
END GetTickCount;
196
END GetTickCount;
197
 
197
 
198
 
198
 
199
PROCEDURE Pause* (time: INTEGER);
199
PROCEDURE Pause* (time: INTEGER);
200
BEGIN
200
BEGIN
201
    KOSAPI.sysfunc2(5, time)
201
    KOSAPI.sysfunc2(5, time)
202
END Pause;
202
END Pause;
203
 
203
 
204
 
204
 
205
PROCEDURE ButtonCode* (VAR middle: BOOLEAN): INTEGER;
205
PROCEDURE ButtonCode* (VAR middle: BOOLEAN): INTEGER;
206
VAR
206
VAR
207
    res: INTEGER;
207
    res: INTEGER;
208
BEGIN
208
BEGIN
209
    middle := FALSE;
209
    middle := FALSE;
210
    res := KOSAPI.sysfunc1(17);
210
    res := KOSAPI.sysfunc1(17);
211
    IF res MOD 256 = 0 THEN
211
    IF res MOD 256 = 0 THEN
212
        res := LSR(res, 8)
212
        res := LSR(res, 8)
213
    ELSIF res MOD 256 = 4 THEN
213
    ELSIF res MOD 256 = 4 THEN
214
        res := LSR(res, 8);
214
        res := LSR(res, 8);
215
        middle := TRUE
215
        middle := TRUE
216
    ELSE
216
    ELSE
217
        res := 0
217
        res := 0
218
    END
218
    END
219
    RETURN res
219
    RETURN res
220
END ButtonCode;
220
END ButtonCode;
221
 
221
 
222
 
222
 
223
PROCEDURE Exit*;
223
PROCEDURE Exit*;
224
BEGIN
224
BEGIN
225
    KOSAPI.sysfunc1(-1)
225
    KOSAPI.sysfunc1(-1)
226
END Exit;
226
END Exit;
227
 
227
 
228
 
228
 
229
PROCEDURE ExitID* (tid: INTEGER);
229
PROCEDURE ExitID* (tid: INTEGER);
230
BEGIN
230
BEGIN
231
    KOSAPI.sysfunc3(18, 18, tid)
231
    KOSAPI.sysfunc3(18, 18, tid)
232
END ExitID;
232
END ExitID;
233
 
233
 
234
 
234
 
235
PROCEDURE CreateThread* (proc: INTEGER; stack: ARRAY OF INTEGER): INTEGER;
235
PROCEDURE CreateThread* (proc: INTEGER; stack: ARRAY OF INTEGER): INTEGER;
236
    RETURN KOSAPI.sysfunc4(51, 1, proc, SYSTEM.ADR(stack[LEN(stack) - 2]))
236
    RETURN KOSAPI.sysfunc4(51, 1, proc, SYSTEM.ADR(stack[LEN(stack) - 2]))
237
END CreateThread;
237
END CreateThread;
238
 
238
 
239
 
239
 
240
PROCEDURE Run* (program, param: ARRAY OF CHAR);
240
PROCEDURE Run* (program, param: ARRAY OF CHAR);
241
TYPE
241
TYPE
242
 
242
 
243
    info_struct = RECORD
243
    info_struct = RECORD
244
        subfunc : INTEGER;
244
        subfunc : INTEGER;
245
        flags   : INTEGER;
245
        flags   : INTEGER;
246
        param   : INTEGER;
246
        param   : INTEGER;
247
        rsrvd1  : INTEGER;
247
        rsrvd1  : INTEGER;
248
        rsrvd2  : INTEGER;
248
        rsrvd2  : INTEGER;
249
        fname   : ARRAY 1024 OF CHAR
249
        fname   : ARRAY 1024 OF CHAR
250
    END;
250
    END;
251
 
251
 
252
VAR
252
VAR
253
    info: info_struct;
253
    info: info_struct;
254
 
254
 
255
BEGIN
255
BEGIN
256
    info.subfunc := 7;
256
    info.subfunc := 7;
257
    info.flags   := 0;
257
    info.flags   := 0;
258
    info.param   := SYSTEM.ADR(param[0]);
258
    info.param   := SYSTEM.ADR(param[0]);
259
    info.rsrvd1  := 0;
259
    info.rsrvd1  := 0;
260
    info.rsrvd2  := 0;
260
    info.rsrvd2  := 0;
261
    COPY(program, info.fname);
261
    COPY(program, info.fname);
262
    KOSAPI.sysfunc2(70, SYSTEM.ADR(info))
262
    KOSAPI.sysfunc2(70, SYSTEM.ADR(info))
263
END Run;
263
END Run;
264
 
264
 
265
 
265
 
266
PROCEDURE DrawRect* (x, y, width, height, color: INTEGER);
266
PROCEDURE DrawRect* (x, y, width, height, color: INTEGER);
267
BEGIN
267
BEGIN
268
    KOSAPI.sysfunc4(13, x*65536 + width, y*65536 + height, color)
268
    KOSAPI.sysfunc4(13, x*65536 + width, y*65536 + height, color)
269
END DrawRect;
269
END DrawRect;
270
 
270
 
271
 
271
 
272
PROCEDURE DrawLine* (x1, y1, x2, y2: INTEGER; color: INTEGER);
272
PROCEDURE DrawLine* (x1, y1, x2, y2: INTEGER; color: INTEGER);
273
BEGIN
273
BEGIN
274
    KOSAPI.sysfunc4(38, x1*65536 + x2, y1*65536 + y2, color)
274
    KOSAPI.sysfunc4(38, x1*65536 + x2, y1*65536 + y2, color)
275
END DrawLine;
275
END DrawLine;
276
 
276
 
277
 
277
 
278
PROCEDURE DrawImage* (data, sizeX, sizeY, x, y: INTEGER);
278
PROCEDURE DrawImage* (data, sizeX, sizeY, x, y: INTEGER);
279
BEGIN
279
BEGIN
280
    KOSAPI.sysfunc4(7, data, sizeX*65536 + sizeY, x*65536 + y)
280
    KOSAPI.sysfunc4(7, data, sizeX*65536 + sizeY, x*65536 + y)
281
END DrawImage;
281
END DrawImage;
282
 
282
 
283
 
283
 
284
PROCEDURE SetEventsMask* (mask: SET);
284
PROCEDURE SetEventsMask* (mask: SET);
285
BEGIN
285
BEGIN
286
    KOSAPI.sysfunc2(40, ORD(mask))
286
    KOSAPI.sysfunc2(40, ORD(mask))
287
END SetEventsMask;
287
END SetEventsMask;
288
 
288
 
289
 
289
 
290
PROCEDURE SkinHeight* (): INTEGER;
290
PROCEDURE SkinHeight* (): INTEGER;
291
    RETURN KOSAPI.sysfunc2(48, 4)
291
    RETURN KOSAPI.sysfunc2(48, 4)
292
END SkinHeight;
292
END SkinHeight;
293
 
293
 
294
 
294
 
295
PROCEDURE GetKey* (): INTEGER;
295
PROCEDURE GetKey* (): INTEGER;
296
    RETURN KOSAPI.sysfunc1(2)
296
    RETURN KOSAPI.sysfunc1(2)
297
END GetKey;
297
END GetKey;
298
 
298
 
299
 
299
 
300
PROCEDURE MouseState* (): SET;
300
PROCEDURE MouseState* (): SET;
301
    RETURN BITS(KOSAPI.sysfunc2(37, 3))
301
    RETURN BITS(KOSAPI.sysfunc2(37, 3))
302
END MouseState;
302
END MouseState;
303
 
303
 
304
 
304
 
305
PROCEDURE Scroll* (): INTEGER;
305
PROCEDURE Scroll* (): INTEGER;
306
    RETURN ASR(LSL(KOSAPI.sysfunc2(37, 7), 16), 16)
306
    RETURN ASR(LSL(KOSAPI.sysfunc2(37, 7), 16), 16)
307
END Scroll;
307
END Scroll;
308
 
308
 
309
 
309
 
310
PROCEDURE GetControlKeys* (): SET;
310
PROCEDURE GetControlKeys* (): SET;
311
    RETURN BITS(KOSAPI.sysfunc2(66, 3))
311
    RETURN BITS(KOSAPI.sysfunc2(66, 3))
312
END GetControlKeys;
312
END GetControlKeys;
313
 
313
 
314
 
314
 
315
PROCEDURE malloc* (size: INTEGER): INTEGER;
315
PROCEDURE malloc* (size: INTEGER): INTEGER;
316
    RETURN KOSAPI.malloc(size)
316
    RETURN KOSAPI.malloc(size)
317
END malloc;
317
END malloc;
318
 
318
 
319
 
319
 
320
PROCEDURE SetIPC* (buffer: ARRAY OF INTEGER);
320
PROCEDURE SetIPC* (buffer: ARRAY OF INTEGER);
321
BEGIN
321
BEGIN
322
    KOSAPI.sysfunc4(60, 1, SYSTEM.ADR(buffer[0]), LEN(buffer)*SYSTEM.SIZE(INTEGER))
322
    KOSAPI.sysfunc4(60, 1, SYSTEM.ADR(buffer[0]), LEN(buffer)*SYSTEM.SIZE(INTEGER))
323
END SetIPC;
323
END SetIPC;
324
 
324
 
325
 
325
 
326
PROCEDURE SendIPC* (tid, msg: INTEGER);
326
PROCEDURE SendIPC* (tid, msg: INTEGER);
327
BEGIN
327
BEGIN
328
	KOSAPI.sysfunc5(60, 2, tid, SYSTEM.ADR(msg), SYSTEM.SIZE(INTEGER))
328
	KOSAPI.sysfunc5(60, 2, tid, SYSTEM.ADR(msg), SYSTEM.SIZE(INTEGER))
329
END SendIPC;
329
END SendIPC;
330
 
330
 
331
 
331
 
332
PROCEDURE PutPixel* (x, y, color: INTEGER);
332
PROCEDURE PutPixel* (x, y, color: INTEGER);
333
BEGIN
333
BEGIN
334
    KOSAPI.sysfunc4(1, x, y, color)
334
    KOSAPI.sysfunc4(1, x, y, color)
335
END PutPixel;
335
END PutPixel;
336
 
336
 
337
 
337
 
338
PROCEDURE GetSystemColors*;
338
PROCEDURE GetSystemColors*;
339
VAR
339
VAR
340
    buf: ARRAY 10 OF INTEGER;
340
    buf: ARRAY 10 OF INTEGER;
341
BEGIN
341
BEGIN
342
    toolbarColor := 0DFDFDFH;
-
 
343
    shadowColor := 0808080H;
-
 
344
    caseColor := 00000FFH;
-
 
345
    disCaseColor := 0808080H;
-
 
346
 
-
 
347
    ASSERT(LEN(buf) >= 10);
342
    ASSERT(LEN(buf) >= 10);
348
    KOSAPI.sysfunc4(48, 3, SYSTEM.ADR(buf[0]), 40);
343
    KOSAPI.sysfunc4(48, 3, SYSTEM.ADR(buf[0]), 40);
349
 
344
 
350
(*    darkColor := buf[2];
345
    darkColor := buf[2];
351
    lightColor := buf[3];*)
346
    lightColor := buf[3];
352
    winColor := buf[5];
347
    winColor := buf[5];
353
    textColor := buf[8];
348
    textColor := buf[8];
354
    btnColor := buf[6];
349
    btnColor := buf[6];
355
    btnTextColor := buf[7];
350
    btnTextColor := buf[7];
356
    scrollColor := btnColor;
351
    scrollColor := btnColor;
357
    scrollBkColor := winColor;
352
    scrollBkColor := winColor;
358
    borderColor := buf[9];
353
    borderColor := buf[9];
-
 
354
 
-
 
355
    toolbarColor := 0DFDFDFH;
-
 
356
    shadowColor := 0808080H;
-
 
357
    caseColor := 00000FFH;
-
 
358
    disCaseColor := 0808080H;
359
END GetSystemColors;
359
END GetSystemColors;
360
 
360
 
361
 
361
 
362
END KolibriOS.
362
END KolibriOS.