- исправлена проверка запускаемого файла по расширению.

- доки переведены на UTF8 кодировку.
- поправлена CorrBigChar.
This commit is contained in:
savelij13 2025-06-24 21:36:47 +03:00
parent 95a0059c02
commit 499aa7968d
18 changed files with 1730 additions and 1687 deletions

View File

@ -7,23 +7,23 @@ struct FlxPluginHeader {
unsigned char Reserved[3]; unsigned char Reserved[3];
}; };
‡ £®«®¢®ª ¯« £¨­  ¤«ï Flex Navigator v1.xx: Заголовок плагина для Flex Navigator v1.xx:
8 ¡ ©â Id - ¨­¤¥­â¨ä¨ª â®à ¯« £¨­ , ¯¥à¢ë¥ 3 ᨬ¢®«  ¢á¥£¤  ¤®«¦­ë ¡ëâì FLX 8 байт Id - индентификатор плагина, первые 3 символа всегда должны быть FLX
2 ¡ ©â  LoadOffset - ᬥ饭¨¥ ¢ áâà ­¨æ¥ ¯ ¬ï⨠¤«ï § £à㧪¨ (0 - 0x3FFF) 2 байта LoadOffset - смещение в странице памяти для загрузки (0 - 0x3FFF)
2 ¡ ©â  EntryOffset - ᬥ饭¨¥ ¢ áâà ­¨æ¥ ¯ ¬ï⨠¤«ï § ¯ã᪠ (0 - 0x3FFF) 2 байта EntryOffset - смещение в странице памяти для запуска (0 - 0x3FFF)
1 ¡ ©â PluginMode - ०¨¬ à ¡®âë: 1 байт PluginMode - режим работы:
0 - à ¡®â ¥â á ¢®ááâ ­®¢«¥­¨¥¬ à ¡®ç¥© ®¡« á⨠Flex Navigator 0 - работает с восстановлением рабочей области Flex Navigator
(â.¥. ¯®á«¥ à ¡®âë ¯« £¨­  ­¥ ­ã¦­® ¢®ááâ ­ ¢«¨¢ âì íªà ­) (т.е. после работы плагина не нужно восстанавливать экран)
1 - à ¡®â ¥â ¡¥§ ¢®ááâ ­®¢«¥­¨ï à ¡®ç¥© ®¡« á⨠Flex Navigator 1 - работает без восстановления рабочей области Flex Navigator
(â.¥. ¯®á«¥ à ¡®âë ¯« £¨­  ­ã¦­® ¢®ááâ ­ ¢«¨¢ âì íªà ­) (т.е. после работы плагина нужно восстанавливать экран)
3 ¡ ©â  Reserved - § à¥§¥à¢¨à®¢ ­® 3 байта Reserved - зарезервировано
¤«¨­  = 16 ¡ ©â длина = 16 байт
!!! <EFBFBD>ˆŒ€<EFBFBD>ˆ !!! ВНИМАНИЕ
1. ¢á¥ ¯« £¨­ë ¤«ï Flex Navigator v1.xx ­¥ ¤®«¦­ë ¯à¥¢ëè âì ¢ à §¬¥à¥ ®á­®¢­®£® ª®¤  1. все плагины для Flex Navigator v1.xx не должны превышать в размере основного кода
(â.¥. ¡¥§ § £®«®¢ª ) 0x4000 ¡ ©â . (т.е. без заголовка) 0x4000 байта.
2. ¢á¥ ¯« £¨­ë ¤«ï Flex Navigator v1.xx ¤®«¦­ë ¡ëâì ®âª®¬¯¨«¨à®¢ ­ë á  ¤à¥á  0xC000 2. все плагины для Flex Navigator v1.xx должны быть откомпилированы с адреса 0xC000
(â.¥. org = 0xC000). (т.е. org = 0xC000).
3. ¢®§¢à é ¥¬®¥ §­ ç¥­¨¥: 3. возвращаемое значение:
CF = 1 ®è¨¡ª  ­  áâ ¤¨¨ ¨­¨â¨ «¨§ æ¨¨ (¯®á«¥ ­¥ñ ­¨ç¥£® ­¥ ¢®ááâ ­ ¢«¨¢ ¥âáï) CF = 1 ошибка на стадии инитиализации (после неё ничего не восстанавливается)
CF = 0 ­¥â ®è¨¡ª¨ CF = 0 нет ошибки

View File

@ -1,7 +1,7 @@
[]========================================================================[] []========================================================================[]
* * * *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins * * Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins *
* doc v0.2 ®â 07.07.2002 * * doc v0.2 от 07.07.2002 *
* * * *
[]========================================================================[] []========================================================================[]
@ -11,554 +11,554 @@
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ClearScreen - ¯à®æ¥¤ãà  ®âç¨á⪨ 0-£® íª ­  ­ã¦­ë¬ 梥⮬. ClearScreen - процедура отчистки 0-го экана нужным цветом.
­  ¢å®¤: на вход:
A - 梥⠮âç¨á⪨ (00-0Fh) A - цвет отчистки (00-0Fh)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MakeWindow - ¯à®æ¥¤ãà  á®§¤ ­¨ï £à ä¨ç¥áª®£® ®ª­  MakeWindow - процедура создания графического окна
­  ¢å®¤: на вход:
(SP) - ®¯¨á â¥«ì ®ª­  (SP) - описатель окна
­  ¢ë室: на выход:
- -
áà §ã §  ¢ë§®¢®¬ í⮩ ¯à®æ¥¤ãàë ¢ ¯à®£à ¬¬¥ á«¥¤ã¥â ®¯¨á â¥«ì ®ª­ . сразу за вызовом этой процедуры в программе следует описатель окна.
¢®§¢à â ¨§ ¯à®æ¥¤ãàë ¯à®¨á室¨â ¯®  ¤à¥áã, á«¥¤ãî饬㠧  ®¯¨á â¥«¥¬. возврат из процедуры происходит по адресу, следующему за описателем.
­ ¯à¨¬¥à: например:
call MakeWindow call MakeWindow
... ; ®¯¨á â¥«ì ®ª­  ... ; описатель окна
®¯¨á â¥«ì ®ª­ : описатель окна:
+00 (1) ä« £ ¢ë¢®¤  ®ª­ : 0 - ¡¥§ á®åà ­¥­¨ï ¤ ­­ëå ¯®¤ ®ª­®¬ +00 (1) флаг вывода окна: 0 - без сохранения данных под окном
(¨á¯®«ì§ã¥âáï ¤«ï ¯®«­®íªà ­­ëå ®ª®­) (используется для полноэкранных окон)
1 - á á®åà ­¥­¨¥¬ ¤ ­­ëå ¯®¤ ®ª­®¬ 1 - с сохранением данных под окном
(¨á¯®«ì§ã¥âáï ¤«ï ­¥¡®«ìè¨å ®ª®­) (используется для небольших окон)
0x7F - ¢®ááâ ­®¢¨âì ¤ ­­ë¥ ¯®¤ ®ª­®¬ 0x7F - восстановить данные под окном
(ä« £ á«ã¦¨â ¤«ï § ªàëâ¨ï (флаг служит для закрытия
⥪ã饣® ®ª­ ) текущего окна)
+01 (2) ª®®à¤¨­ â  x ¤«ï ¢ë¢®¤  (0 - 639) +01 (2) координата x для вывода (0 - 639)
+03 (2) ª®®à¤¨­ â  y ¤«ï ¢ë¢®¤  (0 - 255) +03 (2) координата y для вывода (0 - 255)
+05 (2) ¤«¨­  ®ª­  ¯® x (0 - 639) +05 (2) длина окна по x (0 - 639)
+07 (2) ¤«¨­  ®ª­  ¯® y (0 - 255) +07 (2) длина окна по y (0 - 255)
¤ «¥¥ ¨¤ãâ ®¡'¥ªâë ®ª­  ¢ ä®à¬ â¥: далее идут об'екты окна в формате:
+00 (1) ⨯ ®¡¥ªâ  +00 (1) тип обекта
+01 ... ®¯¨á â¥«¨ ®¡¥ªâ  +01 ... описатели обекта
®¡'¥ªâë ®ª­ : об'екты окна:
0. +00 (1) == 0 - ª®­¥æ ᯨ᪠ ®¡'¥ªâ®¢. ¯®á«¥ í⮣® ®ª®­­ ï 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная
äã­ªæ¨ï ¢®§¢à é ¥â ã¯à ¢«¥­¨¥. функция возвращает управление.
1. +00 (1) == 1 - ⥪á⮢ ï áâப  1. +00 (1) == 1 - текстовая строка
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (1) 梥⠯¥ç â¨ +05 (1) цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
+06 ... ⥪á⮢ ï áâப  (ª®­¥æ áâப¨ - 0) +06 ... текстовая строка (конец строки - 0)
2. +00 (1) == 2 - § ¯®«­¥­¨¥ ¯àאַ㣮«ì­®© ¯«®áª®á⨠2. +00 (1) == 2 - заполнение прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
+09 (1) 梥⠧ ¯®«­¥­¨ï +09 (1) цвет заполнения
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
3. +00 (1) == 3 - ®âà¨á®¢ª  㣫㡫ñ­­®© ¯àאַ㣮«ì­®© ¯«®áª®á⨠3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
4. +00 (1) == 4 - ®âà¨á®¢ª  ¢ë¯ãª«®© ¯àאַ㣮«ì­®© ¯«®áª®á⨠4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
5. +00 (1) == 5 - ®âà¨á®¢ª  ª­®¯ª¨ á ⥪á⮬ 5. +00 (1) == 5 - отрисовка кнопки с текстом
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
+09 (1) 梥⠯¥ç â¨ +09 (1) цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
+10 ... ⥪á⮢ ï áâப  (ª®­¥æ áâப¨ - 0) +10 ... текстовая строка (конец строки - 0)
‚­¨¬ ­¨¥! ¯¥ç âì ⥪áâ  ®áãé¥á⢫ï¥âáï á ¯®§¨æ¨© Внимание! печать текста осуществляется с позиций
x + 4, y + 1 x + 4, y + 1
6. +00 (1) == 6 - ®âà¨á®¢ª  £®à¨§®­â «ì­®£® à §¤¥«¨â¥«ï 6. +00 (1) == 6 - отрисовка горизонтального разделителя
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
7. +00 (1) == 7 - ®âà¨á®¢ª  ¢¥à⨪ «ì­®£® à §¤¥«¨â¥«ï 7. +00 (1) == 7 - отрисовка вертикального разделителя
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® y (0 - 255) +05 (2) длина по y (0 - 255)
8. +00 (1) == 8 - ®âà¨á®¢ª  «¥¢®© ª­®¯ª¨ áªà®«¡ à  <- 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <-
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
9. +00 (1) == 9 - ®âà¨á®¢ª  ¯à ¢®© ª­®¯ª¨ áªà®«¡ à  -> 9. +00 (1) == 9 - отрисовка правой кнопки скролбара ->
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
10. +00 (1) == 10 - ®âà¨á®¢ª  ¢¥àå­¥© ª­®¯ª¨ áªà®«¡ à  ^ 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
11. +00 (1) == 11 - ®âà¨á®¢ª  ­¨¦­¥© ª­®¯ª¨ áªà®«¡ à  11. +00 (1) == 11 - отрисовка нижней кнопки скролбара
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InvertRectan - ¯à®æ¥¤ãà  § ¬¥­ë æ¢¥â  ¯àאַ㣮«ì­®© ¯«®áª®á⨠InvertRectan - процедура замены цвета прямоугольной плоскости
­  ¢å®¤: на вход:
HL - x ª®®à¤¨­ â  HL - x координата
BC - y ª®®à¤¨­ â  BC - y координата
HX - ¤«¨­  y HX - длина y
LX - ¤«¨­  x LX - длина x
D - ⥪ã騩 梥â D - текущий цвет
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
E - ­ã¦­ë© 梥â E - нужный цвет
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
ª ᮦ «¥­¨î ¯à®æ¥¤ãà  ­¥ ®ç¥­ì ¡ëáâà ï, ¯®í⮬㠡®«ì訥 к сожалению процедура не очень быстрая, поэтому большие
¯àאַ㣮«ì­¨ª¨ ᮢ¥âãî ®á®¡® ­¥ ¨­¢¥àâ¨à®¢ âì... ;) прямоугольники советую особо не инвертировать... ;)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnIFF - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnIFF - процедура вывода текстовых строк на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ  640x256 в режиме размерного по X шрифта
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®© HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnNorm - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnNorm - процедура вывода текстовых строк на графический экран
640x256 640x256
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®© HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnNormC - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnNormC - процедура вывода текстовых строк на графический экран
640x256 á ¨§¢¥áâ­ë¬ ç¨á«®¬ ᨬ¢®«®¢ 640x256 с известным числом символов
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ HL - адрес текстовой строки
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
C - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y C - позиция вывода по Y
B - ª®«-¢® ¯¥ç â ¥¬ëå ᨬ¢®«®¢ B - кол-во печатаемых символов
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  ¯®á«¥¤­¨¬ ᨬ¢®«®¬ HL - адрес байта, следующего за последним символом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathL - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathL - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª 640x256 в режиме размерного по X шрифта, прижатых к
«¥¢®¬ã ªà î ( |-> ) левому краю ( |-> )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathR - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathR - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª 640x256 в режиме размерного по X шрифта, прижатых к
¯à ¢®¬ã ªà î ( <-| ) правому краю ( <-| )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathC - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathC - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ®â業âà¨à®¢ ­­ëå 640x256 в режиме размерного по X шрифта, отцентрированных
®â­®á¨â¥«ì­® ªà ñ¢ ( <-|-> ) относительно краёв ( <-|-> )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InputLine - ¯à®æ¥¤ãà  à¥¤ ªâ¨à®¢ ­¨ï áâப¨ ­  £à ä¨ç¥áª®¬ íªà ­¥ InputLine - процедура редактирования строки на графическом экране
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ  640x256 в режиме размерного по X шрифта
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áâப¨ IX - адрес описателя строки
HL -  ¤à¥á ®¯¨á â¥«ï í«¥¬¥­â®¢ íªà ­  (¤«ï ¬ë誨) HL - адрес описателя элементов экрана (для мышки)
­  ¢ë室: на выход:
- -
®¯¨á â¥«ì áâப¨: описатель строки:
+00 (1) ¬ ªá¨¬ «ì­ ï ¤«¨­  áâப¨ +00 (1) максимальная длина строки
+01 (1) ä« £ £®â®¢­®á⨠+01 (1) флаг готовности
+02 (1) ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InputLine) +02 (1) текущая X позиция курсора (инициализируется в InputLine)
+03 (1) ⥪ãé ï add_x (¨­¨æ¨ «¨§¨àã¥âáï ¢ InputLine) +03 (1) текущая add_x (инициализируется в InputLine)
+04 (1) ª®«¨ç¥á⢮ ¢¢¥¤¥­­ëå ᨬ¢®«®¢ / ¤«¨­  áâப¨ +04 (1) количество введенных символов / длина строки
+05 (2) X ¯®§¨æ¨ï áâப¨ ­  íªà ­¥ +05 (2) X позиция строки на экране
+07 (2) Y ¯®§¨æ¨ï áâப¨ ­  íªà ­¥ +07 (2) Y позиция строки на экране
+09 (2) X ¤«¨­  áâப¨ ­  íªà ­¥ +09 (2) X длина строки на экране
+0B (1) 梥â áâப¨ (d7-d4 梥â background, d3-d0 梥â foreground) +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground)
+0C ... á ¬  áâப  +0C ... сама строка
¯à®æ¥¤ãàë ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ : процедуры для таблицы элементов экрана:
InpLnExtN - ¯à®æ¥¤ãà  ­®à¬ «ì­®£® ¢ë室  ¨§ । ªæ¨¨ InpLnExtN - процедура нормального выхода из редакции
InpLnExtC - ¯à®æ¥¤ãà  ¢ë室  ¨§ । ªæ¨¨ ¯® cancel InpLnExtC - процедура выхода из редакции по cancel
(¢®ááâ ­ ¢«¨¢ ¥â ¨§­ ç «ì­ãî áâபã) (восстанавливает изначальную строку)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InitScrBar - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï áªà®««¡ à  InitScrBar - процедура инициализации описателя скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  IX - адрес описателя скроллбара
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnHScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ £®à¨§®­â «ì­®£® áªà®««¡ à  PrnHScrBar - процедура печати горизонтального скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  IX - адрес описателя скроллбара
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnVScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ ¢¥à⨪ «ì­®£® áªà®««¡ à  PrnVScrBar - процедура печати вертикального скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  IX - адрес описателя скроллбара
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InitProcess - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï ¯à®æ¥áá¡ à  InitProcess - процедура инициализации описателя процессбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  IX - адрес описателя процессбара
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnProcess - ¯à®æ¥¤ãà  ¯¥ç â¨ ¯à®æ¥áá¡ à  PrnProcess - процедура печати процессбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  IX - адрес описателя процессбара
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ResFire - ¯à®æ¥¤ãà  ®¦¨¤ ­¨ï, ¯®ª  ¢á¥ ª­®¯ª¨ ¬ëè¨ ­¥ ¡ã¤ãâ ®â¯ã饭ë ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
TestCoords - ¯à®æ¥¤ãà  ¯à®¢¥àª¨ ª®®à¤¨­ â ¬ëè¨ ¯® â ¡«¨æ¥ í«¥¬¥­â®¢ TestCoords - процедура проверки координат мыши по таблице элементов
§ªà ­  зкрана
­  ¢å®¤: на вход:
IX -  ¤à¥á â ¡«¨æë í«¥¬¥­â®¢ §ªà ­  IX - адрес таблицы элементов зкрана
­  ¢ë室: на выход:
- -
â ¡«¨æ  í«¥¬¥­â®¢ §ªà ­ : таблица элементов зкрана:
+00 (2) «¥¢ ï x ª®®à¤¨­ â  í«¥¬¥­â  +00 (2) левая x координата элемента
+02 (2) ¯à ¢ ï x ª®®à¤¨­ â  í«¥¬¥­â  +02 (2) правая x координата элемента
+04 (2) ¢¥àå­ïï y ª®®à¤¨­ â  í«¥¬¥­â  +04 (2) верхняя y координата элемента
+06 (2) ­¨¦­ïï y ª®®à¤¨­ â  í«¥¬¥­â  +06 (2) нижняя y координата элемента
+08 (2) ä« £¨ í«¥¬¥­â  +08 (2) флаги элемента
+10 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­¥ ­ ¦ â®¬ ®£­¥ +10 (2) адрес обработчика при не нажатом огне
+12 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ («¥¢ ï ª­®¯ª ) +12 (2) адрес обработчика при нажатом огне (левая кнопка)
+14 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢ ï ª­®¯ª ) +14 (2) адрес обработчика при нажатом огне (правая кнопка)
ä« £¨ í«¥¬¥­â : флаги элемента:
d00 - í«¥¬¥­â ª­®¯ª  d00 - элемент кнопка
d01 - à ¡®ç ï ª­®¯ª  d01 - рабочая кнопка
d02 - ¨­¢¥àâ d02 - инверт
d03 - áâ â¨ç­ë© ¨­¢¥àâ d03 - статичный инверт
d04 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¡¥§ ®£­ï d04 - программа запускается без адреса возврата без огня
d05 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® «¥¢®© ª­®¯ª¥ d05 - программа запускается без адреса возврата по левой кнопке
®£­ï огня
d06 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® ¯à ¢®© ª­®¯ª¥ d06 - программа запускается без адреса возврата по правой кнопке
®£­ï огня
d07 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¡¥§ d07 - вызвать функцию закрытия окна перед запуском программы без
®£­ï огня
d08 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® d08 - вызвать функцию закрытия окна перед запуском программы по
«¥¢®© ª­®¯ª¥ левой кнопке
d09 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® d09 - вызвать функцию закрытия окна перед запуском программы по
¯à ¢®© ª­®¯ª¥ правой кнопке
d15 - íâ® ä« £: 1 - ¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì d15 - это флаг: 1 - инверт при огне не убирать
¥á«¨ +00 == 0x8000 íâ® áç¨â ¥âáï ª®­æ®¬ â ¡«¨æë í«¥¬¥­â®¢ §ªà ­  если +00 == 0x8000 это считается концом таблицы элементов зкрана
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetCMOSPrint - ¯à®æ¥¤ãà  ¢ª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS SetCMOSPrint - процедура включения печати даты/время из CMOS
­  ¢å®¤: на вход:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥ - будет описано позднее
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ResCMOSPrint - ¯à®æ¥¤ãà  ¢ëª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS ResCMOSPrint - процедура выключения печати даты/время из CMOS
­  ¢å®¤: на вход:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥ - будет описано позднее
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetClock - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ç áë SetClock - процедура установки курсора мыши в часы
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetMouse - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ­®à¬ «ì­ë© ªãàá®à SetMouse - процедура установки курсора мыши в нормальный курсор
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MoveBytes - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî MoveBytes - процедура быстрого копирования памяти с помощью
 ªá¥««¥à â®à  á 㢥«¨ç¥­¨¥¬  ¤à¥á®¢ акселлератора с увеличением адресов
­  ¢å®¤: на вход:
HL - ®âªã¤  HL - откуда
DE - ªã¤  DE - куда
BC - ᪮«ìª® BC - сколько
­  ¢ë室: на выход:
HL - (®âªã¤  + ᪮«ìª®) HL - (откуда + сколько)
DE - (ªã¤  + ᪮«ìª®) DE - (куда + сколько)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MoveBytesUp - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî MoveBytesUp - процедура быстрого копирования памяти с помощью
 ªá¥««¥à â®à  á 㬥­ì襭¨¥¬  ¤à¥á®¢ акселлератора с уменьшением адресов
­  ¢å®¤: на вход:
HL - ®âªã¤  HL - откуда
DE - ªã¤  DE - куда
BC - ᪮«ìª® BC - сколько
­  ¢ë室: на выход:
HL - (®âªã¤  - ᪮«ìª®) HL - (откуда - сколько)
DE - (ªã¤  - ᪮«ìª®) DE - (куда - сколько)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult8 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 8 * 8 bit = 16 bit Mult8 - процедура умножения 8 * 8 bit = 16 bit
­  ¢å®¤: на вход:
E * C E * C
­  ¢ë室: на выход:
HL - १ã«ìâ â HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16X8 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 16 * 8 bit = 24 bit Mult16X8 - процедура умножения 16 * 8 bit = 24 bit
­  ¢å®¤: на вход:
DE * C DE * C
­  ¢ë室: на выход:
A, HL - १ã«ìâ â A, HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 16 * 16 bit = 16 bit Mult16 - процедура умножения 16 * 16 bit = 16 bit
­  ¢å®¤: на вход:
DE * BC DE * BC
­  ¢ë室: на выход:
HL - १ã«ìâ â HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16X16 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 16 * 16 bit = 32 bit Mult16X16 - процедура умножения 16 * 16 bit = 32 bit
­  ¢å®¤: на вход:
DE * BC DE * BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult32 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 32 * 16 bit = 32 bit Mult32 - процедура умножения 32 * 16 bit = 32 bit
­  ¢å®¤: на вход:
HL, DE * BC HL, DE * BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis16X16 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 16 / 16 bit = 16.16 bit Divis16X16 - процедура деления 16 / 16 bit = 16.16 bit
­  ¢å®¤: на вход:
BC / DE BC / DE
­  ¢ë室: на выход:
BC - १ã«ìâ â BC - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis24X16 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 24 / 16 bit = 8.16 bit Divis24X16 - процедура деления 24 / 16 bit = 8.16 bit
­  ¢å®¤: на вход:
HL, C / DE HL, C / DE
­  ¢ë室: на выход:
A - १ã«ìâ â A - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis32X16 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 32 / 16 bit = 16.16 bit Divis32X16 - процедура деления 32 / 16 bit = 16.16 bit
­  ¢å®¤: на вход:
HL, DE / BC HL, DE / BC
­  ¢ë室: на выход:
DE - १ã«ìâ â DE - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis32 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 32 / 16 bit = 32.16 bit Divis32 - процедура деления 32 / 16 bit = 32.16 bit
­  ¢å®¤: на вход:
HL, DE / BC HL, DE / BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
BC - ®áâ â®ª BC - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ç¨á«  32 bit ¢ ⥪áâ ConvNumTxt32 - процедура конвертации числа 32 bit в текст
­  ¢å®¤: на вход:
BC, HL - ç¨á«® 32 bit BC, HL - число 32 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ç¨á«  16 bit ¢ ⥪áâ ConvNumTxt16 - процедура конвертации числа 16 bit в текст
­  ¢å®¤: на вход:
HL - ç¨á«® 16 bit HL - число 16 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt8 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ç¨á«  8 bit ¢ ⥪áâ ConvNumTxt8 - процедура конвертации числа 8 bit в текст
­  ¢å®¤: на вход:
A - ç¨á«® 8 bit A - число 8 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvTxtNum32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ç¨á«® 32 bit ConvTxtNum32 - процедура конвертации текста в число 32 bit
­  ¢å®¤: на вход:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0) DE - адрес текста (конец строки - 0)
­  ¢ë室: на выход:
HL, IX - ç¨á«® HL, IX - число
C flag - ®è¨¡ª  C flag - ошибка
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvTxtNum16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ç¨á«® 16 bit ConvTxtNum16 - процедура конвертации текста в число 16 bit
­  ¢å®¤: на вход:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0) DE - адрес текста (конец строки - 0)
­  ¢ë室: на выход:
HL - ç¨á«® HL - число
C flag - ®è¨¡ª  C flag - ошибка
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
DOSError - ¯à®æ¥¤ãà  ¢ë¢®¤  ®ª­  ®è¨¡ª¨ (¤«ï ¤®á ®è¨¡®ª) DOSError - процедура вывода окна ошибки (для дос ошибок)
­  ¢å®¤: на вход:
A - ­®¬¥à ®è¨¡ª¨ A - номер ошибки
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
@ -569,4 +569,4 @@
07 july 2002 07 july 2002
Anton Enin (C) Copyright 2002 R-lab Anton Enin (C) Copyright 2002 R-lab
¥á«¨ ¥áâì ¢®¯à®áë e-mail: r-lab@mail.ru ¨«¨ ­  á¯à¨­â¥à ä®à㬥. если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме.

View File

@ -1,7 +1,7 @@
[]========================================================================[] []========================================================================[]
* * * *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins * * Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins *
* doc v0.3 ®â 10.07.2002 * * doc v0.3 от 10.07.2002 *
* * * *
[]========================================================================[] []========================================================================[]
@ -10,579 +10,579 @@
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ClearScreen - ¯à®æ¥¤ãà  ®âç¨á⪨ 0-£® íª ­  ­ã¦­ë¬ 梥⮬. ClearScreen - процедура отчистки 0-го экана нужным цветом.
­  ¢å®¤: на вход:
A - 梥⠮âç¨á⪨ (00-0Fh) A - цвет отчистки (00-0Fh)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MakeWindow - ¯à®æ¥¤ãà  á®§¤ ­¨ï £à ä¨ç¥áª®£® ®ª­  MakeWindow - процедура создания графического окна
­  ¢å®¤: на вход:
(SP) - ®¯¨á â¥«ì ®ª­  (SP) - описатель окна
­  ¢ë室: на выход:
- -
áà §ã §  ¢ë§®¢®¬ í⮩ ¯à®æ¥¤ãàë ¢ ¯à®£à ¬¬¥ á«¥¤ã¥â ®¯¨á â¥«ì ®ª­ . сразу за вызовом этой процедуры в программе следует описатель окна.
¢®§¢à â ¨§ ¯à®æ¥¤ãàë ¯à®¨á室¨â ¯®  ¤à¥áã, á«¥¤ãî饬㠧  ®¯¨á â¥«¥¬. возврат из процедуры происходит по адресу, следующему за описателем.
­ ¯à¨¬¥à: например:
call MakeWindow call MakeWindow
... ; ®¯¨á â¥«ì ®ª­  ... ; описатель окна
®¯¨á â¥«ì ®ª­ : описатель окна:
+00 (1) ä« £ ¢ë¢®¤  ®ª­ : 0 - ¡¥§ á®åà ­¥­¨ï ¤ ­­ëå ¯®¤ ®ª­®¬ +00 (1) флаг вывода окна: 0 - без сохранения данных под окном
(¨á¯®«ì§ã¥âáï ¤«ï ¯®«­®íªà ­­ëå ®ª®­) (используется для полноэкранных окон)
1 - á á®åà ­¥­¨¥¬ ¤ ­­ëå ¯®¤ ®ª­®¬ 1 - с сохранением данных под окном
(¨á¯®«ì§ã¥âáï ¤«ï ­¥¡®«ìè¨å ®ª®­) (используется для небольших окон)
0x7F - ¢®ááâ ­®¢¨âì ¤ ­­ë¥ ¯®¤ ®ª­®¬ 0x7F - восстановить данные под окном
(ä« £ á«ã¦¨â ¤«ï § ªàëâ¨ï (флаг служит для закрытия
⥪ã饣® ®ª­ ) текущего окна)
+01 (2) ª®®à¤¨­ â  x ¤«ï ¢ë¢®¤  (0 - 639) +01 (2) координата x для вывода (0 - 639)
+03 (2) ª®®à¤¨­ â  y ¤«ï ¢ë¢®¤  (0 - 255) +03 (2) координата y для вывода (0 - 255)
+05 (2) ¤«¨­  ®ª­  ¯® x (0 - 639) +05 (2) длина окна по x (0 - 639)
+07 (2) ¤«¨­  ®ª­  ¯® y (0 - 255) +07 (2) длина окна по y (0 - 255)
¤ «¥¥ ¨¤ãâ ®¡'¥ªâë ®ª­  ¢ ä®à¬ â¥: далее идут об'екты окна в формате:
+00 (1) ⨯ ®¡¥ªâ  +00 (1) тип обекта
+01 ... ®¯¨á â¥«¨ ®¡¥ªâ  +01 ... описатели обекта
®¡'¥ªâë ®ª­ : об'екты окна:
0. +00 (1) == 0 - ª®­¥æ ᯨ᪠ ®¡'¥ªâ®¢. ¯®á«¥ í⮣® ®ª®­­ ï 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная
äã­ªæ¨ï ¢®§¢à é ¥â ã¯à ¢«¥­¨¥. функция возвращает управление.
1. +00 (1) == 1 - ⥪á⮢ ï áâப  1. +00 (1) == 1 - текстовая строка
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (1) 梥⠯¥ç â¨ +05 (1) цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
+06 ... ⥪á⮢ ï áâப  (ª®­¥æ áâப¨ - 0) +06 ... текстовая строка (конец строки - 0)
2. +00 (1) == 2 - § ¯®«­¥­¨¥ ¯àאַ㣮«ì­®© ¯«®áª®á⨠2. +00 (1) == 2 - заполнение прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
+09 (1) 梥⠧ ¯®«­¥­¨ï +09 (1) цвет заполнения
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
3. +00 (1) == 3 - ®âà¨á®¢ª  㣫㡫ñ­­®© ¯àאַ㣮«ì­®© ¯«®áª®á⨠3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
4. +00 (1) == 4 - ®âà¨á®¢ª  ¢ë¯ãª«®© ¯àאַ㣮«ì­®© ¯«®áª®á⨠4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
5. +00 (1) == 5 - ®âà¨á®¢ª  ª­®¯ª¨ á ⥪á⮬ 5. +00 (1) == 5 - отрисовка кнопки с текстом
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
+09 (1) 梥⠯¥ç â¨ +09 (1) цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
+10 ... ⥪á⮢ ï áâப  (ª®­¥æ áâப¨ - 0) +10 ... текстовая строка (конец строки - 0)
‚­¨¬ ­¨¥! ¯¥ç âì ⥪áâ  ®áãé¥á⢫ï¥âáï á ¯®§¨æ¨© Внимание! печать текста осуществляется с позиций
x + 4, y + 1 x + 4, y + 1
6. +00 (1) == 6 - ®âà¨á®¢ª  £®à¨§®­â «ì­®£® à §¤¥«¨â¥«ï 6. +00 (1) == 6 - отрисовка горизонтального разделителя
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
7. +00 (1) == 7 - ®âà¨á®¢ª  ¢¥à⨪ «ì­®£® à §¤¥«¨â¥«ï 7. +00 (1) == 7 - отрисовка вертикального разделителя
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® y (0 - 255) +05 (2) длина по y (0 - 255)
8. +00 (1) == 8 - ®âà¨á®¢ª  «¥¢®© ª­®¯ª¨ áªà®«¡ à  <- 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <-
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
9. +00 (1) == 9 - ®âà¨á®¢ª  ¯à ¢®© ª­®¯ª¨ áªà®«¡ à  -> 9. +00 (1) == 9 - отрисовка правой кнопки скролбара ->
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
10. +00 (1) == 10 - ®âà¨á®¢ª  ¢¥àå­¥© ª­®¯ª¨ áªà®«¡ à  ^ 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
11. +00 (1) == 11 - ®âà¨á®¢ª  ­¨¦­¥© ª­®¯ª¨ áªà®«¡ à  11. +00 (1) == 11 - отрисовка нижней кнопки скролбара
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InvertRectan - ¯à®æ¥¤ãà  § ¬¥­ë æ¢¥â  ¯àאַ㣮«ì­®© ¯«®áª®á⨠InvertRectan - процедура замены цвета прямоугольной плоскости
­  ¢å®¤: на вход:
HL - x ª®®à¤¨­ â  HL - x координата
BC - y ª®®à¤¨­ â  BC - y координата
HX - ¤«¨­  y HX - длина y
LX - ¤«¨­  x LX - длина x
D - ⥪ã騩 梥â D - текущий цвет
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
E - ­ã¦­ë© 梥â E - нужный цвет
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
ª ᮦ «¥­¨î ¯à®æ¥¤ãà  ­¥ ®ç¥­ì ¡ëáâà ï, ¯®í⮬㠡®«ì訥 к сожалению процедура не очень быстрая, поэтому большие
¯àאַ㣮«ì­¨ª¨ ᮢ¥âãî ®á®¡® ­¥ ¨­¢¥àâ¨à®¢ âì... ;) прямоугольники советую особо не инвертировать... ;)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnIFF - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnIFF - процедура вывода текстовых строк на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ  640x256 в режиме размерного по X шрифта
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®© HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnNorm - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnNorm - процедура вывода текстовых строк на графический экран
640x256 640x256
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®© HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnNormC - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnNormC - процедура вывода текстовых строк на графический экран
640x256 á ¨§¢¥áâ­ë¬ ç¨á«®¬ ᨬ¢®«®¢ 640x256 с известным числом символов
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ HL - адрес текстовой строки
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
C - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y C - позиция вывода по Y
B - ª®«-¢® ¯¥ç â ¥¬ëå ᨬ¢®«®¢ B - кол-во печатаемых символов
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  ¯®á«¥¤­¨¬ ᨬ¢®«®¬ HL - адрес байта, следующего за последним символом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathL - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathL - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª 640x256 в режиме размерного по X шрифта, прижатых к
«¥¢®¬ã ªà î ( |-> ) левому краю ( |-> )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathR - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathR - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª 640x256 в режиме размерного по X шрифта, прижатых к
¯à ¢®¬ã ªà î ( <-| ) правому краю ( <-| )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathC - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathC - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ®â業âà¨à®¢ ­­ëå 640x256 в режиме размерного по X шрифта, отцентрированных
®â­®á¨â¥«ì­® ªà ñ¢ ( <-|-> ) относительно краёв ( <-|-> )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InputLine - ¯à®æ¥¤ãà  à¥¤ ªâ¨à®¢ ­¨ï áâப¨ ­  £à ä¨ç¥áª®¬ íªà ­¥ InputLine - процедура редактирования строки на графическом экране
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ  640x256 в режиме размерного по X шрифта
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áâப¨ IX - адрес описателя строки
HL -  ¤à¥á ®¯¨á â¥«ï í«¥¬¥­â®¢ íªà ­  (¤«ï ¬ë誨) HL - адрес описателя элементов экрана (для мышки)
­  ¢ë室: на выход:
- -
®¯¨á â¥«ì áâப¨: описатель строки:
+00 (1) ¬ ªá¨¬ «ì­ ï ¤«¨­  áâப¨ +00 (1) максимальная длина строки
+01 (1) ä« £ £®â®¢­®á⨠+01 (1) флаг готовности
+02 (1) ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InputLine) +02 (1) текущая X позиция курсора (инициализируется в InputLine)
+03 (1) ⥪ãé ï add_x (¨­¨æ¨ «¨§¨àã¥âáï ¢ InputLine) +03 (1) текущая add_x (инициализируется в InputLine)
+04 (1) ª®«¨ç¥á⢮ ¢¢¥¤¥­­ëå ᨬ¢®«®¢ / ¤«¨­  áâப¨ +04 (1) количество введенных символов / длина строки
+05 (2) X ¯®§¨æ¨ï áâப¨ ­  íªà ­¥ +05 (2) X позиция строки на экране
+07 (2) Y ¯®§¨æ¨ï áâப¨ ­  íªà ­¥ +07 (2) Y позиция строки на экране
+09 (2) X ¤«¨­  áâப¨ ­  íªà ­¥ +09 (2) X длина строки на экране
+0B (1) 梥â áâப¨ (d7-d4 梥â background, d3-d0 梥â foreground) +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground)
+0C ... á ¬  áâப  +0C ... сама строка
¯à®æ¥¤ãàë ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ : процедуры для таблицы элементов экрана:
InpLnExtN - ¯à®æ¥¤ãà  ­®à¬ «ì­®£® ¢ë室  ¨§ । ªæ¨¨ InpLnExtN - процедура нормального выхода из редакции
InpLnExtC - ¯à®æ¥¤ãà  ¢ë室  ¨§ । ªæ¨¨ ¯® cancel InpLnExtC - процедура выхода из редакции по cancel
(¢®ááâ ­ ¢«¨¢ ¥â ¨§­ ç «ì­ãî áâபã) (восстанавливает изначальную строку)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InitScrBar - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï áªà®««¡ à  InitScrBar - процедура инициализации описателя скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  IX - адрес описателя скроллбара
­  ¢ë室: на выход:
- -
®¯¨á â¥«ì áªà®««¡ à : описатель скроллбара:
+00 (2) X ¯®§¨æ¨ï áªà®«¡ à  (0-639) +00 (2) X позиция скролбара (0-639)
+02 (2) Y ¯®§¨æ¨ï áªà®«¡ à  (0-255) +02 (2) Y позиция скролбара (0-255)
+04 (2) ¤«¨­  áªà®«¡ à  +04 (2) длина скролбара
+06 (2) ⥪ãé ï ¤«¨­  áªà®«¡ à  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitScrBar) +06 (2) текущая длина скролбара (инициализируется в InitScrBar)
+08 (2)  ¤à¥á ï祩ª¨, ªã¤  § ¯¨è¥âáï ­ ç «ì­ ï ª®®à¤¨­ â  ¡ à  +08 (2) адрес ячейки, куда запишется начальная координата бара
¥á«¨ 0, â® ­¥ ¨á¯®«ì§ã¥âáï если 0, то не используется
(¨á¯®«ì§ã¥âáï ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ ) (используется для таблицы элементов экрана)
+10 (2)  ¤à¥á ï祩ª¨, ªã¤  § ¯¨è¥âáï ª®­¥ç­ ï ª®®à¤¨­ â  ¡ à  +10 (2) адрес ячейки, куда запишется конечная координата бара
¥á«¨ 0, â® ­¥ ¨á¯®«ì§ã¥âáï если 0, то не используется
(¨á¯®«ì§ã¥âáï ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ ) (используется для таблицы элементов экрана)
+12 (2) ª®«-¢® ¢¨¤¨¬ëå í«¥¬¥­â®¢ +12 (2) кол-во видимых элементов
+14 (2) ®¡é¥¥ ª®«-¢® í«¥¬¥­â®¢ +14 (2) общее кол-во элементов
+16 (2) ¯¥à¢ ï ¢¨¤¨¬ë© í«¥¬¥­â +16 (2) первая видимый элемент
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnHScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ £®à¨§®­â «ì­®£® áªà®««¡ à  PrnHScrBar - процедура печати горизонтального скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  (á¬. ¢ëè¥) IX - адрес описателя скроллбара (см. выше)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnVScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ ¢¥à⨪ «ì­®£® áªà®««¡ à  PrnVScrBar - процедура печати вертикального скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  (á¬. ¢ëè¥) IX - адрес описателя скроллбара (см. выше)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InitProcess - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï ¯à®æ¥áá¡ à  InitProcess - процедура инициализации описателя процессбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  IX - адрес описателя процессбара
­  ¢ë室: на выход:
- -
®¯¨á â¥«ï ¯à®æ¥áá¡ à : описателя процессбара:
+00 (2) X ¯®§¨æ¨ï ¯à®æ¥áá¡ à  (0-639) +00 (2) X позиция процессбара (0-639)
+02 (2) Y ¯®§¨æ¨ï ¯à®æ¥áá¡ à  (0-255) +02 (2) Y позиция процессбара (0-255)
+04 (2) ¤«¨­  ¯à®æ¥áá¡ à  +04 (2) длина процессбара
+06 (2) ª®íä䍿¨¥­â ¤«ï ¯à®æ¥áá  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +06 (2) коэффициент для процесса (инициализируется в InitProcess)
+08 (2) ª®à४æ¨ï ª®í䍿¨¥­â  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +08 (2) коррекция коэфициента (инициализируется в InitProcess)
+10 (4) ¬ ªá¨¬ã¬ (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +10 (4) максимум (инициализируется в InitProcess)
+14 (4) ⥪ã饥 (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +14 (4) текущее (инициализируется в InitProcess)
+18 (1) æ¢¥â ¯à®æ¥áá¡ à  +18 (1) цвет процессбара
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnProcess - ¯à®æ¥¤ãà  ¯¥ç â¨ ¯à®æ¥áá¡ à  PrnProcess - процедура печати процессбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  (á¬. ¢ëè¥) IX - адрес описателя процессбара (см. выше)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ResFire - ¯à®æ¥¤ãà  ®¦¨¤ ­¨ï, ¯®ª  ¢á¥ ª­®¯ª¨ ¬ëè¨ ­¥ ¡ã¤ãâ ®â¯ã饭ë ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
TestCoords - ¯à®æ¥¤ãà  ¯à®¢¥àª¨ ª®®à¤¨­ â ¬ëè¨ ¯® â ¡«¨æ¥ í«¥¬¥­â®¢ TestCoords - процедура проверки координат мыши по таблице элементов
§ªà ­  зкрана
­  ¢å®¤: на вход:
IX -  ¤à¥á â ¡«¨æë í«¥¬¥­â®¢ §ªà ­  IX - адрес таблицы элементов зкрана
­  ¢ë室: на выход:
- -
â ¡«¨æ  í«¥¬¥­â®¢ §ªà ­ : таблица элементов зкрана:
+00 (2) «¥¢ ï x ª®®à¤¨­ â  í«¥¬¥­â  +00 (2) левая x координата элемента
+02 (2) ¯à ¢ ï x ª®®à¤¨­ â  í«¥¬¥­â  +02 (2) правая x координата элемента
+04 (2) ¢¥àå­ïï y ª®®à¤¨­ â  í«¥¬¥­â  +04 (2) верхняя y координата элемента
+06 (2) ­¨¦­ïï y ª®®à¤¨­ â  í«¥¬¥­â  +06 (2) нижняя y координата элемента
+08 (2) ä« £¨ í«¥¬¥­â  +08 (2) флаги элемента
+10 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­¥ ­ ¦ â®¬ ®£­¥ +10 (2) адрес обработчика при не нажатом огне
+12 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ («¥¢ ï ª­®¯ª ) +12 (2) адрес обработчика при нажатом огне (левая кнопка)
+14 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢ ï ª­®¯ª ) +14 (2) адрес обработчика при нажатом огне (правая кнопка)
¥á«¨ +00 == 0x8000 íâ® áç¨â ¥âáï ª®­æ®¬ â ¡«¨æë í«¥¬¥­â®¢ §ªà ­  если +00 == 0x8000 это считается концом таблицы элементов зкрана
ä« £¨ í«¥¬¥­â : флаги элемента:
d00 - í«¥¬¥­â ª­®¯ª  d00 - элемент кнопка
d01 - à ¡®ç ï ª­®¯ª  d01 - рабочая кнопка
d02 - ¨­¢¥àâ d02 - инверт
d03 - áâ â¨ç­ë© ¨­¢¥àâ d03 - статичный инверт
d04 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¡¥§ ®£­ï d04 - программа запускается без адреса возврата без огня
d05 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® «¥¢®© ª­®¯ª¥ d05 - программа запускается без адреса возврата по левой кнопке
®£­ï огня
d06 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® ¯à ¢®© ª­®¯ª¥ d06 - программа запускается без адреса возврата по правой кнопке
®£­ï огня
d07 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¡¥§ d07 - вызвать функцию закрытия окна перед запуском программы без
®£­ï огня
d08 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® d08 - вызвать функцию закрытия окна перед запуском программы по
«¥¢®© ª­®¯ª¥ левой кнопке
d09 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® d09 - вызвать функцию закрытия окна перед запуском программы по
¯à ¢®© ª­®¯ª¥ правой кнопке
d15 - íâ® ä« £: 1 - ¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì d15 - это флаг: 1 - инверт при огне не убирать
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetCMOSPrint - ¯à®æ¥¤ãà  ¢ª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS SetCMOSPrint - процедура включения печати даты/время из CMOS
­  ¢å®¤: на вход:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥ - будет описано позднее
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ResCMOSPrint - ¯à®æ¥¤ãà  ¢ëª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS ResCMOSPrint - процедура выключения печати даты/время из CMOS
­  ¢å®¤: на вход:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥ - будет описано позднее
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetClock - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ç áë SetClock - процедура установки курсора мыши в часы
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetMouse - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ­®à¬ «ì­ë© ªãàá®à SetMouse - процедура установки курсора мыши в нормальный курсор
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MoveBytes - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî MoveBytes - процедура быстрого копирования памяти с помощью
 ªá¥««¥à â®à  á 㢥«¨ç¥­¨¥¬  ¤à¥á®¢ акселлератора с увеличением адресов
­  ¢å®¤: на вход:
HL - ®âªã¤  HL - откуда
DE - ªã¤  DE - куда
BC - ᪮«ìª® BC - сколько
­  ¢ë室: на выход:
HL - (®âªã¤  + ᪮«ìª®) HL - (откуда + сколько)
DE - (ªã¤  + ᪮«ìª®) DE - (куда + сколько)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MoveBytesUp - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî MoveBytesUp - процедура быстрого копирования памяти с помощью
 ªá¥««¥à â®à  á 㬥­ì襭¨¥¬  ¤à¥á®¢ акселлератора с уменьшением адресов
­  ¢å®¤: на вход:
HL - ®âªã¤  HL - откуда
DE - ªã¤  DE - куда
BC - ᪮«ìª® BC - сколько
­  ¢ë室: на выход:
HL - (®âªã¤  - ᪮«ìª®) HL - (откуда - сколько)
DE - (ªã¤  - ᪮«ìª®) DE - (куда - сколько)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult8 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 8 * 8 bit = 16 bit Mult8 - процедура умножения 8 * 8 bit = 16 bit
­  ¢å®¤: на вход:
E * C E * C
­  ¢ë室: на выход:
HL - १ã«ìâ â HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16X8 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 16 * 8 bit = 24 bit Mult16X8 - процедура умножения 16 * 8 bit = 24 bit
­  ¢å®¤: на вход:
DE * C DE * C
­  ¢ë室: на выход:
A, HL - १ã«ìâ â A, HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 16 * 16 bit = 16 bit Mult16 - процедура умножения 16 * 16 bit = 16 bit
­  ¢å®¤: на вход:
DE * BC DE * BC
­  ¢ë室: на выход:
HL - १ã«ìâ â HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16X16 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 16 * 16 bit = 32 bit Mult16X16 - процедура умножения 16 * 16 bit = 32 bit
­  ¢å®¤: на вход:
DE * BC DE * BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult32 - ¯à®æ¥¤ãà  ã¬­®¦¥­¨ï 32 * 16 bit = 32 bit Mult32 - процедура умножения 32 * 16 bit = 32 bit
­  ¢å®¤: на вход:
HL, DE * BC HL, DE * BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis16X16 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 16 / 16 bit = 16.16 bit Divis16X16 - процедура деления 16 / 16 bit = 16.16 bit
­  ¢å®¤: на вход:
BC / DE BC / DE
­  ¢ë室: на выход:
BC - १ã«ìâ â BC - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis24X16 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 24 / 16 bit = 8.16 bit Divis24X16 - процедура деления 24 / 16 bit = 8.16 bit
­  ¢å®¤: на вход:
HL, C / DE HL, C / DE
­  ¢ë室: на выход:
A - १ã«ìâ â A - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis32X16 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 32 / 16 bit = 16.16 bit Divis32X16 - процедура деления 32 / 16 bit = 16.16 bit
­  ¢å®¤: на вход:
HL, DE / BC HL, DE / BC
­  ¢ë室: на выход:
DE - १ã«ìâ â DE - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis32 - ¯à®æ¥¤ãà  ¤¥«¥­¨ï 32 / 16 bit = 32.16 bit Divis32 - процедура деления 32 / 16 bit = 32.16 bit
­  ¢å®¤: на вход:
HL, DE / BC HL, DE / BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
BC - ®áâ â®ª BC - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ç¨á«  32 bit ¢ ⥪áâ ConvNumTxt32 - процедура конвертации числа 32 bit в текст
­  ¢å®¤: на вход:
BC, HL - ç¨á«® 32 bit BC, HL - число 32 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ç¨á«  16 bit ¢ ⥪áâ ConvNumTxt16 - процедура конвертации числа 16 bit в текст
­  ¢å®¤: на вход:
HL - ç¨á«® 16 bit HL - число 16 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt8 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ç¨á«  8 bit ¢ ⥪áâ ConvNumTxt8 - процедура конвертации числа 8 bit в текст
­  ¢å®¤: на вход:
A - ç¨á«® 8 bit A - число 8 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvTxtNum32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ç¨á«® 32 bit ConvTxtNum32 - процедура конвертации текста в число 32 bit
­  ¢å®¤: на вход:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0) DE - адрес текста (конец строки - 0)
­  ¢ë室: на выход:
HL, IX - ç¨á«® HL, IX - число
C flag - ®è¨¡ª  C flag - ошибка
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvTxtNum16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ç¨á«® 16 bit ConvTxtNum16 - процедура конвертации текста в число 16 bit
­  ¢å®¤: на вход:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0) DE - адрес текста (конец строки - 0)
­  ¢ë室: на выход:
HL - ç¨á«® HL - число
C flag - ®è¨¡ª  C flag - ошибка
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
DOSError - ¯à®æ¥¤ãà  ¢ë¢®¤  ®ª­  ®è¨¡ª¨ (¤«ï ¤®á ®è¨¡®ª) DOSError - процедура вывода окна ошибки (для дос ошибок)
­  ¢å®¤: на вход:
A - ­®¬¥à ®è¨¡ª¨ A - номер ошибки
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
@ -593,4 +593,4 @@
10 july 2002 10 july 2002
Anton Enin (C) Copyright 2002 R-lab Anton Enin (C) Copyright 2002 R-lab
¥á«¨ ¥áâì ¢®¯à®áë e-mail: r-lab@mail.ru ¨«¨ ­  á¯à¨­â¥à ä®à㬥. если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме.

View File

@ -1,7 +1,7 @@
[]========================================================================[] []========================================================================[]
* * * *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins * * Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins *
* doc v0.4 ®â 13.07.2002 * * doc v0.4 от 13.07.2002 *
* * * *
[]========================================================================[] []========================================================================[]
@ -10,594 +10,594 @@
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ClearScreen - ¯à®æ¥¤ãà  ®âç¨á⪨ 0-£® íª ­  ­ã¦­ë¬ 梥⮬. ClearScreen - процедура отчистки 0-го экана нужным цветом.
­  ¢å®¤: на вход:
A - 梥⠮âç¨á⪨ (00-0Fh) A - цвет отчистки (00-0Fh)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MakeWindow - ¯à®æ¥¤ãà  á®§¤ ­¨ï £à ä¨ç¥áª®£® ®ª­  MakeWindow - процедура создания графического окна
­  ¢å®¤: на вход:
(SP) - ®¯¨á â¥«ì ®ª­  (SP) - описатель окна
­  ¢ë室: на выход:
- -
áà §ã §  ¢ë§®¢®¬ í⮩ ¯à®æ¥¤ãàë ¢ ¯à®£à ¬¬¥ á«¥¤ã¥â ®¯¨á â¥«ì ®ª­ . сразу за вызовом этой процедуры в программе следует описатель окна.
¢®§¢à â ¨§ ¯à®æ¥¤ãàë ¯à®¨á室¨â ¯®  ¤à¥áã, á«¥¤ãî饬㠧  ®¯¨á â¥«¥¬. возврат из процедуры происходит по адресу, следующему за описателем.
­ ¯à¨¬¥à: например:
call MakeWindow call MakeWindow
... ; ®¯¨á â¥«ì ®ª­  ... ; описатель окна
®¯¨á â¥«ì ®ª­ : описатель окна:
+00 (1) ä« £ ¢ë¢®¤  ®ª­ : 0 - ¡¥§ á®åà ­¥­¨ï ¤ ­­ëå ¯®¤ ®ª­®¬ +00 (1) флаг вывода окна: 0 - без сохранения данных под окном
(¨á¯®«ì§ã¥âáï ¤«ï ¯®«­®íªà ­­ëå ®ª®­) (используется для полноэкранных окон)
1 - á á®åà ­¥­¨¥¬ ¤ ­­ëå ¯®¤ ®ª­®¬ 1 - с сохранением данных под окном
(¨á¯®«ì§ã¥âáï ¤«ï ­¥¡®«ìè¨å ®ª®­) (используется для небольших окон)
0x7F - ¢®ááâ ­®¢¨âì ¤ ­­ë¥ ¯®¤ ®ª­®¬ 0x7F - восстановить данные под окном
(ä« £ á«ã¦¨â ¤«ï § ªàëâ¨ï (флаг служит для закрытия
⥪ã饣® ®ª­ ) текущего окна)
+01 (2) ª®®à¤¨­ â  x ¤«ï ¢ë¢®¤  (0 - 639) +01 (2) координата x для вывода (0 - 639)
+03 (2) ª®®à¤¨­ â  y ¤«ï ¢ë¢®¤  (0 - 255) +03 (2) координата y для вывода (0 - 255)
+05 (2) ¤«¨­  ®ª­  ¯® x (0 - 639) +05 (2) длина окна по x (0 - 639)
+07 (2) ¤«¨­  ®ª­  ¯® y (0 - 255) +07 (2) длина окна по y (0 - 255)
¤ «¥¥ ¨¤ãâ ®¡'¥ªâë ®ª­  ¢ ä®à¬ â¥: далее идут об'екты окна в формате:
+00 (1) ⨯ ®¡¥ªâ  +00 (1) тип обекта
+01 ... ®¯¨á â¥«¨ ®¡¥ªâ  +01 ... описатели обекта
®¡'¥ªâë ®ª­ : об'екты окна:
0. +00 (1) == 0 - ª®­¥æ ᯨ᪠ ®¡'¥ªâ®¢. ¯®á«¥ í⮣® ®ª®­­ ï 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная
äã­ªæ¨ï ¢®§¢à é ¥â ã¯à ¢«¥­¨¥. функция возвращает управление.
1. +00 (1) == 1 - ⥪á⮢ ï áâப  1. +00 (1) == 1 - текстовая строка
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (1) 梥⠯¥ç â¨ +05 (1) цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
+06 ... ⥪á⮢ ï áâப  (ª®­¥æ áâப¨ - 0) +06 ... текстовая строка (конец строки - 0)
2. +00 (1) == 2 - § ¯®«­¥­¨¥ ¯àאַ㣮«ì­®© ¯«®áª®á⨠2. +00 (1) == 2 - заполнение прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
+09 (1) 梥⠧ ¯®«­¥­¨ï +09 (1) цвет заполнения
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
3. +00 (1) == 3 - ®âà¨á®¢ª  㣫㡫ñ­­®© ¯àאַ㣮«ì­®© ¯«®áª®á⨠3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
4. +00 (1) == 4 - ®âà¨á®¢ª  ¢ë¯ãª«®© ¯àאַ㣮«ì­®© ¯«®áª®á⨠4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
5. +00 (1) == 5 - ®âà¨á®¢ª  ª­®¯ª¨ á ⥪á⮬ 5. +00 (1) == 5 - отрисовка кнопки с текстом
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
+07 (2) ¤«¨­  ¯® y (0 - 255) +07 (2) длина по y (0 - 255)
+09 (1) 梥⠯¥ç â¨ +09 (1) цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
+10 ... ⥪á⮢ ï áâப  (ª®­¥æ áâப¨ - 0) +10 ... текстовая строка (конец строки - 0)
‚­¨¬ ­¨¥! ¯¥ç âì ⥪áâ  ®áãé¥á⢫ï¥âáï á ¯®§¨æ¨© Внимание! печать текста осуществляется с позиций
x + 4, y + 1 x + 4, y + 1
6. +00 (1) == 6 - ®âà¨á®¢ª  £®à¨§®­â «ì­®£® à §¤¥«¨â¥«ï 6. +00 (1) == 6 - отрисовка горизонтального разделителя
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® x (0 - 639) +05 (2) длина по x (0 - 639)
7. +00 (1) == 7 - ®âà¨á®¢ª  ¢¥à⨪ «ì­®£® à §¤¥«¨â¥«ï 7. +00 (1) == 7 - отрисовка вертикального разделителя
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
+05 (2) ¤«¨­  ¯® y (0 - 255) +05 (2) длина по y (0 - 255)
8. +00 (1) == 8 - ®âà¨á®¢ª  «¥¢®© ª­®¯ª¨ áªà®«¡ à  <- 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <-
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
9. +00 (1) == 9 - ®âà¨á®¢ª  ¯à ¢®© ª­®¯ª¨ áªà®«¡ à  -> 9. +00 (1) == 9 - отрисовка правой кнопки скролбара ->
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
10. +00 (1) == 10 - ®âà¨á®¢ª  ¢¥àå­¥© ª­®¯ª¨ áªà®«¡ à  ^ 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
11. +00 (1) == 11 - ®âà¨á®¢ª  ­¨¦­¥© ª­®¯ª¨ áªà®«¡ à  11. +00 (1) == 11 - отрисовка нижней кнопки скролбара
+01 (2) ᬥ饭¨¥ x ®â ­ ç «  ®ª­  (0 - 639) +01 (2) смещение x от начала окна (0 - 639)
+03 (2) ᬥ饭¨¥ y ®â ­ ç «  ®ª­  (0 - 255) +03 (2) смещение y от начала окна (0 - 255)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InvertRectan - ¯à®æ¥¤ãà  § ¬¥­ë æ¢¥â  ¯àאַ㣮«ì­®© ¯«®áª®á⨠InvertRectan - процедура замены цвета прямоугольной плоскости
­  ¢å®¤: на вход:
HL - x ª®®à¤¨­ â  HL - x координата
BC - y ª®®à¤¨­ â  BC - y координата
HX - ¤«¨­  y HX - длина y
LX - ¤«¨­  x LX - длина x
D - ⥪ã騩 梥â D - текущий цвет
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
E - ­ã¦­ë© 梥â E - нужный цвет
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
ª ᮦ «¥­¨î ¯à®æ¥¤ãà  ­¥ ®ç¥­ì ¡ëáâà ï, ¯®í⮬㠡®«ì訥 к сожалению процедура не очень быстрая, поэтому большие
¯àאַ㣮«ì­¨ª¨ ᮢ¥âãî ®á®¡® ­¥ ¨­¢¥àâ¨à®¢ âì... ;) прямоугольники советую особо не инвертировать... ;)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnIFF - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnIFF - процедура вывода текстовых строк на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ  640x256 в режиме размерного по X шрифта
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®© HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnNorm - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnNorm - процедура вывода текстовых строк на графический экран
640x256 640x256
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®© HL - адрес байта, следующего за строкой
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnTxtLnNormC - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ PrnTxtLnNormC - процедура вывода текстовых строк на графический экран
640x256 á ¨§¢¥áâ­ë¬ ç¨á«®¬ ᨬ¢®«®¢ 640x256 с известным числом символов
­  ¢å®¤: на вход:
HL -  ¤à¥á ⥪á⮢®© áâப¨ HL - адрес текстовой строки
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
C - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y C - позиция вывода по Y
B - ª®«-¢® ¯¥ç â ¥¬ëå ᨬ¢®«®¢ B - кол-во печатаемых символов
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  ¯®á«¥¤­¨¬ ᨬ¢®«®¬ HL - адрес байта, следующего за последним символом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathL - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathL - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª 640x256 в режиме размерного по X шрифта, прижатых к
«¥¢®¬ã ªà î ( |-> ) левому краю ( |-> )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathR - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathR - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª 640x256 в режиме размерного по X шрифта, прижатых к
¯à ¢®¬ã ªà î ( <-| ) правому краю ( <-| )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnRangPathC - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨© íªà ­ PrnRangPathC - процедура вывода досовских путей на графический экран
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ®â業âà¨à®¢ ­­ëå 640x256 в режиме размерного по X шрифта, отцентрированных
®â­®á¨â¥«ì­® ªà ñ¢ ( <-|-> ) относительно краёв ( <-|-> )
­  ¢å®¤: на вход:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨ IX - кол-во пикселей под вывод строки
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0) HL - адрес текстовой строки (конец строки - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X DE - позиция вывода по X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y BC - позиция вывода по Y
A - 梥⠯¥ç â¨ A - цвет печати
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
­  ¢ë室: на выход:
- -
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£® процедура грамотно укорачивает досовский путь до нужного
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\ размера путём замещения невлезающих директорий на ..\
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InputLine - ¯à®æ¥¤ãà  à¥¤ ªâ¨à®¢ ­¨ï áâப¨ ­  £à ä¨ç¥áª®¬ íªà ­¥ InputLine - процедура редактирования строки на графическом экране
640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ  640x256 в режиме размерного по X шрифта
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áâப¨ IX - адрес описателя строки
HL -  ¤à¥á ®¯¨á â¥«ï í«¥¬¥­â®¢ íªà ­  (¤«ï ¬ë誨) HL - адрес описателя элементов экрана (для мышки)
­  ¢ë室: на выход:
- -
®¯¨á â¥«ì áâப¨: описатель строки:
+00 (1) ¬ ªá¨¬ «ì­ ï ¤«¨­  áâப¨ +00 (1) максимальная длина строки
+01 (1) ä« £ £®â®¢­®á⨠+01 (1) флаг готовности
+02 (1) ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InputLine) +02 (1) текущая X позиция курсора (инициализируется в InputLine)
+03 (1) ⥪ãé ï add_x (¨­¨æ¨ «¨§¨àã¥âáï ¢ InputLine) +03 (1) текущая add_x (инициализируется в InputLine)
+04 (1) ª®«¨ç¥á⢮ ¢¢¥¤¥­­ëå ᨬ¢®«®¢ / ¤«¨­  áâப¨ +04 (1) количество введенных символов / длина строки
+05 (2) X ¯®§¨æ¨ï áâப¨ ­  íªà ­¥ +05 (2) X позиция строки на экране
+07 (2) Y ¯®§¨æ¨ï áâப¨ ­  íªà ­¥ +07 (2) Y позиция строки на экране
+09 (2) X ¤«¨­  áâப¨ ­  íªà ­¥ +09 (2) X длина строки на экране
+0B (1) 梥â áâப¨ (d7-d4 梥â background, d3-d0 梥â foreground) +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground)
+0C ... á ¬  áâப  +0C ... сама строка
¯à®æ¥¤ãàë ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ : процедуры для таблицы элементов экрана:
InpLnExtN - ¯à®æ¥¤ãà  ­®à¬ «ì­®£® ¢ë室  ¨§ । ªæ¨¨ InpLnExtN - процедура нормального выхода из редакции
InpLnExtC - ¯à®æ¥¤ãà  ¢ë室  ¨§ । ªæ¨¨ ¯® cancel InpLnExtC - процедура выхода из редакции по cancel
(¢®ááâ ­ ¢«¨¢ ¥â ¨§­ ç «ì­ãî áâபã) (восстанавливает изначальную строку)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InitScrBar - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï áªà®««¡ à  InitScrBar - процедура инициализации описателя скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  IX - адрес описателя скроллбара
­  ¢ë室: на выход:
- -
®¯¨á â¥«ì áªà®««¡ à : описатель скроллбара:
+00 (2) X ¯®§¨æ¨ï áªà®«¡ à  (0-639) +00 (2) X позиция скролбара (0-639)
+02 (2) Y ¯®§¨æ¨ï áªà®«¡ à  (0-255) +02 (2) Y позиция скролбара (0-255)
+04 (2) ¤«¨­  áªà®«¡ à  +04 (2) длина скролбара
+06 (2) ⥪ãé ï ¤«¨­  áªà®«¡ à  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitScrBar) +06 (2) текущая длина скролбара (инициализируется в InitScrBar)
+08 (2)  ¤à¥á ï祩ª¨, ªã¤  § ¯¨è¥âáï ­ ç «ì­ ï ª®®à¤¨­ â  ¡ à  +08 (2) адрес ячейки, куда запишется начальная координата бара
¥á«¨ 0, â® ­¥ ¨á¯®«ì§ã¥âáï если 0, то не используется
(¨á¯®«ì§ã¥âáï ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ ) (используется для таблицы элементов экрана)
+10 (2)  ¤à¥á ï祩ª¨, ªã¤  § ¯¨è¥âáï ª®­¥ç­ ï ª®®à¤¨­ â  ¡ à  +10 (2) адрес ячейки, куда запишется конечная координата бара
¥á«¨ 0, â® ­¥ ¨á¯®«ì§ã¥âáï если 0, то не используется
(¨á¯®«ì§ã¥âáï ¤«ï â ¡«¨æë í«¥¬¥­â®¢ íªà ­ ) (используется для таблицы элементов экрана)
+12 (2) ª®«-¢® ¢¨¤¨¬ëå í«¥¬¥­â®¢ +12 (2) кол-во видимых элементов
+14 (2) ®¡é¥¥ ª®«-¢® í«¥¬¥­â®¢ +14 (2) общее кол-во элементов
+16 (2) ¯¥à¢ ï ¢¨¤¨¬ë© í«¥¬¥­â +16 (2) первая видимый элемент
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnHScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ £®à¨§®­â «ì­®£® áªà®««¡ à  PrnHScrBar - процедура печати горизонтального скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  (á¬. ¢ëè¥) IX - адрес описателя скроллбара (см. выше)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnVScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ ¢¥à⨪ «ì­®£® áªà®««¡ à  PrnVScrBar - процедура печати вертикального скроллбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  (á¬. ¢ëè¥) IX - адрес описателя скроллбара (см. выше)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
InitProcess - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï ¯à®æ¥áá¡ à  InitProcess - процедура инициализации описателя процессбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  IX - адрес описателя процессбара
­  ¢ë室: на выход:
- -
®¯¨á â¥«ï ¯à®æ¥áá¡ à : описателя процессбара:
+00 (2) X ¯®§¨æ¨ï ¯à®æ¥áá¡ à  (0-639) +00 (2) X позиция процессбара (0-639)
+02 (2) Y ¯®§¨æ¨ï ¯à®æ¥áá¡ à  (0-255) +02 (2) Y позиция процессбара (0-255)
+04 (2) ¤«¨­  ¯à®æ¥áá¡ à  +04 (2) длина процессбара
+06 (2) ª®íä䍿¨¥­â ¤«ï ¯à®æ¥áá  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +06 (2) коэффициент для процесса (инициализируется в InitProcess)
+08 (2) ª®à४æ¨ï ª®í䍿¨¥­â  (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +08 (2) коррекция коэфициента (инициализируется в InitProcess)
+10 (4) ¬ ªá¨¬ã¬ (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +10 (4) максимум (инициализируется в InitProcess)
+14 (4) ⥪ã饥 (¨­¨æ¨ «¨§¨àã¥âáï ¢ InitProcess) +14 (4) текущее (инициализируется в InitProcess)
+18 (1) æ¢¥â ¯à®æ¥áá¡ à  +18 (1) цвет процессбара
(d7-d4 梥â background, d3-d0 梥â foreground) (d7-d4 цвет background, d3-d0 цвет foreground)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
PrnProcess - ¯à®æ¥¤ãà  ¯¥ç â¨ ¯à®æ¥áá¡ à  PrnProcess - процедура печати процессбара
­  ¢å®¤: на вход:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  (á¬. ¢ëè¥) IX - адрес описателя процессбара (см. выше)
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ResFire - ¯à®æ¥¤ãà  ®¦¨¤ ­¨ï, ¯®ª  ¢á¥ ª­®¯ª¨ ¬ëè¨ ­¥ ¡ã¤ãâ ®â¯ã饭ë ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
TestCoords - ¯à®æ¥¤ãà  ¯à®¢¥àª¨ ª®®à¤¨­ â ¬ëè¨ ¯® â ¡«¨æ¥ í«¥¬¥­â®¢ TestCoords - процедура проверки координат мыши по таблице элементов
§ªà ­  зкрана
­  ¢å®¤: на вход:
IX -  ¤à¥á â ¡«¨æë í«¥¬¥­â®¢ §ªà ­  IX - адрес таблицы элементов зкрана
­  ¢ë室: на выход:
- -
â ¡«¨æ  í«¥¬¥­â®¢ §ªà ­ : таблица элементов зкрана:
+00 (2) «¥¢ ï x ª®®à¤¨­ â  í«¥¬¥­â  +00 (2) левая x координата элемента
+02 (2) ¯à ¢ ï x ª®®à¤¨­ â  í«¥¬¥­â  +02 (2) правая x координата элемента
+04 (2) ¢¥àå­ïï y ª®®à¤¨­ â  í«¥¬¥­â  +04 (2) верхняя y координата элемента
+06 (2) ­¨¦­ïï y ª®®à¤¨­ â  í«¥¬¥­â  +06 (2) нижняя y координата элемента
+08 (2) ä« £¨ í«¥¬¥­â  +08 (2) флаги элемента
+10 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­¥ ­ ¦ â®¬ ®£­¥ +10 (2) адрес обработчика при не нажатом огне
+12 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ («¥¢ ï ª­®¯ª ) +12 (2) адрес обработчика при нажатом огне (левая кнопка)
+14 (2)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢ ï ª­®¯ª ) +14 (2) адрес обработчика при нажатом огне (правая кнопка)
¥á«¨ +00 == 0x8000 íâ® áç¨â ¥âáï ª®­æ®¬ â ¡«¨æë í«¥¬¥­â®¢ §ªà ­  если +00 == 0x8000 это считается концом таблицы элементов зкрана
ä« £¨ í«¥¬¥­â : флаги элемента:
d00 - í«¥¬¥­â ª­®¯ª  d00 - элемент кнопка
d01 - à ¡®ç ï ª­®¯ª  d01 - рабочая кнопка
d02 - ¨­¢¥àâ d02 - инверт
d03 - áâ â¨ç­ë© ¨­¢¥àâ d03 - статичный инверт
d04 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¡¥§ ®£­ï d04 - программа запускается без адреса возврата без огня
(â.¥. ¯à¨ ¯®¯ ¤ ­¨¨ ªãàá®à  ¬ëè¨ ¢ íâã ¯àאַ㣮«ì­ãî (т.е. при попадании курсора мыши в эту прямоугольную
®¡« áâì 㤠«ï¥âáï  ¤à¥á ¢®§à â  á® á⥪  ¨ ®áãé¥á⢫ï¥âáï область удаляется адрес возрата со стека и осуществляется
¯¥à¥å®¤ ­   ¤à¥á, ª®â®àë© ­ å®¤¨âìáï ¢ +10) переход на адрес, который находиться в +10)
d05 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® «¥¢®© ª­®¯ª¥ d05 - программа запускается без адреса возврата по левой кнопке
®£­ï огня
(â.¥. ¯à¨ ­ ¦ â¨¨ «¥¢®© ª­®¯ª¨ ¬ëè¨ ­ ¤ ¯àאַ㣮«ì­®© (т.е. при нажатии левой кнопки мыши над прямоугольной
®¡« áâìî 㤠«ï¥âáï  ¤à¥á ¢®§à â  á® á⥪  ¨ ®áãé¥á⢫ï¥âáï областью удаляется адрес возрата со стека и осуществляется
¯¥à¥å®¤ ­   ¤à¥á, ª®â®àë© ­ å®¤¨âìáï ¢ +12) переход на адрес, который находиться в +12)
d06 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® ¯à ¢®© ª­®¯ª¥ d06 - программа запускается без адреса возврата по правой кнопке
®£­ï огня
(â.¥. ¯à¨ ­ ¦ â¨¨ ¯à ¢®© ª­®¯ª¨ ¬ëè¨ ­ ¤ ¯àאַ㣮«ì­®© (т.е. при нажатии правой кнопки мыши над прямоугольной
®¡« áâìî 㤠«ï¥âáï  ¤à¥á ¢®§à â  á® á⥪  ¨ ®áãé¥á⢫ï¥âáï областью удаляется адрес возрата со стека и осуществляется
¯¥à¥å®¤ ­   ¤à¥á, ª®â®àë© ­ å®¤¨âìáï ¢ +14) переход на адрес, который находиться в +14)
d07 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¡¥§ d07 - вызвать функцию закрытия окна перед запуском программы без
®£­ï огня
(â.¥. ¯à¨ ¯®¯ ¤ ­¨¨ ªãàá®à  ¬ëè¨ ¢ íâã ¯àאַ㣮«ì­ãî (т.е. при попадании курсора мыши в эту прямоугольную
®¡« áâì 㤠«ï¥âáï ¯®á«¥¤­¥¥ ®ª­® á íªà ­ ) область удаляется последнее окно с экрана)
d08 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® d08 - вызвать функцию закрытия окна перед запуском программы по
«¥¢®© ª­®¯ª¥ левой кнопке
(â.¥. ¯à¨ ­ ¦ â¨¨ «¥¢®© ª­®¯ª¨ ¬ëè¨ ­ ¤ ¯àאַ㣮«ì­®© (т.е. при нажатии левой кнопки мыши над прямоугольной
®¡« áâìî 㤠«ï¥âáï ¯®á«¥¤­¥¥ ®ª­® á íªà ­ ) областью удаляется последнее окно с экрана)
d09 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® d09 - вызвать функцию закрытия окна перед запуском программы по
¯à ¢®© ª­®¯ª¥ правой кнопке
(â.¥. ¯à¨ ­ ¦ â¨¨ ¯à ¢®© ª­®¯ª¨ ¬ëè¨ ­ ¤ ¯àאַ㣮«ì­®© (т.е. при нажатии правой кнопки мыши над прямоугольной
®¡« áâìî 㤠«ï¥âáï ¯®á«¥¤­¥¥ ®ª­® á íªà ­ ) областью удаляется последнее окно с экрана)
d15 - íâ® ä« £: 1 - ¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì d15 - это флаг: 1 - инверт при огне не убирать
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetCMOSPrint - ¯à®æ¥¤ãà  ¢ª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS SetCMOSPrint - процедура включения печати даты/время из CMOS
­  ¢å®¤: на вход:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥ - будет описано позднее
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ResCMOSPrint - ¯à®æ¥¤ãà  ¢ëª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS ResCMOSPrint - процедура выключения печати даты/время из CMOS
­  ¢å®¤: на вход:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥ - будет описано позднее
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetClock - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ç áë SetClock - процедура установки курсора мыши в часы
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
SetMouse - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ­®à¬ «ì­ë© ªãàá®à SetMouse - процедура установки курсора мыши в нормальный курсор
­  ¢å®¤: на вход:
- -
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MoveBytes - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî MoveBytes - процедура быстрого копирования памяти с помощью
 ªá¥««¥à â®à  á 㢥«¨ç¥­¨¥¬  ¤à¥á®¢ акселлератора с увеличением адресов
­  ¢å®¤: на вход:
HL - ®âªã¤  HL - откуда
DE - ªã¤  DE - куда
BC - ᪮«ìª® BC - сколько
­  ¢ë室: на выход:
HL - (®âªã¤  + ᪮«ìª®) HL - (откуда + сколько)
DE - (ªã¤  + ᪮«ìª®) DE - (куда + сколько)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
MoveBytesUp - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî MoveBytesUp - процедура быстрого копирования памяти с помощью
 ªá¥««¥à â®à  á 㬥­ì襭¨¥¬  ¤à¥á®¢ акселлератора с уменьшением адресов
­  ¢å®¤: на вход:
HL - ®âªã¤  HL - откуда
DE - ªã¤  DE - куда
BC - ᪮«ìª® BC - сколько
­  ¢ë室: на выход:
HL - (®âªã¤  - ᪮«ìª®) HL - (откуда - сколько)
DE - (ªã¤  - ᪮«ìª®) DE - (куда - сколько)
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult8 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï 8 * 8 bit = 16 bit Mult8 - процедура беззнакового умножения 8 * 8 bit = 16 bit
­  ¢å®¤: на вход:
E * C E * C
­  ¢ë室: на выход:
HL - १ã«ìâ â HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16X8 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï 16 * 8 bit = 24 bit Mult16X8 - процедура беззнакового умножения 16 * 8 bit = 24 bit
­  ¢å®¤: на вход:
DE * C DE * C
­  ¢ë室: на выход:
A, HL - १ã«ìâ â A, HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï 16 * 16 bit = 16 bit Mult16 - процедура беззнакового умножения 16 * 16 bit = 16 bit
­  ¢å®¤: на вход:
DE * BC DE * BC
­  ¢ë室: на выход:
HL - १ã«ìâ â HL - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult16X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï 16 * 16 bit = 32 bit Mult16X16 - процедура беззнакового умножения 16 * 16 bit = 32 bit
­  ¢å®¤: на вход:
DE * BC DE * BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Mult32 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï 32 * 16 bit = 32 bit Mult32 - процедура беззнакового умножения 32 * 16 bit = 32 bit
­  ¢å®¤: на вход:
HL, DE * BC HL, DE * BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis16X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï 16 / 16 bit = 16.16 bit Divis16X16 - процедура беззнакового деления 16 / 16 bit = 16.16 bit
­  ¢å®¤: на вход:
BC / DE BC / DE
­  ¢ë室: на выход:
BC - १ã«ìâ â BC - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis24X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï 24 / 16 bit = 8.16 bit Divis24X16 - процедура беззнакового деления 24 / 16 bit = 8.16 bit
­  ¢å®¤: на вход:
HL, C / DE HL, C / DE
­  ¢ë室: на выход:
A - १ã«ìâ â A - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis32X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï 32 / 16 bit = 16.16 bit Divis32X16 - процедура беззнакового деления 32 / 16 bit = 16.16 bit
­  ¢å®¤: на вход:
HL, DE / BC HL, DE / BC
­  ¢ë室: на выход:
DE - १ã«ìâ â DE - результат
HL - ®áâ â®ª HL - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
Divis32 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï 32 / 16 bit = 32.16 bit Divis32 - процедура беззнакового деления 32 / 16 bit = 32.16 bit
­  ¢å®¤: на вход:
HL, DE / BC HL, DE / BC
­  ¢ë室: на выход:
HL, DE - १ã«ìâ â HL, DE - результат
BC - ®áâ â®ª BC - остаток
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ¡¥§§­ ª®¢®£® ç¨á«  32 bit ¢ ⥪áâ ConvNumTxt32 - процедура конвертации беззнакового числа 32 bit в текст
­  ¢å®¤: на вход:
BC, HL - ç¨á«® 32 bit BC, HL - число 32 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ¡¥§§­ ª®¢®£® ç¨á«  16 bit ¢ ⥪áâ ConvNumTxt16 - процедура конвертации беззнакового числа 16 bit в текст
­  ¢å®¤: на вход:
HL - ç¨á«® 16 bit HL - число 16 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvNumTxt8 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ¡¥§§­ ª®¢®£® ç¨á«  8 bit ¢ ⥪áâ ConvNumTxt8 - процедура конвертации беззнакового числа 8 bit в текст
­  ¢å®¤: на вход:
A - ç¨á«® 8 bit A - число 8 bit
DE -  ¤à¥á ¡ãä¥à  DE - адрес буфера
­  ¢ë室: на выход:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬ DE - адрес следующего байта за числом
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvTxtNum32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ¡¥§§­ ª®¢®¥ ç¨á«® 32 bit ConvTxtNum32 - процедура конвертации текста в беззнаковое число 32 bit
­  ¢å®¤: на вход:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0) DE - адрес текста (конец строки - 0)
­  ¢ë室: на выход:
HL, IX - ç¨á«® HL, IX - число
C flag - ®è¨¡ª  C flag - ошибка
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
ConvTxtNum16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ¡¥§§­ ª®¢®¥ ç¨á«® 16 bit ConvTxtNum16 - процедура конвертации текста в беззнаковое число 16 bit
­  ¢å®¤: на вход:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0) DE - адрес текста (конец строки - 0)
­  ¢ë室: на выход:
HL - ç¨á«® HL - число
C flag - ®è¨¡ª  C flag - ошибка
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
DOSError - ¯à®æ¥¤ãà  ¢ë¢®¤  ®ª­  ®è¨¡ª¨ (¤«ï ¤®á ®è¨¡®ª) DOSError - процедура вывода окна ошибки (для дос ошибок)
­  ¢å®¤: на вход:
A - ­®¬¥à ®è¨¡ª¨ A - номер ошибки
­  ¢ë室: на выход:
- -
[]------------------------------------------------------------------------[] []------------------------------------------------------------------------[]
@ -608,4 +608,4 @@
13 july 2002 13 july 2002
Anton Enin (C) Copyright 2002 R-lab Anton Enin (C) Copyright 2002 R-lab
¥á«¨ ¥áâì ¢®¯à®áë e-mail: r-lab@mail.ru ¨«¨ ­  á¯à¨­â¥à ä®à㬥. если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме.

File diff suppressed because it is too large Load Diff

View File

@ -3,149 +3,152 @@ FN - FlexNavigator
FV - FileViewer FV - FileViewer
FE - FileEditor FE - FileEditor
31.05.25 24.06.2025
FN FN 1.15
- ­¥¡®«ì訥 ¯¥à¥¤¥«ª¨ ¢ bat ä ©« å - исправлена проверка запускаемого файла по расширению.
- ¨á¯à ¢«¥­ "attribut" ­  "attribute" - доки переведены на UTF8 кодировку.
- ¨á¯à ¢«¥­ ¢ 2å ¬¥áâ å "claster" ­  "cluster" - поправлена CorrBigChar.
- небольшие переделки в bat файлах.
- исправлен "attribut" на "attribute".
- исправлен в 2х местах "claster" на "cluster".
28.05.25 28.05.2025
FE v1.08 FE v1.08
- ã¡à ­® "¨áª ¦¥­¨¥" ¨¬¥­¨ ä ©«  ¯à¨ § ¯ã᪥. - убрано "искажение" имени файла при запуске.
FV v1.05 FV v1.05
- ã¡à ­® "¨áª ¦¥­¨¥" ¨¬¥­¨ ä ©«  ¯à¨ § ¯ã᪥. - убрано "искажение" имени файла при запуске.
FN v1.14 FN v1.14
- ¨á¯à ¢«¥­® § ¢¨á ­¨¥ ¢ ª®¬ ­¤­®© áâப¥ ¯à¨ ­ ¦ â¨¨ ALT+F1/F2. - исправлено зависание в командной строке при нажатии ALT+F1/F2.
- ᤥ« ­ ¯à®¯ã᪠¤«ï ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ".." ¤«ï á®àâ¨à®¢é¨ª  ¤«ï ¯à ¢¨«ì­®© á®àâ¨à®¢ª¨. - сделан пропуск для имени директории ".." для сортировщика для правильной сортировки.
- ¯®¯à ¢«¥­ë ­ §¢ ­¨ï ⨯®¢ á®àâ¨à®¢ª¨. - поправлены названия типов сортировки.
- ᤥ« ­ ¨§¬¥à¨â¥«ì à §¬¥à  ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å ¤«ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨ï¬¨ (¯®ª  á¯àïâ ­). - сделан измеритель размера директории в байтах для копирования директориями (пока спрятан).
- ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¨§ ¤¥à¥¢  ᤥ« ­ ¯® ENTER ¢¬¥áâ®  ¢â®¯®ª §  (¯®ª  á¯àïâ ­ ). - показ содержимого директории из дерева сделан по ENTER вместо автопоказа (пока спрятана).
- ¯®¯à ¢«¥­  £¥­¥à æ¨ï ¤¥à¥¢  ä ©«®¢. - поправлена генерация дерева файлов.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
25/06/24 25/06/24
„®¡ ¢«¥­® ®â®¡à ¦¥­¨¥ á®®¡é¥­¨ï ® § é¨â¥ ®â § ¯¨á¨. Добавлено отображение сообщения о защите от записи.
13/05/24 13/05/24
ˆá¯à ¢«¥­  ®è¨¡ª  ¨­¨æ¨ «¨§ æ¨¨ áâà ­¨æë help. Исправлена ошибка инициализации страницы help.
„®¡ ¢«¥­  ¯®¤¤¥à¦ª  ¡®«ìè¨å ä ©«®¢ ¤«ï FAT32 Добавлена поддержка больших файлов для FAT32
11/05/24 11/05/24
’¥¯¥àì ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ® ⮬, ç⮠᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨. ’¥ ä ©«ë, ª®â®àë¥ "­¥ ¢«¥§«¨" - ­¥ ®â®¡à ¦ îâáï. Теперь выводится сообщение о том, что слишком много файлов в директории. Те файлы, которые "не влезли" - не отображаются.
12/12/23 12/12/23
<EFBFBD>®¤¤¥à¦ª  Current Dir, ¯à¨ áâ à⥠®â®¡à ¦ ¥âáï ⥪ãé ï ¤¨à¥ªâ®à¨ï ¤¨áª . Поддержка Current Dir, при старте отображается текущая директория диска.
07/09/23 07/09/23
Œ­®¦¥á⢥­­ë¥ ¬¥«ª¨¥ ¯à ¢ª¨. Множественные мелкие правки.
01/08/23 01/08/23
<EFBFBD>®¢¨á ¥â FN ¯®á«¥ ¯¥à¥§ £à㧪¨ ¡®«ì让  «ìâ¥àë (titd, ldconf). Повисает FN после перезагрузки большой альтеры (titd, ldconf).
“¡à ­  ¯à®¢¥àª  ­  Sp97. Убрана проверка на Sp97.
‚¥àá¨ï ­®à¬ «ì­® ¯à®¯¨á ­ , «¨è­¨¥ ª®¯¨à ©âë ¯à¨ § ¯ã᪥ ã¡à ­ë. Версия нормально прописана, лишние копирайты при запуске убраны.
29/07/23 29/07/23
’ ¡«¨æ  ®è¨¡®ª ®â § ¢¥à訢襣®áï ¯à¨«®¦¥­¨ï - 32 § ¯¨á¨. Таблица ошибок от завершившегося приложения - 32 записи.
DSS à ­ìè¥ ­¥ ¢®§¢à é « ä« £ CF ¯à¨ ¢ë室¥ á ®è¨¡ª®©, ­® FN ¢á¥£¤  ¯à®¢¥àï« ¯®á«¥ ¢®§¢à â  ¨§ ¯à¨«®¦¥­¨ï ä« £ CF. DSS раньше не возвращал флаг CF при выходе с ошибкой, но FN всегда проверял после возврата из приложения флаг CF.
DSS ⥯¥àì ¢¥à­ã«, FN ¯®«¥§ ®è¨¡ªã ¯à®¢¥àïâì,   â ¬ FF,   â ¡«¨æ  ­  32... DSS теперь вернул, FN полез ошибку проверять, а там FF, а таблица на 32...
<EFBFBD> ©¤¥­® ­  disttest.exe, ®­ ¢ë室¨â § ç¥¬-â® ãáâ ­®¢¨¢ ª®¤ ®è¨¡ª¨ #FF,   â ª®£® ª®¤  ­¥â. Найдено на disttest.exe, он выходит зачем-то установив код ошибки #FF, а такого кода нет.
<EFBFBD>㦭® á ­ã«¥¬ ¢ë室¨âì ¡¥§ ®è¨¡®ª. Нужно с нулем выходить без ошибок.
17/07/23 17/07/23
¡¨®á¥ 2.55 ¯®ï¢¨« áì äã­ªæ¨ï - ¯¥à¥¤ ¢ âì ã¯à ¢«¥­¨¥ ¨§ <20>‡“ ®¡à ¡®â稪㠯à¥à뢠­¨ï ¢ ­ã«¥¢®© ¡ ­ª¥ އ“. В биосе 2.55 появилась функция - передавать управление из ПЗУ обработчику прерывания в нулевой банке ОЗУ.
C¤¥« ­  ¯à®¢¥àª  ­  ¢¥àá¨î ¡¨®á . Cделана проверка на версию биоса.
10/05/22 10/05/22
Viewer: Viewer:
* <EFBFBD>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è. * Поправлен косметический баг в нижней строке при смене функциональных клавиш.
* ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨. * Исправлено зависание принтера до таймаута при печати.
* ƒ¥à®¨ç¥áª¨ áíª®­®¬«¥­® ­¥¬­®£® ⠪⮢ â ¬, £¤¥ ­¨ªâ® ­¥ § ¬¥â¨â))). * Героически сэкономлено немного тактов там, где никто не заметит))).
+ <EFBFBD>¥ç âì ¯¥à¥­¥á¥­  ­  ª« ¢¨èã F7, ç⮡ ¢ë£­ âì ¢ á ¨§ §®­ë ª®¬ä®àâ ))). + Печать перенесена на клавишу F7, чтоб выгнать вас из зоны комфорта))).
+ „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨. + Добавлено сочетание CTRL+P для печати.
? <EFBFBD>®ç⨠¨á¯à ¢«¥­ Wrap, ®áâ «áï ¡ £ á ¢¥àå­¥© áâப®©. ‹ãçè¥, 祬 ­¨ç¥£®. ? Почти исправлен Wrap, остался баг с верхней строкой. Лучше, чем ничего.
Editor: Editor:
+ „®¡ ¢«¥­  ª­®¯ª  "F7 Print" + Добавлена кнопка "F7 Print"
+ „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨ ¢ ०¨¬¥ HEX + Добавлено сочетание CTRL+P для печати в режиме HEX
* <EFBFBD>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è * Поправлен косметический баг в нижней строке при смене функциональных клавиш
* ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨ * Исправлено зависание принтера до таймаута при печати
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
FE v.1.06 05.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.06 05.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <EFBFBD>® ª­®¯ª¥ F9 ¢ë§ë¢ îâáï ­ áâனª¨ । ªâ®à  á ¢®§¬®¦­®áâìî á®åà ­¨âì ­ áâனª¨ + По кнопке F9 вызываются настройки редактора с возможностью сохранить настройки
¢ ä ©« в файл
FN v.1.13.1 02.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FN v.1.13.1 02.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ¢¥àá¨ï ¡¥§ ᦠâ¨ï ª®¤®¢ëå ¡«®ª®¢ * версия без сжатия кодовых блоков
FE v.1.05.1 02.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.05.1 02.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ ¯ à ¬¥âà ¢ ª®­ä¨£-ä ©«¥ fnedit.ini, ª®â®àë© ¢ª«îç ¥â/®âª«î砥⠤¨ «®£ + Добавлен параметр в конфиг-файле fnedit.ini, который включает/отключает диалог
¯®¤â¢¥à¦¤¥­¨ï § ªàëâ¨ï । ªâ®à  подтверждения закрытия редактора
FE v.1.05 07.06.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.05 07.06.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ¨á¯à ¢«¥­ £«îª, ª®â®àë© ¯à¨¢®¤¨« ª § ¢¨á ­¨î ¨«¨ á¡à®áã ¯®á«¥ 7-£® ®âªàëâ¨ï * исправлен глюк, который приводил к зависанию или сбросу после 7-го открытия
। ªâ®à  редактора
+ „®¡ ¢«¥­®  ¢â®§ ªàë⨥ ᨬ¢®«®¢ ᪮¡®ª ¨ ª ¢ë祪 + Добавлено автозакрытие символов скобок и кавычек
+ “ । ªâ®à  ¯®ï¢¨«áï ª®­ä¨£-ä ©« fnedit.ini, ç¥à¥§ ª®â®àë© ¬®¦­® ®âª«îç¨âì + У редактора появился конфиг-файл fnedit.ini, через который можно отключить
­¥ª®â®àë¥ ä¨ç¨ некоторые фичи
FE v.1.04 18.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.04 18.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­  ª­®¯ª  Ctrl+P ¤«ï ¯¥ç â¨ (§ â¥¬ F9 ¡ã¤¥â ¯¥à¥­ §­ ç¥­  ­  ¤à㣮© + Добавлена кнопка Ctrl+P для печати (затем F9 будет переназначена на другой
ä㭪樮­ «) функционал)
+ „®¡ ¢«¥­ ä㭪樮­ « ®â¬¥­ë ¯® Ctrl+Z (íâ® ­¥ ¯®è £®¢ë© Undo, ­¥ ¯®«­®æ¥­­ë©, + Добавлен функционал отмены по Ctrl+Z (это не пошаговый Undo, не полноценный,
¯à®áâ® á¡à á뢠¥â ¡ãä¥à ⥪ã饩 । ªâ¨à㥬®© áâப¨, ­  ¬®¬¥­â ¯¥à¥å®¤  просто сбрасывает буфер текущей редактируемой строки, на момент перехода
­  íâã áâபã) на эту строку)
FE v.1.03 17.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.03 17.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ë ª­®¯ª¨ ã¯à ¢«¥­¨ï Alt+CursorLeft(Home) ¨ Alt+CursorRight(End) + Добавлены кнопки управления Alt+CursorLeft(Home) и Alt+CursorRight(End)
* ˆá¯à ¢«¥­ ¡ £ ¢ ¯®¤¯à®£à ¬¬¥ THomeString - ­  ¯ãá⮩ áâப¥ ¬®£«  § æ¨ª«¨âìáï * Исправлен баг в подпрограмме THomeString - на пустой строке могла зациклиться
* ˆá¯à ¢«¥­ ¡ £ ¢ TEndString,  ­ «®£¨ç­® - ­  ¯ãá⮩ áâப¥ ¬®£«  § æ¨ª«¨âìáï * Исправлен баг в TEndString, аналогично - на пустой строке могла зациклиться
* ˆá¯à ¢«¥­  ¯®¤¯à®£à ¬¬  § ¯®«­¥­¨ï ¡ãä¥à  ⥪ã饩 áâப¨ (¯à¨ ­ã«¥¢®© ¤«¨­¥ * Исправлена подпрограмма заполнения буфера текущей строки (при нулевой длине
áâப¨ ®­ ­¥ ®ç¨é «áï) строки он не очищался)
FN v.1.12.1 13.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FN v.1.12.1 13.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ˆá¯à ¢«¥­ ¡ £ ¯à¨  ¢â®¬ â¨ç¥áª®© ᬥ­¥ ¯ ­¥«¨ * Исправлен баг при автоматической смене панели
+ „®¡ ¢«¥­  ­ áâனª  ¢ SetUp ¤«ï ®âª«î祭¨ï  ¢â®¬ â¨ç¥áª®©  ªâ¨¢ æ¨¨ ¯ ­¥«¨ ¯à¨ + Добавлена настройка в SetUp для отключения автоматической активации панели при
ᬥ­¥ ¤¨áª  смене диска
FE v.1.02 10.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.02 10.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­  £®àïç ï ª­®¯ª  Ctrl+D ¤«ï ¤ã¡«¨à®¢ ­¨ï áâப¨ (à ¡®â ¥â + Добавлена горячая кнопка Ctrl+D для дублирования строки (работает
⮫쪮 ¤«ï áâப ¤® 127 ᨬ¢®«®¢) только для строк до 127 символов)
+ <EFBFBD>ਠ¯¥à¥­®á¥ áâப¨ ¢ ­ ç «¥ áâப¨ ¤¥« ¥âáï â ª®© ¦¥ ®âáâ㯠®â ­ ç « , ª ª ¨ + При переносе строки в начале строки делается такой же отступ от начала, как и
­  ¯à¥¤ë¤ã饩 áâப¥ на предыдущей строке
* <EFBFBD>¥à¥à ¡®â ­ë ¯à®æ¥¤ãàë ¯®§¨æ¨®­¨à®¢ ­¨ï ªãàá®à  * Переработаны процедуры позиционирования курсора
FN v.1.12+ 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FN v.1.12+ 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <EFBFBD> ­¥«ì, ¢ ª®â®à®© ¬¥­ï¥âáï ¤¨áª ¯® Alt+F1/F2 áâ ­®¢¨âáï  ªâ¨¢­®© + Панель, в которой меняется диск по Alt+F1/F2 становится активной
FE v.1.01 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FE v.1.01 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ ¤¨ «®£ á § ¯à®á®¬ ¯®¤â¢¥à¦¤¥­¨ï ¢ë室  ¨§ । ªâ®à  + Добавлен диалог с запросом подтверждения выхода из редактора
+ <EFBFBD>ਠ¨§¢«¥ç¥­¨¨ áâப¨ ¡ãä¥à áâப¨ ®ç¨é ¥âáï - à ­¥¥ ¬®¦­® ¡ë«® ­ ¡«î¤ âì + При извлечении строки буфер строки очищается - ранее можно было наблюдать
­¥ª®â®àë© ¬ãá®à ¢ ª®­æ¥ áâப¨ ¯à¨ ­ ¢¨£ æ¨¨ ¬¥¦¤ã áâப ¬¨ некоторый мусор в конце строки при навигации между строками
* „®à ¡®â ­  ¯à®æ¥¤ãà  ¯®§¨æ¨®­¨à®¢ ­¨ï ªãàá®à  ¯à¨ ­ ¢¨£ æ¨¨ ­  áâபã * Доработана процедура позиционирования курсора при навигации на строку
(áâà ­¨æã) ¢ëè¥/­¨¦¥ - ¢ § ¢¨á¨¬®á⨠®â ­ «¨ç¨ï â ¡ã«ïâ®à®¢ ¢ áâப¥, ªãàá®à (страницу) выше/ниже - в зависимости от наличия табуляторов в строке, курсор
¬®£ ®â᪠ª¨¢ âì ­  ­¥áª®«ìª® ¯®§¨æ¨© ¢ áâ®à®­ã мог отскакивать на несколько позиций в сторону
+ „®¡ ¢«¥­  ¢®§¬®¦­®áâì 㤠«¥­¨ï 楫®© áâப¨ ¯® Ctrl+Y + Добавлена возможность удаления целой строки по Ctrl+Y
+ „®¡ ¢«¥­  £®àïç ï ª­®¯ª  ¤«ï á®åà ­¥­¨ï Ctrl+S + Добавлена горячая кнопка для сохранения Ctrl+S
+ <EFBFBD>¥ «¨§ æ¨ï ­®¢®£® ०¨¬  à ¡®âë Home - ¥á«¨ ¥áâì â ¡ã«ïâ®àë ¢ ­ ç «¥ áâப¨, + Реализация нового режима работы Home - если есть табуляторы в начале строки,
â® ¯à¨ ¯¥à¢®¬ ­ ¦ â¨¨ ªãàá®à ¯¥à¥¬¥é ¥âáï ¢ ¯®§¨æ¨î á ¯¥à¢ë¬ ­¥-¯à®¡¥«ì­ë¬ то при первом нажатии курсор перемещается в позицию с первым не-пробельным
ᨬ¢®«®¬, ¯à¨ ¯®¢â®à­®¬ ­ ¦ â¨¨ - ¯¥à¥¬¥é ¥âáï ¢ ¯¥à¢ãî ¯®§¨æ¨î символом, при повторном нажатии - перемещается в первую позицию
FN v.1.12 02.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FN v.1.12 02.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <EFBFBD>¥ «¨§®¢ ­ § ¯ã᪠BAT-ä ©«®¢, ª ª ¨§ ¯ ­¥«¨, â ª ¨ ¨§ ª®¬ ­¤­®© áâப¨ á + Реализован запуск BAT-файлов, как из панели, так и из командной строки с
¯¥à¥¤ ç¥© ¯ à ¬¥â஢. передачей параметров.
FN v.1.11 27.03.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FN v.1.11 27.03.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ˆá¯à ¢«¥­® ®¯à¥¤¥«¥­¨¥ ª â «®£  ¢ ª®â®à®¬ à á¯®« £ îâáï ä ©«ë FlexNavigator- . * Исправлено определение каталога в котором располагаются файлы FlexNavigator-а.
FV v.1.03 10.02.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) FV v.1.03 10.02.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ª®¤¨à®¢ª¨ ⥪áâ  WIN/DOS/KOI + Добавлено переключение кодировки текста WIN/DOS/KOI

View File

@ -1,19 +1,19 @@
Flex navigator TODO: Flex navigator TODO:
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨  ¢â®¯®ª § ¨«¨ ¯® ENTER ¯à¨ ¯¥à¥¬¥é¥­¨¨ ¯® ¤¥à¥¢ã ª â «®£®¢ [] добавить в настройки автопоказ или по ENTER при перемещении по дереву каталогов
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨ ¢ë¡®à ¬¥­ïâì «¨  ªâ¨¢­ãî ¯ ­¥«ì ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥  ªâ¨¢­®© ¯ ­¥«¨ [] добавить в настройки выбор менять ли активную панель при смене диска на не активной панели
[] ¯à¨ ¢ë¢®¤¥ ¤¥à¥¢  ª â «®£®¢ ᤥ« âì áªà®«« ¢«¥¢®/¢¯à ¢® ¥á«¨ ¤¥à¥¢® ­¥ ¢«¥§ ¥â ¯® £®à¨§®­â «¨ [] при выводе дерева каталогов сделать скролл влево/вправо если дерево не влезает по горизонтали
[] ¯® ª­®¯ª¥ F6 ⮫쪮 ¯¥à¥¨¬¥­®¢ ­¨¥,   ¤®«¦­® ¡ëâì ¯¥à¥¨¬¥­®¢ ­¨¥/¯¥à¥¬¥é¥­¨¥ ä ©«  ¥á«¨ ­  ¯ ­¥«ïå à §­ë¥ ¯ã⨠[] по кнопке F6 только переименование, а должно быть переименование/перемещение файла если на панелях разные пути
[] ¯¥à¥¤¥« âì § å®à¤ª®¦¥­­ë¥ ª®®à¤¨­ âë, ¯¥à¥¤¥« âì ­  ¯à¨¢ï§ªã ª ª®®à¤¨­ â ¬ ®ª­  [] переделать захордкоженные координаты, переделать на привязку к координатам окна
[] à §®¡à âìáï ª ª à ¡®â ¥â áâப  ¢¢®¤  ¯à¨ ¯®¨áª¥ ä ©«  ¯® ¨¬¥­¨ [] разобраться как работает строка ввода при поиске файла по имени
[] ¯« £¨­ । ªâ¨à®¢ ­¨ï èà¨äâ  [] плагин редактирования шрифта
[] ¯« £¨­ ¤«ï á®§¤ ­¨ï ä®à¬ ®ª®­ [] плагин для создания форм окон
[] § £à㧪  FLX ¯« £¨­  ¯® ¨¬¥­¨ ¡¥§ § ¯ã᪠ [] загрузка FLX плагина по имени без запуска
[?] ¢ë§®¢ ¨ ¢§ ¨¬®¤¥©á⢨¥ ¯« £¨­  á ¯« £¨­®¬ [?] вызов и взаимодействие плагина с плагином
[x] ¢¢®¤ ¢ ª®¬ ­¤­ãî áâப㠨 ­ ¦ â¨¥ ALT+F1/F2 (¢ë¡®à ¤à ©¢ ) ¯®¤¢¨á ¥â [x] ввод в командную строку и нажатие ALT+F1/F2 (выбор драйва) подвисает
[x] á®àâ¨à®¢é¨ª á®àâ¨àã¥â "..",   ­¥ ¤®«¦¥­ [x] сортировщик сортирует "..", а не должен
[x] ¢ìî¢¥à ¯à¨ ¯®«ã祭¨¨ ¨¬¥­¨ ä ©«  ¤¥« ¥â ¥£® ª®­¢¥àá¨î ¨ ¯à¨ ­ «¨ç¨¨ àãá᪨å ᨬ¢®«®¢ ¯®àâ¨â ¨¬ï ¨ "File not found" [x] вьювер при получении имени файла делает его конверсию и при наличии русских символов портит имя и "File not found"
[x] ¢ Disk Info ®ª­¥ ¯®ª §ë¢ ¥â ¨¬ï ¤¨áª  ¨¬ï ä ©«  (npl.exe) [x] в Disk Info окне показывает имя диска имя файла (npl.exe)
[x] ¯®áâà®¨â¥«ì ¤¥à¥¢  ª â «®£®¢ ­¥ à ¡®â ¥â [x] построитель дерева каталогов не работает

BIN
fn/fn.exe

Binary file not shown.

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 28.05.2025 savelij ; LAST UPDATE: 24.06.2025 savelij
DOShistory_Size EQU 0x200 ; à §¬¥à ¡ãä¥à  DOS ¨áâ®à¨¨ DOShistory_Size EQU 0x200 ; à §¬¥à ¡ãä¥à  DOS ¨áâ®à¨¨
@ -384,3 +384,5 @@ PLUGS_ENABLE EQU 0
TREE_REZID EQU 0 TREE_REZID EQU 0
MARK_DIR EQU 0 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢ MARK_DIR EQU 0 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢
TREE_DIR_ENTER EQU 0 ; ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¤¥à¥¢¥ ¯® ENTER TREE_DIR_ENTER EQU 0 ; ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¤¥à¥¢¥ ¯® ENTER
CORR_FILENAME EQU 1 ; ¯à¥®¡à §®¢ ­¨¥ ᨬ¢®«®¢ ¨¬¥­¨ ä ©« 

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 30.05.2025 savelij ; LAST UPDATE: 05.06.2025 savelij
include macros.a80 include macros.a80
@ -21,18 +21,7 @@
SETVAR CLOCK_BMP, CLOCK_BMP_END - Clock_BMP SETVAR CLOCK_BMP, CLOCK_BMP_END - Clock_BMP
SETVAR MOUSE_BMP, MOUSE_BMP_END - Mouse_BMP SETVAR MOUSE_BMP, MOUSE_BMP_END - Mouse_BMP
org 0x80EA HDR_EXE 0x8100,1,EXEend-EntryExec,EntryExec,EntryExec,0x80FF,0
EXEhead: db "EXE"
db 1 ; +3
dw EntryExec-EXEhead
dw 0x0000 ; +4
dw EXEend-EntryExec ; +8
dw 0,0 ; +10
dw 0 ; +14
dw EntryExec ; +16
dw EntryExec
dw 0x80FF
EntryExec: DI EntryExec: DI
LD A,(IX-0x03) ; file handle LD A,(IX-0x03) ; file handle

View File

@ -1,7 +1,7 @@
; LAST UPDATE: 28.05.2025 savelij ; LAST UPDATE: 24.06.2025 savelij
FLEX_VERS FLEX_VERS
.NAVIGATOR EQU "1.14" .NAVIGATOR EQU "1.15"
.EDITOR EQU "1.08" .EDITOR EQU "1.08"
.VIEWER EQU "1.05" .VIEWER EQU "1.05"

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 26.05.2025 savelij ; LAST UPDATE: 03.06.2025 savelij
;[]=======================================================================[] ;[]=======================================================================[]
; FLEX NAVIGATOR ; ; FLEX NAVIGATOR ;
@ -561,10 +561,10 @@ END_BLOCK_4:
DEPHASE ; 0xC000 DEPHASE ; 0xC000
; ç¨áâ® ¤«ï ®â« ¤ª¨ ; ç¨áâ® ¤«ï ®â« ¤ª¨
BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 ; ®á­®¢­®© ª®¤
BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १¨¤¥­â 2
BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १¨¤¥­â 3
EDITOR_SIZE EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR EDITOR_SIZE EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR ; । ªâ®à
VIEWER_SIZE EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER VIEWER_SIZE EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER ; ¢ìà
SORT_SIZE EQU END_SORT - START_SORT SORT_SIZE EQU END_SORT - START_SORT ; á®àâ¨à®¢é¨ª
TREE_SIZE EQU END_TREE - START_TREE TREE_SIZE EQU END_TREE - START_TREE ; à ¡®â  á ¤¥à¥¢®¬

View File

@ -824,7 +824,9 @@ NewFilter: CALL ResInvert
LD A,(FiltLen) LD A,(FiltLen)
LD B,A LD B,A
.L2 LD A,(HL) .L2 LD A,(HL)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
LD (DE),A LD (DE),A
INC HL INC HL
INC DE INC DE

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 28.05.2025 savelij ; LAST UPDATE: 24.06.2025 savelij
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
@ -188,7 +188,8 @@ InsF1 BIT DIR.B_Dir,B ;
BIT SORTFLAG.B_EXEC,(IY + PANEL.SORTFLAG) BIT SORTFLAG.B_EXEC,(IY + PANEL.SORTFLAG)
CALL NZ,TestExe CALL NZ,TestExe
JR C,InsFext JR C,InsFext
LD B,FileHDR.Name_Size IF CORR_FILENAME
LD B,DIR.Name_Size
.L1 LD A,(HL) .L1 LD A,(HL)
CALL CorrBigChar CALL CorrBigChar
LD (DE),A LD (DE),A
@ -198,7 +199,7 @@ InsF1 BIT DIR.B_Dir,B ;
LD A,0x01 LD A,0x01
LD (DE),A LD (DE),A
INC DE INC DE
LD B,FileHDR.Ext_Size LD B,DIR.Ext_Size
.L2 LD A,(HL) .L2 LD A,(HL)
CALL CorrBigChar CALL CorrBigChar
LD (DE),A LD (DE),A
@ -206,6 +207,7 @@ InsF1 BIT DIR.B_Dir,B ;
INC DE INC DE
DJNZ .L2 DJNZ .L2
JR InsF3 JR InsF3
ENDIF ; CORR_FILENAME
; íâ® ¤¨à  ; íâ® ¤¨à 
InsF2 LD BC,DIR.Name_Size InsF2 LD BC,DIR.Name_Size
@ -328,22 +330,30 @@ TestExeC POP HL
SCF SCF
RET RET
IF CORR_FILENAME
; <20>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¬ «¥­ìª®© ¡ãª¢¥ ; <20>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¬ «¥­ìª®© ¡ãª¢¥
CorrBigChar CP 'A' CorrBigChar: CP 'A'
RET C RET C
CP 'Z' + 1 CP 'Z' + 1
JR NC,CorrCh1 JR NC,.CheckRUS
SET 5,A .Dec: ADD A,0x20
RET RET
CorrCh1 CP 0x80 .CheckRUS: CP '€'
RET C RET C
CP 0xA0 CP '<27>'+1
RET NC JR C,.Dec
ADD A,0x20
CP 0xB0 .BGUPPER: CP '<27>'
RET C RET C
ADD A,0x30 CP 'Ÿ' + 1
JR NC,.HGUPPER
ADD A,0x50
RET
.HGUPPER: CP 'ð' ; àãááª ï ¡ãª¢  ñ, ª®¤ #F1
RET NZ
INC A
RET RET
; <20>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¡®«ì让 ¡ãª¢¥ ; <20>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¡®«ì让 ¡ãª¢¥
@ -365,6 +375,7 @@ CorrSmallChar CP 'a'
RET C RET C
SUB 0x50 SUB 0x50
RET RET
ENDIF ; CORR_FILENAME
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
SortDIR SortDIR

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 27.04.2025 savelij ; LAST UPDATE: 24.06.2025 savelij
;[]===========================================================[] ;[]===========================================================[]
CursUp LD A,(IY + PANEL.EFL) CursUp LD A,(IY + PANEL.EFL)
@ -1367,9 +1367,12 @@ RunEXEfile: LD IX,fn_ext
POP DE POP DE
LD L,E LD L,E
LD H,D LD H,D
LD A,'.'
.L2 INC HL .L2 INC HL
CP (HL) LD A,(HL)
AND A
SCF
RET Z
CP '.'
JR NZ,.L2 JR NZ,.L2
INC HL INC HL
LD A,(HL) LD A,(HL)
@ -1845,7 +1848,9 @@ ViewFileSH: BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD DE,PrevFile LD DE,PrevFile
LD B,A LD B,A
ViewSH1: LD A,(HL) ViewSH1: LD A,(HL)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
LD (HL),A LD (HL),A
LD (DE),A LD (DE),A
INC HL INC HL
@ -1975,7 +1980,9 @@ EditFileSH: BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD DE,PrevFile LD DE,PrevFile
LD B,A LD B,A
EditSH1: LD A,(HL) EditSH1: LD A,(HL)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
LD (HL),A LD (HL),A
LD (DE),A LD (DE),A
INC HL INC HL

View File

@ -997,7 +997,9 @@ ReName0 LD HL,CurName
LD A,(NameLen) LD A,(NameLen)
LD B,A LD B,A
.L1 LD A,(HL) .L1 LD A,(HL)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
LD (DE),A LD (DE),A
INC HL INC HL
INC DE INC DE
@ -1063,7 +1065,9 @@ ReNameDIR LD HL,Name
LD A,(NameLen) LD A,(NameLen)
LD B,A LD B,A
.L1 LD A,(HL) .L1 LD A,(HL)
IF CORR_FILENAME
CALL CorrSmallChar CALL CorrSmallChar
ENDIF
LD (HL),A LD (HL),A
LD (DE),A LD (DE),A
INC HL INC HL
@ -1399,7 +1403,9 @@ MkDIR0 LD HL,NewDIR
LD A,(MDIRLen) LD A,(MDIRLen)
LD B,A LD B,A
.L1 LD A,(HL) .L1 LD A,(HL)
IF CORR_FILENAME
CALL CorrSmallChar CALL CorrSmallChar
ENDIF
LD (HL),A LD (HL),A
LD (DE),A LD (DE),A
INC HL INC HL

View File

@ -71,8 +71,10 @@ QSearchR LD A,(IY+PANEL.EFL)
JR NC,.L3 JR NC,.L3
INC H INC H
.L3 LD A,(HL) .L3 LD A,(HL)
IF CORR_FILENAME
BIT 0,C BIT 0,C
CALL NZ,CorrSmallChar CALL NZ,CorrSmallChar
ENDIF
LD E,A LD E,A
.Search1 LD A,(IX+0x00) .Search1 LD A,(IX+0x00)
INC IX INC IX
@ -244,10 +246,14 @@ SearchFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD BC,0x0018 LD BC,0x0018
.SearchFlp LD DE,SearchN .SearchFlp LD DE,SearchN
LD A,(DE) LD A,(DE)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
CP (HL) CP (HL)
JR Z,.SrchF1 JR Z,.SrchF1
IF CORR_FILENAME
CALL CorrSmallChar CALL CorrSmallChar
ENDIF
CP (HL) CP (HL)
JR NZ,.SearchFnxt JR NZ,.SearchFnxt
.SrchF1 PUSH HL .SrchF1 PUSH HL
@ -266,10 +272,14 @@ SearchFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
OR A OR A
JR Z,.SearchFnx0 JR Z,.SearchFnx0
LD A,(DE) LD A,(DE)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
CP (HL) CP (HL)
JR Z,.SrchF2 JR Z,.SrchF2
IF CORR_FILENAME
CALL CorrSmallChar CALL CorrSmallChar
ENDIF
CP (HL) CP (HL)
JR Z,.SrchF2 JR Z,.SrchF2
.SearchFnx0 POP HL .SearchFnx0 POP HL
@ -309,10 +319,14 @@ SearchFileT PUSH IX
LD BC,0x000D LD BC,0x000D
.SearchTlp LD DE,SearchN .SearchTlp LD DE,SearchN
LD A,(DE) LD A,(DE)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
CP (HL) CP (HL)
JR Z,.SrchT1 JR Z,.SrchT1
IF CORR_FILENAME
CALL CorrSmallChar CALL CorrSmallChar
ENDIF
CP (HL) CP (HL)
JR NZ,.SearchTnxt JR NZ,.SearchTnxt
.SrchT1 PUSH HL .SrchT1 PUSH HL
@ -325,10 +339,14 @@ SearchFileT PUSH IX
OR A OR A
JR Z,.SearchTnx0 JR Z,.SearchTnx0
LD A,(DE) LD A,(DE)
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
CP (HL) CP (HL)
JR Z,.SrchT2 JR Z,.SrchT2
IF CORR_FILENAME
CALL CorrSmallChar CALL CorrSmallChar
ENDIF
CP (HL) CP (HL)
JR Z,.SrchT2 JR Z,.SrchT2
.SearchTnx0 POP HL .SearchTnx0 POP HL

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 12.05.2025 savelij ; LAST UPDATE: 02.06.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
MarkFileR LD A,(IY+PANEL.EFL) MarkFileR LD A,(IY+PANEL.EFL)
@ -265,9 +265,12 @@ SelectGroup: LD (SelMode),A
RET Z RET Z
LD B,A LD B,A
LD HL,CrSMask LD HL,CrSMask
CorMask LD A,(HL) CorMask
IF CORR_FILENAME
LD A,(HL)
CALL CorrBigChar CALL CorrBigChar
LD (HL),A LD (HL),A
ENDIF
INC HL INC HL
DJNZ CorMask DJNZ CorMask
LD HL,CrSMask LD HL,CrSMask
@ -416,7 +419,9 @@ SMaskLp LD A,(HL)
RET Z RET Z
CP '|' CP '|'
RET Z RET Z
IF CORR_FILENAME
CALL CorrBigChar CALL CorrBigChar
ENDIF
LD (DE),A LD (DE),A
INC HL INC HL
INC DE INC DE
@ -716,19 +721,19 @@ COUNTING_DIR PUSH IX
XOR A XOR A
LD (DE),A LD (DE),A
CALL .SET_PATH ; ãáâ ­®¢ª  ⥪ã饣® ¯ã⨠CALL .SET_PATH ; ãáâ ­®¢ª  ⥪ã饣® ¯ãâ¨
INC IXH INC IXH ; á«¥¤ãî騩 ã஢¥­ì ¤¨àë
.CONTINUE CALL .ADD_2DOT .CONTINUE CALL .ADD_2DOT
CALL .COUNT_FILES CALL .COUNT_FILES
LD A,IXL LD A,IXL
AND A ; え琺 メ碎 AND A ; §¤¥áì ¤¨àë ¥áâì?
JR Z,.PREV_DIR ; ¤¨àë ­¥ ­ ©¤¥­ë JR Z,.PREV_DIR ; ¤¨àë ­¥ ­ ©¤¥­ë
CALL .SET_PATH ; ¢å®¤ ¢ ¤¨àã ¨§ ᯨ᪠ CALL .SET_PATH ; ¢å®¤ ¢ ¤¨àã ¨§ ᯨ᪠
INC IXH INC IXH ; á«¥¤ãî騩 ã஢¥­ì ¤¨àë
JR .CONTINUE JR .CONTINUE
; ¢ë室 ¢ ¯à¥¤ë¤ãéãî ¤¨àã ; ¢ë室 ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.PREV_DIR CALL .OUT_DIR .PREV_DIR CALL .OUT_DIR
LD A,IXH LD A,IXH ; ã஢¥­ì ¤¨àë?
AND A AND A
JR Z,.END_COUNT JR Z,.END_COUNT
CALL .GET_NAME CALL .GET_NAME
@ -740,7 +745,7 @@ COUNTING_DIR PUSH IX
CP '.' CP '.'
JR Z,.PREV_DIR JR Z,.PREV_DIR
CALL .SET_PATH CALL .SET_PATH
INC IXH INC IXH ; á«¥¤ãî騩 ã஢¥­ì ¤¨àë
JR .CONTINUE JR .CONTINUE
; ¢®§¢à â ⥪ã饣® ¯ã⨠; ¢®§¢à â ⥪ã饣® ¯ãâ¨
@ -761,7 +766,7 @@ COUNTING_DIR PUSH IX
LD (.CURR_DIRNAME),HL LD (.CURR_DIRNAME),HL
RET RET
.OUT_DIR DEC IXH .OUT_DIR DEC IXH ; ¯à¥¤ë¤ã騩 ã஢¥­ì ¤¨àë
LD HL,.RET_DIR LD HL,.RET_DIR
JR .SP1 JR .SP1