Subversion Repositories Kolibri OS

Rev

Rev 7597 | Go to most recent revision | Details | Compare with Previous | 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
 
7693 akron1 101
		pi = 3.141592653589793E+00
102
		e  = 2.718281828459045E+00
7597 akron1 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
 
7693 akron1 156
	PROCEDURE arsinh(x: REAL): REAL
7597 akron1 157
		обратный гиперболический синус x
158
 
7693 akron1 159
	PROCEDURE arcosh(x: REAL): REAL
7597 akron1 160
		обратный гиперболический косинус x
161
 
7693 akron1 162
	PROCEDURE artanh(x: REAL): REAL
7597 akron1 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
 
7693 akron1 184
	PROCEDURE fact(n: INTEGER): REAL
185
		факториал n
186
 
7597 akron1 187
------------------------------------------------------------------------------
188
MODULE Debug - вывод на доску отладки
189
	Интерфейс как модуль Out
190
 
191
	PROCEDURE Open
192
		открывает доску отладки
193
 
194
------------------------------------------------------------------------------
195
MODULE File - работа с файловой системой
196
 
197
	TYPE
198
 
199
		FNAME = ARRAY 520 OF CHAR
200
 
201
		FS = POINTER TO rFS
202
 
203
		rFS = RECORD (* информационная структура файла *)
204
			subfunc, pos, hpos, bytes, buffer: INTEGER;
205
			name: FNAME
206
		END
207
 
208
		FD = POINTER TO rFD
209
 
210
		rFD = RECORD (* структура блока данных входа каталога *)
211
			attr: INTEGER;
212
			ntyp: CHAR;
213
			reserved: ARRAY 3 OF CHAR;
214
			time_create, date_create,
215
			time_access, date_access,
216
			time_modif,  date_modif,
217
			size, hsize: INTEGER;
218
			name: FNAME
219
		END
220
 
221
	CONST
222
 
223
		SEEK_BEG = 0
224
		SEEK_CUR = 1
225
		SEEK_END = 2
226
 
227
	PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER;
228
		Загружает в память файл с именем FName, записывает в параметр
229
		size размер файла, возвращает адрес загруженного файла
230
		или 0 (ошибка). При необходимости, распаковывает
231
		файл (kunpack).
232
 
233
	PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN
234
		Записывает структуру блока данных входа каталога для файла
235
		или папки с именем FName в параметр Info.
236
		При ошибке возвращает FALSE.
237
 
238
	PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
239
		возвращает TRUE, если файл с именем FName существует
240
 
241
	PROCEDURE Close(VAR F: FS)
242
		освобождает память, выделенную для информационной структуры
243
		файла F и присваивает F значение NIL
244
 
245
	PROCEDURE Open(FName: ARRAY OF CHAR): FS
246
		возвращает указатель на информационную структуру файла с
247
		именем FName, при ошибке возвращает NIL
248
 
249
	PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
250
		удаляет файл с именем FName, при ошибке возвращает FALSE
251
 
252
	PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER
253
		устанавливает позицию чтения-записи файла F на Offset,
254
		относительно Origin = (SEEK_BEG - начало файла,
255
		SEEK_CUR - текущая позиция, SEEK_END - конец файла),
256
		возвращает позицию относительно начала файла, например:
257
			Seek(F, 0, SEEK_END)
258
		устанавливает позицию на конец файла и возвращает длину
259
		файла; при ошибке возвращает -1
260
 
261
	PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER
262
		Читает данные из файла в память. F - указатель на
263
		информационную структуру файла, Buffer - адрес области
264
		памяти, Count - количество байт, которое требуется прочитать
265
		из файла; возвращает количество байт, которое было прочитано
266
		и соответствующим образом изменяет позицию чтения/записи в
267
		информационной структуре F.
268
 
269
	PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER
270
		Записывает данные из памяти в файл. F - указатель на
271
		информационную структуру файла, Buffer - адрес области
272
		памяти, Count - количество байт, которое требуется записать
273
		в файл; возвращает количество байт, которое было записано и
274
		соответствующим образом изменяет позицию чтения/записи в
275
		информационной структуре F.
276
 
277
	PROCEDURE Create(FName: ARRAY OF CHAR): FS
278
		создает новый файл с именем FName (полное имя), возвращает
279
		указатель на информационную структуру файла,
280
		при ошибке возвращает NIL
281
 
282
	PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
283
		создает папку с именем DirName, все промежуточные папки
284
		должны существовать, при ошибке возвращает FALSE
285
 
286
	PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN
287
		удаляет пустую папку с именем DirName,
288
		при ошибке возвращает FALSE
289
 
290
	PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN
291
		возвращает TRUE, если папка с именем DirName существует
292
 
293
------------------------------------------------------------------------------
294
MODULE Read - чтение основных типов данных из файла F
295
 
296
	Процедуры возвращают TRUE в случае успешной операции чтения и
297
	соответствующим образом изменяют позицию чтения/записи в
298
	информационной структуре F
299
 
300
	PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN
301
 
302
	PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN
303
 
304
	PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN
305
 
306
	PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN
307
 
308
	PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN
309
 
310
	PROCEDURE Card16(F: File.FS; VAR x: SYSTEM.CARD16): BOOLEAN
311
 
312
------------------------------------------------------------------------------
313
MODULE Write - запись основных типов данных в файл F
314
 
315
	Процедуры возвращают TRUE в случае успешной операции записи и
316
	соответствующим образом изменяют позицию чтения/записи в
317
	информационной структуре F
318
 
319
	PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN
320
 
321
	PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN
322
 
323
	PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN
324
 
325
	PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN
326
 
327
	PROCEDURE Set(F: File.FS; x: SET): BOOLEAN
328
 
329
	PROCEDURE Card16(F: File.FS; x: SYSTEM.CARD16): BOOLEAN
330
 
331
------------------------------------------------------------------------------
332
MODULE DateTime - дата, время
333
 
334
	CONST ERR = -7.0E5
335
 
336
	PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER)
337
		записывает в параметры компоненты текущей системной даты и
338
		времени
339
 
340
	PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): REAL
341
		возвращает дату, полученную из компонентов
342
		Year, Month, Day, Hour, Min, Sec;
7693 akron1 343
		при ошибке возвращает константу ERR = -7.0E5
7597 akron1 344
 
345
	PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
346
				Hour, Min, Sec: INTEGER): BOOLEAN
347
		извлекает компоненты
348
		Year, Month, Day, Hour, Min, Sec из даты Date;
349
		при ошибке возвращает FALSE
350
 
351
------------------------------------------------------------------------------
352
MODULE Args - параметры программы
353
 
354
	VAR argc: INTEGER
355
		количество параметров программы, включая имя
356
		исполняемого файла
357
 
358
	PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
359
		записывает в строку s n-й параметр программы,
360
		нумерация параметров от 0 до argc - 1,
361
		нулевой параметр -- имя исполняемого файла
362
 
363
------------------------------------------------------------------------------
364
MODULE KOSAPI
365
 
366
	PROCEDURE sysfunc1(arg1: INTEGER): INTEGER
367
	PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER
368
	...
369
	PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER
370
		Обертки для функций API ядра KolibriOS.
371
		arg1 .. arg7 соответствуют регистрам
372
			eax, ebx, ecx, edx, esi, edi, ebp;
373
		возвращают значение регистра eax после системного вызова.
374
 
375
	PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER
376
		Обертка для функций API ядра KolibriOS.
377
		arg1 - регистр eax, arg2 - регистр ebx,
378
		res2 - значение регистра ebx после системного вызова;
379
		возвращает значение регистра eax после системного вызова.
380
 
381
	PROCEDURE malloc(size: INTEGER): INTEGER
382
		Выделяет блок памяти.
383
		size - размер блока в байтах,
384
		возвращает адрес выделенного блока
385
 
386
	PROCEDURE free(ptr: INTEGER): INTEGER
387
		Освобождает ранее выделенный блок памяти с адресом ptr,
388
		возвращает 0
389
 
390
	PROCEDURE realloc(ptr, size: INTEGER): INTEGER
391
		Перераспределяет блок памяти,
392
		ptr - адрес ранее выделенного блока,
393
		size - новый размер,
394
		возвращает указатель на перераспределенный блок,
395
 
396
 
397
	PROCEDURE GetCommandLine(): INTEGER
398
		Возвращает адрес строки параметров
399
 
400
	PROCEDURE GetName(): INTEGER
401
		Возвращает адрес строки с именем программы
402
 
403
	PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER
404
		Загружает DLL с полным именем name. Возвращает адрес таблицы
405
		экспорта. При ошибке возвращает 0.
406
 
407
	PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER
408
		name - имя процедуры
409
		lib - адрес таблицы экспорта DLL
410
		Возвращает адрес процедуры. При ошибке возвращает 0.
411
 
412
------------------------------------------------------------------------------
413
MODULE ColorDlg - работа с диалогом "Color Dialog"
414
 
415
	TYPE
416
 
417
		Dialog = POINTER TO RECORD (* структура диалога *)
418
		    status: INTEGER   (* состояние диалога:
419
 
420
					 1 - пользователь нажал OK
421
					 2 - диалог открыт	     *)
422
 
423
		    color:  INTEGER   (* выбранный цвет *)
424
		END
425
 
426
	PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog
427
		создать диалог
428
		draw_window - процедура перерисовки основного окна
429
		(TYPE DRAW_WINDOW = PROCEDURE);
430
		процедура возвращает указатель на структуру диалога
431
 
432
	PROCEDURE Show(cd: Dialog)
433
		показать диалог
434
		cd - указатель на структуру диалога, который был создан ранее
435
		процедурой Create
436
 
437
	PROCEDURE Destroy(VAR cd: Dialog)
438
		уничтожить диалог
439
		cd - указатель на структуру диалога
440
 
441
------------------------------------------------------------------------------
442
MODULE OpenDlg - работа с диалогом "Open Dialog"
443
 
444
	TYPE
445
 
446
		Dialog = POINTER TO RECORD (* структура диалога *)
447
		    status:   INTEGER  (* состояние диалога:
448
 
449
					  1 - пользователь нажал OK
450
					  2 - диалог открыт	      *)
451
 
452
		    FileName: ARRAY 4096 OF CHAR (* имя выбранного файла *)
453
		    FilePath: ARRAY 4096 OF CHAR (* полное имя выбранного
454
						    файла		 *)
455
		END
456
 
457
	PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path,
458
			filter: ARRAY OF CHAR): Dialog
459
		создать диалог
460
		draw_window - процедура перерисовки основного окна
461
			(TYPE DRAW_WINDOW = PROCEDURE)
462
		type -	тип диалога
463
 
464
			1 - сохранить
465
			2 - выбрать папку
466
		def_path - путь по умолчанию, папка def_path будет открыта
467
			при первом запуске диалога
468
		filter - в строке записано перечисление расширений файлов,
469
			которые будут показаны в диалоговом окне, расширения
470
			разделяются символом "|", например: "ASM|TXT|INI"
471
		процедура возвращает указатель на структуру диалога
472
 
473
	PROCEDURE Show(od: Dialog; Width, Height: INTEGER)
474
		показать диалог
475
		od - указатель на структуру диалога, который был создан ранее
476
		     процедурой Create
477
		Width и Height - ширина и высота диалогового окна
478
 
479
	PROCEDURE Destroy(VAR od: Dialog)
480
		уничтожить диалог
481
		od - указатель на структуру диалога
482
 
483
------------------------------------------------------------------------------
484
MODULE kfonts - работа с kf-шрифтами
485
 
486
	CONST
487
 
488
		bold		=   1
489
		italic		=   2
490
		underline	=   4
491
		strike_through	=   8
492
		smoothing	=  16
493
		bpp32		=  32
494
 
495
	TYPE
496
 
497
		TFont = POINTER TO TFont_desc (* указатель на шрифт *)
498
 
499
	PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont
500
		загрузить шрифт из файла
501
		file_name   имя kf-файла
502
		рез-т:	    указатель на шрифт/NIL (ошибка)
503
 
504
	PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN
505
		установить размер шрифта
506
		Font	    указатель на шрифт
507
		font_size   размер шрифта
508
		рез-т:	    TRUE/FALSE (ошибка)
509
 
510
	PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN
511
		проверить, есть ли шрифт, заданного размера
512
		Font	    указатель на шрифт
513
		font_size   размер шрифта
514
		рез-т:	    TRUE/FALSE (шрифта нет)
515
 
516
	PROCEDURE Destroy(VAR Font: TFont)
517
		выгрузить шрифт, освободить динамическую память
518
		Font	    указатель на шрифт
519
		Присваивает переменной Font значение NIL
520
 
521
	PROCEDURE TextHeight(Font: TFont): INTEGER
522
		получить высоту строки текста
523
		Font	    указатель на шрифт
524
		рез-т:	    высота строки текста в пикселях
525
 
526
	PROCEDURE TextWidth(Font: TFont;
527
		    str, length, params: INTEGER): INTEGER
528
		получить ширину строки текста
529
		Font	    указатель на шрифт
530
		str	    адрес строки текста в кодировке Win-1251
531
		length	    количество символов в строке или -1, если строка
532
			    завершается нулем
533
		params	    параметры-флаги см. ниже
534
		рез-т:	    ширина строки текста в пикселях
535
 
536
	PROCEDURE TextOut(Font: TFont;
537
		    canvas, x, y, str, length, color, params: INTEGER)
538
		вывести текст в буфер
539
		для вывода буфера в окно, использовать ф.65 или
540
		ф.7 (если буфер 24-битный)
541
		Font	    указатель на шрифт
542
		canvas	    адрес графического буфера
543
			    структура буфера:
544
			      Xsize	  dd
545
			      Ysize	  dd
546
			      picture	  rb  Xsize * Ysize * 4 (32 бита)
547
					      или Xsize * Ysize * 3 (24 бита)
548
		x, y	    координаты текста относительно левого верхнего
549
			    угла буфера
550
		str	    адрес строки текста в кодировке Win-1251
551
		length	    количество символов в строке или -1, если строка
552
			    завершается нулем
553
		color	    цвет текста 0x00RRGGBB
554
		params	    параметры-флаги:
555
			       1   жирный
556
			       2   курсив
557
			       4   подчеркнутый
558
			       8   перечеркнутый
559
			      16   применить сглаживание
560
			      32   вывод в 32-битный буфер
561
			    возможно использование флагов в любых сочетаниях
562
------------------------------------------------------------------------------
563
MODULE RasterWorks - обертка библиотеки Rasterworks.obj
564
------------------------------------------------------------------------------
565
MODULE libimg - обертка библиотеки libimg.obj
566
------------------------------------------------------------------------------