flex_nav/docs/fn_api_0.2.txt
savelij13 499aa7968d - исправлена проверка запускаемого файла по расширению.
- доки переведены на UTF8 кодировку.
- поправлена CorrBigChar.
2025-06-24 21:36:47 +03:00

572 lines
22 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[]========================================================================[]
* *
* Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins *
* doc v0.2 от 07.07.2002 *
* *
[]========================================================================[]
[]------------------------------------------------------------------------[]
ClearScreen - процедура отчистки 0-го экана нужным цветом.
на вход:
A - цвет отчистки (00-0Fh)
на выход:
-
[]------------------------------------------------------------------------[]
MakeWindow - процедура создания графического окна
на вход:
(SP) - описатель окна
на выход:
-
сразу за вызовом этой процедуры в программе следует описатель окна.
возврат из процедуры происходит по адресу, следующему за описателем.
например:
call MakeWindow
... ; описатель окна
описатель окна:
+00 (1) флаг вывода окна: 0 - без сохранения данных под окном
(используется для полноэкранных окон)
1 - с сохранением данных под окном
(используется для небольших окон)
0x7F - восстановить данные под окном
(флаг служит для закрытия
текущего окна)
+01 (2) координата x для вывода (0 - 639)
+03 (2) координата y для вывода (0 - 255)
+05 (2) длина окна по x (0 - 639)
+07 (2) длина окна по y (0 - 255)
далее идут об'екты окна в формате:
+00 (1) тип обекта
+01 ... описатели обекта
об'екты окна:
0. +00 (1) == 0 - конец списка об'ектов. после этого оконная
функция возвращает управление.
1. +00 (1) == 1 - текстовая строка
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (1) цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
+06 ... текстовая строка (конец строки - 0)
2. +00 (1) == 2 - заполнение прямоугольной плоскости
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (2) длина по x (0 - 639)
+07 (2) длина по y (0 - 255)
+09 (1) цвет заполнения
(d7-d4 цвет background, d3-d0 цвет foreground)
3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (2) длина по x (0 - 639)
+07 (2) длина по y (0 - 255)
4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (2) длина по x (0 - 639)
+07 (2) длина по y (0 - 255)
5. +00 (1) == 5 - отрисовка кнопки с текстом
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (2) длина по x (0 - 639)
+07 (2) длина по y (0 - 255)
+09 (1) цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
+10 ... текстовая строка (конец строки - 0)
Внимание! печать текста осуществляется с позиций
x + 4, y + 1
6. +00 (1) == 6 - отрисовка горизонтального разделителя
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (2) длина по x (0 - 639)
7. +00 (1) == 7 - отрисовка вертикального разделителя
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
+05 (2) длина по y (0 - 255)
8. +00 (1) == 8 - отрисовка левой кнопки скролбара <-
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
9. +00 (1) == 9 - отрисовка правой кнопки скролбара ->
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
11. +00 (1) == 11 - отрисовка нижней кнопки скролбара
+01 (2) смещение x от начала окна (0 - 639)
+03 (2) смещение y от начала окна (0 - 255)
[]------------------------------------------------------------------------[]
InvertRectan - процедура замены цвета прямоугольной плоскости
на вход:
HL - x координата
BC - y координата
HX - длина y
LX - длина x
D - текущий цвет
(d7-d4 цвет background, d3-d0 цвет foreground)
E - нужный цвет
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
-
к сожалению процедура не очень быстрая, поэтому большие
прямоугольники советую особо не инвертировать... ;)
[]------------------------------------------------------------------------[]
PrnTxtLnIFF - процедура вывода текстовых строк на графический экран
640x256 в режиме размерного по X шрифта
на вход:
HL - адрес текстовой строки (конец строки - 0)
DE - позиция вывода по X
BC - позиция вывода по Y
A - цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[]
PrnTxtLnNorm - процедура вывода текстовых строк на графический экран
640x256
на вход:
HL - адрес текстовой строки (конец строки - 0)
DE - позиция вывода по X
BC - позиция вывода по Y
A - цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[]
PrnTxtLnNormC - процедура вывода текстовых строк на графический экран
640x256 с известным числом символов
на вход:
HL - адрес текстовой строки
DE - позиция вывода по X
C - позиция вывода по Y
B - кол-во печатаемых символов
A - цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
HL - адрес байта, следующего за последним символом
[]------------------------------------------------------------------------[]
PrnRangPathL - процедура вывода досовских путей на графический экран
640x256 в режиме размерного по X шрифта, прижатых к
левому краю ( |-> )
на вход:
IX - кол-во пикселей под вывод строки
HL - адрес текстовой строки (конец строки - 0)
DE - позиция вывода по X
BC - позиция вывода по Y
A - цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
-
процедура грамотно укорачивает досовский путь до нужного
размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[]
PrnRangPathR - процедура вывода досовских путей на графический экран
640x256 в режиме размерного по X шрифта, прижатых к
правому краю ( <-| )
на вход:
IX - кол-во пикселей под вывод строки
HL - адрес текстовой строки (конец строки - 0)
DE - позиция вывода по X
BC - позиция вывода по Y
A - цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
-
процедура грамотно укорачивает досовский путь до нужного
размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[]
PrnRangPathC - процедура вывода досовских путей на графический экран
640x256 в режиме размерного по X шрифта, отцентрированных
относительно краёв ( <-|-> )
на вход:
IX - кол-во пикселей под вывод строки
HL - адрес текстовой строки (конец строки - 0)
DE - позиция вывода по X
BC - позиция вывода по Y
A - цвет печати
(d7-d4 цвет background, d3-d0 цвет foreground)
на выход:
-
процедура грамотно укорачивает досовский путь до нужного
размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[]
InputLine - процедура редактирования строки на графическом экране
640x256 в режиме размерного по X шрифта
на вход:
IX - адрес описателя строки
HL - адрес описателя элементов экрана (для мышки)
на выход:
-
описатель строки:
+00 (1) максимальная длина строки
+01 (1) флаг готовности
+02 (1) текущая X позиция курсора (инициализируется в InputLine)
+03 (1) текущая add_x (инициализируется в InputLine)
+04 (1) количество введенных символов / длина строки
+05 (2) X позиция строки на экране
+07 (2) Y позиция строки на экране
+09 (2) X длина строки на экране
+0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground)
+0C ... сама строка
процедуры для таблицы элементов экрана:
InpLnExtN - процедура нормального выхода из редакции
InpLnExtC - процедура выхода из редакции по cancel
(восстанавливает изначальную строку)
[]------------------------------------------------------------------------[]
InitScrBar - процедура инициализации описателя скроллбара
на вход:
IX - адрес описателя скроллбара
на выход:
-
[]------------------------------------------------------------------------[]
PrnHScrBar - процедура печати горизонтального скроллбара
на вход:
IX - адрес описателя скроллбара
на выход:
-
[]------------------------------------------------------------------------[]
PrnVScrBar - процедура печати вертикального скроллбара
на вход:
IX - адрес описателя скроллбара
на выход:
-
[]------------------------------------------------------------------------[]
InitProcess - процедура инициализации описателя процессбара
на вход:
IX - адрес описателя процессбара
на выход:
-
[]------------------------------------------------------------------------[]
PrnProcess - процедура печати процессбара
на вход:
IX - адрес описателя процессбара
на выход:
-
[]------------------------------------------------------------------------[]
ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены
на вход:
-
на выход:
-
[]------------------------------------------------------------------------[]
TestCoords - процедура проверки координат мыши по таблице элементов
зкрана
на вход:
IX - адрес таблицы элементов зкрана
на выход:
-
таблица элементов зкрана:
+00 (2) левая x координата элемента
+02 (2) правая x координата элемента
+04 (2) верхняя y координата элемента
+06 (2) нижняя y координата элемента
+08 (2) флаги элемента
+10 (2) адрес обработчика при не нажатом огне
+12 (2) адрес обработчика при нажатом огне (левая кнопка)
+14 (2) адрес обработчика при нажатом огне (правая кнопка)
флаги элемента:
d00 - элемент кнопка
d01 - рабочая кнопка
d02 - инверт
d03 - статичный инверт
d04 - программа запускается без адреса возврата без огня
d05 - программа запускается без адреса возврата по левой кнопке
огня
d06 - программа запускается без адреса возврата по правой кнопке
огня
d07 - вызвать функцию закрытия окна перед запуском программы без
огня
d08 - вызвать функцию закрытия окна перед запуском программы по
левой кнопке
d09 - вызвать функцию закрытия окна перед запуском программы по
правой кнопке
d15 - это флаг: 1 - инверт при огне не убирать
если +00 == 0x8000 это считается концом таблицы элементов зкрана
[]------------------------------------------------------------------------[]
SetCMOSPrint - процедура включения печати даты/время из CMOS
на вход:
- будет описано позднее
на выход:
-
[]------------------------------------------------------------------------[]
ResCMOSPrint - процедура выключения печати даты/время из CMOS
на вход:
- будет описано позднее
на выход:
-
[]------------------------------------------------------------------------[]
SetClock - процедура установки курсора мыши в часы
на вход:
-
на выход:
-
[]------------------------------------------------------------------------[]
SetMouse - процедура установки курсора мыши в нормальный курсор
на вход:
-
на выход:
-
[]------------------------------------------------------------------------[]
MoveBytes - процедура быстрого копирования памяти с помощью
акселлератора с увеличением адресов
на вход:
HL - откуда
DE - куда
BC - сколько
на выход:
HL - (откуда + сколько)
DE - (куда + сколько)
[]------------------------------------------------------------------------[]
MoveBytesUp - процедура быстрого копирования памяти с помощью
акселлератора с уменьшением адресов
на вход:
HL - откуда
DE - куда
BC - сколько
на выход:
HL - (откуда - сколько)
DE - (куда - сколько)
[]------------------------------------------------------------------------[]
Mult8 - процедура умножения 8 * 8 bit = 16 bit
на вход:
E * C
на выход:
HL - результат
[]------------------------------------------------------------------------[]
Mult16X8 - процедура умножения 16 * 8 bit = 24 bit
на вход:
DE * C
на выход:
A, HL - результат
[]------------------------------------------------------------------------[]
Mult16 - процедура умножения 16 * 16 bit = 16 bit
на вход:
DE * BC
на выход:
HL - результат
[]------------------------------------------------------------------------[]
Mult16X16 - процедура умножения 16 * 16 bit = 32 bit
на вход:
DE * BC
на выход:
HL, DE - результат
[]------------------------------------------------------------------------[]
Mult32 - процедура умножения 32 * 16 bit = 32 bit
на вход:
HL, DE * BC
на выход:
HL, DE - результат
[]------------------------------------------------------------------------[]
Divis16X16 - процедура деления 16 / 16 bit = 16.16 bit
на вход:
BC / DE
на выход:
BC - результат
HL - остаток
[]------------------------------------------------------------------------[]
Divis24X16 - процедура деления 24 / 16 bit = 8.16 bit
на вход:
HL, C / DE
на выход:
A - результат
HL - остаток
[]------------------------------------------------------------------------[]
Divis32X16 - процедура деления 32 / 16 bit = 16.16 bit
на вход:
HL, DE / BC
на выход:
DE - результат
HL - остаток
[]------------------------------------------------------------------------[]
Divis32 - процедура деления 32 / 16 bit = 32.16 bit
на вход:
HL, DE / BC
на выход:
HL, DE - результат
BC - остаток
[]------------------------------------------------------------------------[]
ConvNumTxt32 - процедура конвертации числа 32 bit в текст
на вход:
BC, HL - число 32 bit
DE - адрес буфера
на выход:
DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[]
ConvNumTxt16 - процедура конвертации числа 16 bit в текст
на вход:
HL - число 16 bit
DE - адрес буфера
на выход:
DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[]
ConvNumTxt8 - процедура конвертации числа 8 bit в текст
на вход:
A - число 8 bit
DE - адрес буфера
на выход:
DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[]
ConvTxtNum32 - процедура конвертации текста в число 32 bit
на вход:
DE - адрес текста (конец строки - 0)
на выход:
HL, IX - число
C flag - ошибка
[]------------------------------------------------------------------------[]
ConvTxtNum16 - процедура конвертации текста в число 16 bit
на вход:
DE - адрес текста (конец строки - 0)
на выход:
HL - число
C flag - ошибка
[]------------------------------------------------------------------------[]
DOSError - процедура вывода окна ошибки (для дос ошибок)
на вход:
A - номер ошибки
на выход:
-
[]------------------------------------------------------------------------[]
07 july 2002
Anton Enin (C) Copyright 2002 R-lab
если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме.