Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
7623 akron1 1
==============================================================================
2
 
3
        Библиотека (KolibriOS)
4
 
5
------------------------------------------------------------------------------
6
MODULE Out - консольный вывод
7
 
8
        PROCEDURE Open
9
                формально открывает консольный вывод
10
 
11
        PROCEDURE Int(x, width: INTEGER)
12
                вывод целого числа x;
13
                width - количество знакомест, используемых для вывода
14
 
15
        PROCEDURE Real(x: REAL; width: INTEGER)
16
                вывод вещественного числа x в плавающем формате;
17
                width - количество знакомест, используемых для вывода
18
 
19
        PROCEDURE Char(x: CHAR)
20
                вывод символа x
21
 
22
        PROCEDURE FixReal(x: REAL; width, p: INTEGER)
23
                вывод вещественного числа x в фиксированном формате;
24
                width - количество знакомест, используемых для вывода;
25
                p - количество знаков после десятичной точки
26
 
27
        PROCEDURE Ln
28
                переход на следующую строку
29
 
30
        PROCEDURE String(s: ARRAY OF CHAR)
31
                вывод строки s
32
 
33
------------------------------------------------------------------------------
34
MODULE In - консольный ввод
35
 
36
        VAR Done: BOOLEAN
37
                принимает значение TRUE в случае успешного выполнения
38
                операции ввода, иначе FALSE
39
 
40
        PROCEDURE Open
41
                формально открывает консольный ввод,
42
                также присваивает переменной Done значение TRUE
43
 
44
        PROCEDURE Int(VAR x: INTEGER)
45
                ввод числа типа INTEGER
46
 
47
        PROCEDURE Char(VAR x: CHAR)
48
                ввод символа
49
 
50
        PROCEDURE Real(VAR x: REAL)
51
                ввод числа типа REAL
52
 
53
        PROCEDURE String(VAR s: ARRAY OF CHAR)
54
                ввод строки
55
 
56
        PROCEDURE Ln
57
                ожидание нажатия ENTER
58
 
59
------------------------------------------------------------------------------
60
MODULE Console - дополнительные процедуры консольного вывода
61
 
62
        CONST
63
 
64
        Следующие константы определяют цвет консольного вывода
65
 
66
                Black = 0      Blue = 1           Green = 2
67
                Cyan = 3       Red = 4            Magenta = 5
68
                Brown = 6      LightGray = 7      DarkGray = 8
69
                LightBlue = 9  LightGreen = 10    LightCyan = 11
70
                LightRed = 12  LightMagenta = 13  Yellow = 14
71
                White = 15
72
 
73
        PROCEDURE Cls
74
                очистка окна консоли
75
 
76
        PROCEDURE SetColor(FColor, BColor: INTEGER)
77
                установка цвета консольного вывода: FColor - цвет текста,
78
                BColor - цвет фона, возможные значения - вышеперечисленные
79
                константы
80
 
81
        PROCEDURE SetCursor(x, y: INTEGER)
82
                установка курсора консоли в позицию (x, y)
83
 
84
        PROCEDURE GetCursor(VAR x, y: INTEGER)
85
                записывает в параметры текущие координаты курсора консоли
86
 
87
        PROCEDURE GetCursorX(): INTEGER
88
                возвращает текущую x-координату курсора консоли
89
 
90
        PROCEDURE GetCursorY(): INTEGER
91
                возвращает текущую y-координату курсора консоли
92
 
93
------------------------------------------------------------------------------
94
MODULE ConsoleLib - обертка библиотеки console.obj
95
 
96
------------------------------------------------------------------------------
97
MODULE Math - математические функции
98
 
99
        CONST
100
 
101
                pi = 3.141592653589793D+00
102
                e  = 2.718281828459045D+00
103
 
104
 
105
        PROCEDURE IsNan(x: REAL): BOOLEAN
106
                возвращает TRUE, если x - не число
107
 
108
        PROCEDURE IsInf(x: REAL): BOOLEAN
109
                возвращает TRUE, если x - бесконечность
110
 
111
        PROCEDURE sqrt(x: REAL): REAL
112
                квадратный корень x
113
 
114
        PROCEDURE exp(x: REAL): REAL
115
                экспонента x
116
 
117
        PROCEDURE ln(x: REAL): REAL
118
                натуральный логарифм x
119
 
120
        PROCEDURE sin(x: REAL): REAL
121
                синус x
122
 
123
        PROCEDURE cos(x: REAL): REAL
124
                косинус x
125
 
126
        PROCEDURE tan(x: REAL): REAL
127
                тангенс x
128
 
129
        PROCEDURE arcsin(x: REAL): REAL
130
                арксинус x
131
 
132
        PROCEDURE arccos(x: REAL): REAL
133
                арккосинус x
134
 
135
        PROCEDURE arctan(x: REAL): REAL
136
                арктангенс x
137
 
138
        PROCEDURE arctan2(y, x: REAL): REAL
139
                арктангенс y/x
140
 
141
        PROCEDURE power(base, exponent: REAL): REAL
142
                возведение числа base в степень exponent
143
 
144
        PROCEDURE log(base, x: REAL): REAL
145
                логарифм x по основанию base
146
 
147
        PROCEDURE sinh(x: REAL): REAL
148
                гиперболический синус x
149
 
150
        PROCEDURE cosh(x: REAL): REAL
151
                гиперболический косинус x
152
 
153
        PROCEDURE tanh(x: REAL): REAL
154
                гиперболический тангенс x
155
 
156
        PROCEDURE arcsinh(x: REAL): REAL
157
                обратный гиперболический синус x
158
 
159
        PROCEDURE arccosh(x: REAL): REAL
160
                обратный гиперболический косинус x
161
 
162
        PROCEDURE arctanh(x: REAL): REAL
163
                обратный гиперболический тангенс x
164
 
165
        PROCEDURE round(x: REAL): REAL
166
                округление x до ближайшего целого
167
 
168
        PROCEDURE frac(x: REAL): REAL;
169
                дробная часть числа x
170
 
171
        PROCEDURE floor(x: REAL): REAL
172
                наибольшее целое число (представление как REAL),
173
                не больше x: floor(1.2) = 1.0
174
 
175
        PROCEDURE ceil(x: REAL): REAL
176
                наименьшее целое число (представление как REAL),
177
                не меньше x: ceil(1.2) = 2.0
178
 
179
        PROCEDURE sgn(x: REAL): INTEGER
180
                если x > 0 возвращает 1
181
                если x < 0 возвращает -1
182
                если x = 0 возвращает 0
183
 
184
------------------------------------------------------------------------------
185
MODULE Debug - вывод на доску отладки
186
        Интерфейс как модуль Out
187
 
188
        PROCEDURE Open
189
                открывает доску отладки
190
 
191
------------------------------------------------------------------------------
192
MODULE File - работа с файловой системой
193
 
194
        TYPE
195
 
196
                FNAME = ARRAY 520 OF CHAR
197
 
198
                FS = POINTER TO rFS
199
 
200
                rFS = RECORD (* информационная структура файла *)
201
                        subfunc, pos, hpos, bytes, buffer: INTEGER;
202
                        name: FNAME
203
                END
204
 
205
                FD = POINTER TO rFD
206
 
207
                rFD = RECORD (* структура блока данных входа каталога *)
208
                        attr: INTEGER;
209
                        ntyp: CHAR;
210
                        reserved: ARRAY 3 OF CHAR;
211
                        time_create, date_create,
212
                        time_access, date_access,
213
                        time_modif,  date_modif,
214
                        size, hsize: INTEGER;
215
                        name: FNAME
216
                END
217
 
218
        CONST
219
 
220
                SEEK_BEG = 0
221
                SEEK_CUR = 1
222
                SEEK_END = 2
223
 
224
        PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER;
225
                Загружает в память файл с именем FName, записывает в параметр
226
                size размер файла, возвращает адрес загруженного файла
227
                или 0 (ошибка). При необходимости, распаковывает
228
                файл (kunpack).
229
 
230
        PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN
231
                Записывает структуру блока данных входа каталога для файла
232
                или папки с именем FName в параметр Info.
233
                При ошибке возвращает FALSE.
234
 
235
        PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
236
                возвращает TRUE, если файл с именем FName существует
237
 
238
        PROCEDURE Close(VAR F: FS)
239
                освобождает память, выделенную для информационной структуры
240
                файла F и присваивает F значение NIL
241
 
242
        PROCEDURE Open(FName: ARRAY OF CHAR): FS
243
                возвращает указатель на информационную структуру файла с
244
                именем FName, при ошибке возвращает NIL
245
 
246
        PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
247
                удаляет файл с именем FName, при ошибке возвращает FALSE
248
 
249
        PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER
250
                устанавливает позицию чтения-записи файла F на Offset,
251
                относительно Origin = (SEEK_BEG - начало файла,
252
                SEEK_CUR - текущая позиция, SEEK_END - конец файла),
253
                возвращает позицию относительно начала файла, например:
254
                        Seek(F, 0, SEEK_END)
255
                устанавливает позицию на конец файла и возвращает длину
256
                файла; при ошибке возвращает -1
257
 
258
        PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER
259
                Читает данные из файла в память. F - указатель на
260
                информационную структуру файла, Buffer - адрес области
261
                памяти, Count - количество байт, которое требуется прочитать
262
                из файла; возвращает количество байт, которое было прочитано
263
                и соответствующим образом изменяет позицию чтения/записи в
264
                информационной структуре F.
265
 
266
        PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER
267
                Записывает данные из памяти в файл. F - указатель на
268
                информационную структуру файла, Buffer - адрес области
269
                памяти, Count - количество байт, которое требуется записать
270
                в файл; возвращает количество байт, которое было записано и
271
                соответствующим образом изменяет позицию чтения/записи в
272
                информационной структуре F.
273
 
274
        PROCEDURE Create(FName: ARRAY OF CHAR): FS
275
                создает новый файл с именем FName (полное имя), возвращает
276
                указатель на информационную структуру файла,
277
                при ошибке возвращает NIL
278
 
279
        PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
280
                создает папку с именем DirName, все промежуточные папки
281
                должны существовать, при ошибке возвращает FALSE
282
 
283
        PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN
284
                удаляет пустую папку с именем DirName,
285
                при ошибке возвращает FALSE
286
 
287
        PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN
288
                возвращает TRUE, если папка с именем DirName существует
289
 
290
------------------------------------------------------------------------------
291
MODULE Read - чтение основных типов данных из файла F
292
 
293
        Процедуры возвращают TRUE в случае успешной операции чтения и
294
        соответствующим образом изменяют позицию чтения/записи в
295
        информационной структуре F
296
 
297
        PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN
298
 
299
        PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN
300
 
301
        PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN
302
 
303
        PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN
304
 
305
        PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN
306
 
307
        PROCEDURE Card16(F: File.FS; VAR x: SYSTEM.CARD16): BOOLEAN
308
 
309
------------------------------------------------------------------------------
310
MODULE Write - запись основных типов данных в файл F
311
 
312
        Процедуры возвращают TRUE в случае успешной операции записи и
313
        соответствующим образом изменяют позицию чтения/записи в
314
        информационной структуре F
315
 
316
        PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN
317
 
318
        PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN
319
 
320
        PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN
321
 
322
        PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN
323
 
324
        PROCEDURE Set(F: File.FS; x: SET): BOOLEAN
325
 
326
        PROCEDURE Card16(F: File.FS; x: SYSTEM.CARD16): BOOLEAN
327
 
328
------------------------------------------------------------------------------
329
MODULE DateTime - дата, время
330
 
331
        CONST ERR = -7.0E5
332
 
333
        PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER)
334
                записывает в параметры компоненты текущей системной даты и
335
                времени
336
 
337
        PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): REAL
338
                возвращает дату, полученную из компонентов
339
                Year, Month, Day, Hour, Min, Sec;
340
                при ошибке возвращает константу ERR = -7.0D5
341
 
342
        PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
343
                                Hour, Min, Sec: INTEGER): BOOLEAN
344
                извлекает компоненты
345
                Year, Month, Day, Hour, Min, Sec из даты Date;
346
                при ошибке возвращает FALSE
347
 
348
------------------------------------------------------------------------------
349
MODULE Args - параметры программы
350
 
351
        VAR argc: INTEGER
352
                количество параметров программы, включая имя
353
                исполняемого файла
354
 
355
        PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
356
                записывает в строку s n-й параметр программы,
357
                нумерация параметров от 0 до argc - 1,
358
                нулевой параметр -- имя исполняемого файла
359
 
360
------------------------------------------------------------------------------
361
MODULE KOSAPI
362
 
363
        PROCEDURE sysfunc1(arg1: INTEGER): INTEGER
364
        PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER
365
        ...
366
        PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER
367
                Обертки для функций API ядра KolibriOS.
368
                arg1 .. arg7 соответствуют регистрам
369
                        eax, ebx, ecx, edx, esi, edi, ebp;
370
                возвращают значение регистра eax после системного вызова.
371
 
372
        PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER
373
                Обертка для функций API ядра KolibriOS.
374
                arg1 - регистр eax, arg2 - регистр ebx,
375
                res2 - значение регистра ebx после системного вызова;
376
                возвращает значение регистра eax после системного вызова.
377
 
378
        PROCEDURE malloc(size: INTEGER): INTEGER
379
                Выделяет блок памяти.
380
                size - размер блока в байтах,
381
                возвращает адрес выделенного блока
382
 
383
        PROCEDURE free(ptr: INTEGER): INTEGER
384
                Освобождает ранее выделенный блок памяти с адресом ptr,
385
                возвращает 0
386
 
387
        PROCEDURE realloc(ptr, size: INTEGER): INTEGER
388
                Перераспределяет блок памяти,
389
                ptr - адрес ранее выделенного блока,
390
                size - новый размер,
391
                возвращает указатель на перераспределенный блок,
392
 
393
 
394
        PROCEDURE GetCommandLine(): INTEGER
395
                Возвращает адрес строки параметров
396
 
397
        PROCEDURE GetName(): INTEGER
398
                Возвращает адрес строки с именем программы
399
 
400
        PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER
401
                Загружает DLL с полным именем name. Возвращает адрес таблицы
402
                экспорта. При ошибке возвращает 0.
403
 
404
        PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER
405
                name - имя процедуры
406
                lib - адрес таблицы экспорта DLL
407
                Возвращает адрес процедуры. При ошибке возвращает 0.
408
 
409
------------------------------------------------------------------------------
410
MODULE ColorDlg - работа с диалогом "Color Dialog"
411
 
412
        TYPE
413
 
414
                Dialog = POINTER TO RECORD (* структура диалога *)
415
                    status: INTEGER   (* состояние диалога:
416
 
417
                                         1 - пользователь нажал OK
418
                                         2 - диалог открыт           *)
419
 
420
                    color:  INTEGER   (* выбранный цвет *)
421
                END
422
 
423
        PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog
424
                создать диалог
425
                draw_window - процедура перерисовки основного окна
426
                (TYPE DRAW_WINDOW = PROCEDURE);
427
                процедура возвращает указатель на структуру диалога
428
 
429
        PROCEDURE Show(cd: Dialog)
430
                показать диалог
431
                cd - указатель на структуру диалога, который был создан ранее
432
                процедурой Create
433
 
434
        PROCEDURE Destroy(VAR cd: Dialog)
435
                уничтожить диалог
436
                cd - указатель на структуру диалога
437
 
438
------------------------------------------------------------------------------
439
MODULE OpenDlg - работа с диалогом "Open Dialog"
440
 
441
        TYPE
442
 
443
                Dialog = POINTER TO RECORD (* структура диалога *)
444
                    status:   INTEGER  (* состояние диалога:
445
 
446
                                          1 - пользователь нажал OK
447
                                          2 - диалог открыт           *)
448
 
449
                    FileName: ARRAY 4096 OF CHAR (* имя выбранного файла *)
450
                    FilePath: ARRAY 4096 OF CHAR (* полное имя выбранного
451
                                                    файла                *)
452
                END
453
 
454
        PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path,
455
                        filter: ARRAY OF CHAR): Dialog
456
                создать диалог
457
                draw_window - процедура перерисовки основного окна
458
                        (TYPE DRAW_WINDOW = PROCEDURE)
459
                type -  тип диалога
460
 
461
                        1 - сохранить
462
                        2 - выбрать папку
463
                def_path - путь по умолчанию, папка def_path будет открыта
464
                        при первом запуске диалога
465
                filter - в строке записано перечисление расширений файлов,
466
                        которые будут показаны в диалоговом окне, расширения
467
                        разделяются символом "|", например: "ASM|TXT|INI"
468
                процедура возвращает указатель на структуру диалога
469
 
470
        PROCEDURE Show(od: Dialog; Width, Height: INTEGER)
471
                показать диалог
472
                od - указатель на структуру диалога, который был создан ранее
473
                     процедурой Create
474
                Width и Height - ширина и высота диалогового окна
475
 
476
        PROCEDURE Destroy(VAR od: Dialog)
477
                уничтожить диалог
478
                od - указатель на структуру диалога
479
 
480
------------------------------------------------------------------------------
481
MODULE kfonts - работа с kf-шрифтами
482
 
483
        CONST
484
 
485
                bold            =   1
486
                italic          =   2
487
                underline       =   4
488
                strike_through  =   8
489
                smoothing       =  16
490
                bpp32           =  32
491
 
492
        TYPE
493
 
494
                TFont = POINTER TO TFont_desc (* указатель на шрифт *)
495
 
496
        PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont
497
                загрузить шрифт из файла
498
                file_name   имя kf-файла
499
                рез-т:      указатель на шрифт/NIL (ошибка)
500
 
501
        PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN
502
                установить размер шрифта
503
                Font        указатель на шрифт
504
                font_size   размер шрифта
505
                рез-т:      TRUE/FALSE (ошибка)
506
 
507
        PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN
508
                проверить, есть ли шрифт, заданного размера
509
                Font        указатель на шрифт
510
                font_size   размер шрифта
511
                рез-т:      TRUE/FALSE (шрифта нет)
512
 
513
        PROCEDURE Destroy(VAR Font: TFont)
514
                выгрузить шрифт, освободить динамическую память
515
                Font        указатель на шрифт
516
                Присваивает переменной Font значение NIL
517
 
518
        PROCEDURE TextHeight(Font: TFont): INTEGER
519
                получить высоту строки текста
520
                Font        указатель на шрифт
521
                рез-т:      высота строки текста в пикселях
522
 
523
        PROCEDURE TextWidth(Font: TFont;
524
                    str, length, params: INTEGER): INTEGER
525
                получить ширину строки текста
526
                Font        указатель на шрифт
527
                str         адрес строки текста в кодировке Win-1251
528
                length      количество символов в строке или -1, если строка
529
                            завершается нулем
530
                params      параметры-флаги см. ниже
531
                рез-т:      ширина строки текста в пикселях
532
 
533
        PROCEDURE TextOut(Font: TFont;
534
                    canvas, x, y, str, length, color, params: INTEGER)
535
                вывести текст в буфер
536
                для вывода буфера в окно, использовать ф.65 или
537
                ф.7 (если буфер 24-битный)
538
                Font        указатель на шрифт
539
                canvas      адрес графического буфера
540
                            структура буфера:
541
                              Xsize       dd
542
                              Ysize       dd
543
                              picture     rb  Xsize * Ysize * 4 (32 бита)
544
                                              или Xsize * Ysize * 3 (24 бита)
545
                x, y        координаты текста относительно левого верхнего
546
                            угла буфера
547
                str         адрес строки текста в кодировке Win-1251
548
                length      количество символов в строке или -1, если строка
549
                            завершается нулем
550
                color       цвет текста 0x00RRGGBB
551
                params      параметры-флаги:
552
                               1   жирный
553
                               2   курсив
554
                               4   подчеркнутый
555
                               8   перечеркнутый
556
                              16   применить сглаживание
557
                              32   вывод в 32-битный буфер
558
                            возможно использование флагов в любых сочетаниях
559
------------------------------------------------------------------------------
560
MODULE RasterWorks - обертка библиотеки Rasterworks.obj
561
------------------------------------------------------------------------------
562
MODULE libimg - обертка библиотеки libimg.obj
563
------------------------------------------------------------------------------