| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- ==============================================================================
- Библиотека (KolibriOS)
- ------------------------------------------------------------------------------
- MODULE Out - консольный вывод
- PROCEDURE Open
- формально открывает консольный вывод
- PROCEDURE Int(x, width: INTEGER)
- вывод целого числа x;
- width - количество знакомест, используемых для вывода
- PROCEDURE Real(x: REAL; width: INTEGER)
- вывод вещественного числа x в плавающем формате;
- width - количество знакомест, используемых для вывода
- PROCEDURE Char(x: CHAR)
- вывод символа x
- PROCEDURE FixReal(x: REAL; width, p: INTEGER)
- вывод вещественного числа x в фиксированном формате;
- width - количество знакомест, используемых для вывода;
- p - количество знаков после десятичной точки
- PROCEDURE Ln
- переход на следующую строку
- PROCEDURE String(s: ARRAY OF CHAR)
- вывод строки s
- ------------------------------------------------------------------------------
- MODULE In - консольный ввод
- VAR Done: BOOLEAN
- принимает значение TRUE в случае успешного выполнения
- операции ввода, иначе FALSE
- PROCEDURE Open
- формально открывает консольный ввод,
- также присваивает переменной Done значение TRUE
- PROCEDURE Int(VAR x: INTEGER)
- ввод числа типа INTEGER
- PROCEDURE Char(VAR x: CHAR)
- ввод символа
- PROCEDURE Real(VAR x: REAL)
- ввод числа типа REAL
- PROCEDURE String(VAR s: ARRAY OF CHAR)
- ввод строки
- PROCEDURE Ln
- ожидание нажатия ENTER
- ------------------------------------------------------------------------------
- MODULE Console - дополнительные процедуры консольного вывода
- CONST
- Следующие константы определяют цвет консольного вывода
- Black = 0 Blue = 1 Green = 2
- Cyan = 3 Red = 4 Magenta = 5
- Brown = 6 LightGray = 7 DarkGray = 8
- LightBlue = 9 LightGreen = 10 LightCyan = 11
- LightRed = 12 LightMagenta = 13 Yellow = 14
- White = 15
- PROCEDURE Cls
- очистка окна консоли
- PROCEDURE SetColor(FColor, BColor: INTEGER)
- установка цвета консольного вывода: FColor - цвет текста,
- BColor - цвет фона, возможные значения - вышеперечисленные
- константы
- PROCEDURE SetCursor(x, y: INTEGER)
- установка курсора консоли в позицию (x, y)
- PROCEDURE GetCursor(VAR x, y: INTEGER)
- записывает в параметры текущие координаты курсора консоли
- PROCEDURE GetCursorX(): INTEGER
- возвращает текущую x-координату курсора консоли
- PROCEDURE GetCursorY(): INTEGER
- возвращает текущую y-координату курсора консоли
- ------------------------------------------------------------------------------
- MODULE ConsoleLib - обертка библиотеки console.obj
- ------------------------------------------------------------------------------
- MODULE Math - математические функции
- CONST
- pi = 3.141592653589793E+00
- e = 2.718281828459045E+00
- PROCEDURE IsNan(x: REAL): BOOLEAN
- возвращает TRUE, если x - не число
- PROCEDURE IsInf(x: REAL): BOOLEAN
- возвращает TRUE, если x - бесконечность
- PROCEDURE sqrt(x: REAL): REAL
- квадратный корень x
- PROCEDURE exp(x: REAL): REAL
- экспонента x
- PROCEDURE ln(x: REAL): REAL
- натуральный логарифм x
- PROCEDURE sin(x: REAL): REAL
- синус x
- PROCEDURE cos(x: REAL): REAL
- косинус x
- PROCEDURE tan(x: REAL): REAL
- тангенс x
- PROCEDURE arcsin(x: REAL): REAL
- арксинус x
- PROCEDURE arccos(x: REAL): REAL
- арккосинус x
- PROCEDURE arctan(x: REAL): REAL
- арктангенс x
- PROCEDURE arctan2(y, x: REAL): REAL
- арктангенс y/x
- PROCEDURE power(base, exponent: REAL): REAL
- возведение числа base в степень exponent
- PROCEDURE log(base, x: REAL): REAL
- логарифм x по основанию base
- PROCEDURE sinh(x: REAL): REAL
- гиперболический синус x
- PROCEDURE cosh(x: REAL): REAL
- гиперболический косинус x
- PROCEDURE tanh(x: REAL): REAL
- гиперболический тангенс x
- PROCEDURE arsinh(x: REAL): REAL
- обратный гиперболический синус x
- PROCEDURE arcosh(x: REAL): REAL
- обратный гиперболический косинус x
- PROCEDURE artanh(x: REAL): REAL
- обратный гиперболический тангенс x
- PROCEDURE round(x: REAL): REAL
- округление x до ближайшего целого
- PROCEDURE frac(x: REAL): REAL;
- дробная часть числа x
- PROCEDURE floor(x: REAL): REAL
- наибольшее целое число (представление как REAL),
- не больше x: floor(1.2) = 1.0
- PROCEDURE ceil(x: REAL): REAL
- наименьшее целое число (представление как REAL),
- не меньше x: ceil(1.2) = 2.0
- PROCEDURE sgn(x: REAL): INTEGER
- если x > 0 возвращает 1
- если x < 0 возвращает -1
- если x = 0 возвращает 0
- PROCEDURE fact(n: INTEGER): REAL
- факториал n
- ------------------------------------------------------------------------------
- MODULE Debug - вывод на доску отладки
- Интерфейс как модуль Out
- PROCEDURE Open
- открывает доску отладки
- ------------------------------------------------------------------------------
- MODULE File - работа с файловой системой
- TYPE
- FNAME = ARRAY 520 OF CHAR
- FS = POINTER TO rFS
- rFS = RECORD (* информационная структура файла *)
- subfunc, pos, hpos, bytes, buffer: INTEGER;
- name: FNAME
- END
- FD = POINTER TO rFD
- rFD = RECORD (* структура блока данных входа каталога *)
- attr: INTEGER;
- ntyp: CHAR;
- reserved: ARRAY 3 OF CHAR;
- time_create, date_create,
- time_access, date_access,
- time_modif, date_modif,
- size, hsize: INTEGER;
- name: FNAME
- END
- CONST
- SEEK_BEG = 0
- SEEK_CUR = 1
- SEEK_END = 2
- PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER;
- Загружает в память файл с именем FName, записывает в параметр
- size размер файла, возвращает адрес загруженного файла
- или 0 (ошибка). При необходимости, распаковывает
- файл (kunpack).
- PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN
- Записывает структуру блока данных входа каталога для файла
- или папки с именем FName в параметр Info.
- При ошибке возвращает FALSE.
- PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
- возвращает TRUE, если файл с именем FName существует
- PROCEDURE Close(VAR F: FS)
- освобождает память, выделенную для информационной структуры
- файла F и присваивает F значение NIL
- PROCEDURE Open(FName: ARRAY OF CHAR): FS
- возвращает указатель на информационную структуру файла с
- именем FName, при ошибке возвращает NIL
- PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
- удаляет файл с именем FName, при ошибке возвращает FALSE
- PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER
- устанавливает позицию чтения-записи файла F на Offset,
- относительно Origin = (SEEK_BEG - начало файла,
- SEEK_CUR - текущая позиция, SEEK_END - конец файла),
- возвращает позицию относительно начала файла, например:
- Seek(F, 0, SEEK_END)
- устанавливает позицию на конец файла и возвращает длину
- файла; при ошибке возвращает -1
- PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER
- Читает данные из файла в память. F - указатель на
- информационную структуру файла, Buffer - адрес области
- памяти, Count - количество байт, которое требуется прочитать
- из файла; возвращает количество байт, которое было прочитано
- и соответствующим образом изменяет позицию чтения/записи в
- информационной структуре F.
- PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER
- Записывает данные из памяти в файл. F - указатель на
- информационную структуру файла, Buffer - адрес области
- памяти, Count - количество байт, которое требуется записать
- в файл; возвращает количество байт, которое было записано и
- соответствующим образом изменяет позицию чтения/записи в
- информационной структуре F.
- PROCEDURE Create(FName: ARRAY OF CHAR): FS
- создает новый файл с именем FName (полное имя), возвращает
- указатель на информационную структуру файла,
- при ошибке возвращает NIL
- PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
- создает папку с именем DirName, все промежуточные папки
- должны существовать, при ошибке возвращает FALSE
- PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN
- удаляет пустую папку с именем DirName,
- при ошибке возвращает FALSE
- PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN
- возвращает TRUE, если папка с именем DirName существует
- ------------------------------------------------------------------------------
- MODULE Read - чтение основных типов данных из файла F
- Процедуры возвращают TRUE в случае успешной операции чтения и
- соответствующим образом изменяют позицию чтения/записи в
- информационной структуре F
- PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN
- PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN
- PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN
- PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN
- PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN
- PROCEDURE WChar(F: File.FS; VAR x: WCHAR): BOOLEAN
- ------------------------------------------------------------------------------
- MODULE Write - запись основных типов данных в файл F
- Процедуры возвращают TRUE в случае успешной операции записи и
- соответствующим образом изменяют позицию чтения/записи в
- информационной структуре F
- PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN
- PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN
- PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN
- PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN
- PROCEDURE Set(F: File.FS; x: SET): BOOLEAN
- PROCEDURE WChar(F: File.FS; x: WCHAR): BOOLEAN
- ------------------------------------------------------------------------------
- MODULE DateTime - дата, время
- CONST ERR = -7.0E5
- PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER)
- записывает в параметры компоненты текущей системной даты и
- времени
- PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): REAL
- возвращает дату, полученную из компонентов
- Year, Month, Day, Hour, Min, Sec;
- при ошибке возвращает константу ERR = -7.0E5
- PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
- Hour, Min, Sec: INTEGER): BOOLEAN
- извлекает компоненты
- Year, Month, Day, Hour, Min, Sec из даты Date;
- при ошибке возвращает FALSE
- ------------------------------------------------------------------------------
- MODULE Args - параметры программы
- VAR argc: INTEGER
- количество параметров программы, включая имя
- исполняемого файла
- PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
- записывает в строку s n-й параметр программы,
- нумерация параметров от 0 до argc - 1,
- нулевой параметр -- имя исполняемого файла
- ------------------------------------------------------------------------------
- MODULE KOSAPI
- PROCEDURE sysfunc1(arg1: INTEGER): INTEGER
- PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER
- ...
- PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER
- Обертки для функций API ядра KolibriOS.
- arg1 .. arg7 соответствуют регистрам
- eax, ebx, ecx, edx, esi, edi, ebp;
- возвращают значение регистра eax после системного вызова.
- PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER
- Обертка для функций API ядра KolibriOS.
- arg1 - регистр eax, arg2 - регистр ebx,
- res2 - значение регистра ebx после системного вызова;
- возвращает значение регистра eax после системного вызова.
- PROCEDURE malloc(size: INTEGER): INTEGER
- Выделяет блок памяти.
- size - размер блока в байтах,
- возвращает адрес выделенного блока
- PROCEDURE free(ptr: INTEGER): INTEGER
- Освобождает ранее выделенный блок памяти с адресом ptr,
- возвращает 0
- PROCEDURE realloc(ptr, size: INTEGER): INTEGER
- Перераспределяет блок памяти,
- ptr - адрес ранее выделенного блока,
- size - новый размер,
- возвращает указатель на перераспределенный блок,
- 0 при ошибке
- PROCEDURE GetCommandLine(): INTEGER
- Возвращает адрес строки параметров
- PROCEDURE GetName(): INTEGER
- Возвращает адрес строки с именем программы
- PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER
- Загружает DLL с полным именем name. Возвращает адрес таблицы
- экспорта. При ошибке возвращает 0.
- PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER
- name - имя процедуры
- lib - адрес таблицы экспорта DLL
- Возвращает адрес процедуры. При ошибке возвращает 0.
- ------------------------------------------------------------------------------
- MODULE ColorDlg - работа с диалогом "Color Dialog"
- TYPE
- Dialog = POINTER TO RECORD (* структура диалога *)
- status: INTEGER (* состояние диалога:
- 0 - пользователь нажал Cancel
- 1 - пользователь нажал OK
- 2 - диалог открыт *)
- color: INTEGER (* выбранный цвет *)
- END
- PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog
- создать диалог
- draw_window - процедура перерисовки основного окна
- (TYPE DRAW_WINDOW = PROCEDURE);
- процедура возвращает указатель на структуру диалога
- PROCEDURE Show(cd: Dialog)
- показать диалог
- cd - указатель на структуру диалога, который был создан ранее
- процедурой Create
- PROCEDURE Destroy(VAR cd: Dialog)
- уничтожить диалог
- cd - указатель на структуру диалога
- ------------------------------------------------------------------------------
- MODULE OpenDlg - работа с диалогом "Open Dialog"
- TYPE
- Dialog = POINTER TO RECORD (* структура диалога *)
- status: INTEGER (* состояние диалога:
- 0 - пользователь нажал Cancel
- 1 - пользователь нажал OK
- 2 - диалог открыт *)
- FileName: ARRAY 4096 OF CHAR (* имя выбранного файла *)
- FilePath: ARRAY 4096 OF CHAR (* полное имя выбранного
- файла *)
- END
- PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path,
- filter: ARRAY OF CHAR): Dialog
- создать диалог
- draw_window - процедура перерисовки основного окна
- (TYPE DRAW_WINDOW = PROCEDURE)
- type - тип диалога
- 0 - открыть
- 1 - сохранить
- 2 - выбрать папку
- def_path - путь по умолчанию, папка def_path будет открыта
- при первом запуске диалога
- filter - в строке записано перечисление расширений файлов,
- которые будут показаны в диалоговом окне, расширения
- разделяются символом "|", например: "ASM|TXT|INI"
- процедура возвращает указатель на структуру диалога
- PROCEDURE Show(od: Dialog; Width, Height: INTEGER)
- показать диалог
- od - указатель на структуру диалога, который был создан ранее
- процедурой Create
- Width и Height - ширина и высота диалогового окна
- PROCEDURE Destroy(VAR od: Dialog)
- уничтожить диалог
- od - указатель на структуру диалога
- ------------------------------------------------------------------------------
- MODULE kfonts - работа с kf-шрифтами
- CONST
- bold = 1
- italic = 2
- underline = 4
- strike_through = 8
- smoothing = 16
- bpp32 = 32
- TYPE
- TFont = POINTER TO TFont_desc (* указатель на шрифт *)
- PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont
- загрузить шрифт из файла
- file_name имя kf-файла
- рез-т: указатель на шрифт/NIL (ошибка)
- PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN
- установить размер шрифта
- Font указатель на шрифт
- font_size размер шрифта
- рез-т: TRUE/FALSE (ошибка)
- PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN
- проверить, есть ли шрифт, заданного размера
- Font указатель на шрифт
- font_size размер шрифта
- рез-т: TRUE/FALSE (шрифта нет)
- PROCEDURE Destroy(VAR Font: TFont)
- выгрузить шрифт, освободить динамическую память
- Font указатель на шрифт
- Присваивает переменной Font значение NIL
- PROCEDURE TextHeight(Font: TFont): INTEGER
- получить высоту строки текста
- Font указатель на шрифт
- рез-т: высота строки текста в пикселях
- PROCEDURE TextWidth(Font: TFont;
- str, length, params: INTEGER): INTEGER
- получить ширину строки текста
- Font указатель на шрифт
- str адрес строки текста в кодировке Win-1251
- length количество символов в строке или -1, если строка
- завершается нулем
- params параметры-флаги см. ниже
- рез-т: ширина строки текста в пикселях
- PROCEDURE TextOut(Font: TFont;
- canvas, x, y, str, length, color, params: INTEGER)
- вывести текст в буфер
- для вывода буфера в окно, использовать ф.65 или
- ф.7 (если буфер 24-битный)
- Font указатель на шрифт
- canvas адрес графического буфера
- структура буфера:
- Xsize dd
- Ysize dd
- picture rb Xsize * Ysize * 4 (32 бита)
- или Xsize * Ysize * 3 (24 бита)
- x, y координаты текста относительно левого верхнего
- угла буфера
- str адрес строки текста в кодировке Win-1251
- length количество символов в строке или -1, если строка
- завершается нулем
- color цвет текста 0x00RRGGBB
- params параметры-флаги:
- 1 жирный
- 2 курсив
- 4 подчеркнутый
- 8 перечеркнутый
- 16 применить сглаживание
- 32 вывод в 32-битный буфер
- возможно использование флагов в любых сочетаниях
- ------------------------------------------------------------------------------
- MODULE RasterWorks - обертка библиотеки Rasterworks.obj
- ------------------------------------------------------------------------------
- MODULE libimg - обертка библиотеки libimg.obj
- ------------------------------------------------------------------------------
|