Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
7597 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
------------------------------------------------------------------------------