CDplayer.flx 1.1:

- плагин доделан, описание/history в cdplayer.txt рядом с плагином.
FE 1.09
- исправлено: при выходе из редактора с несохраненным файлом и запросе на сохранение
  клавиша Enter теперь работает как подтверждение сохранения.
FN 1.16
- встроенный editor переехал в плагин откуда и запускается по F4, из FN удален.
- встроенный viewer переехал в плагин откуда и запускается по F3, из FN удален.
- встроенный help переехал в плагин откуда и запускается при нажатии F1, из FN удален.
- загрузка плагина отделена от запуска, теперь можно запускать плагины не
  только из панели FN.
- добавлен макрос формирования заголовка для плагинов.
- добавлена поддержка работы плагинов в адреса 0x4000-0x7FFF (окно 1) в дополнение
  к старым 0xC000-0xBFFF (окно 3), пока используется в плагине cdplayer.
- в окнах с ошибкой переделан на 2 типа окон вместо многих под каждую ошибку.
- исправлена потеря цвета при печати текста по указанному адресу.
- текстовым файлам вернул кодировку CP866, readme.md оставлен в кодировке UTF8.
This commit is contained in:
savelij13 2025-07-25 16:01:19 +03:00
parent 96a2777fa4
commit 881739653b
67 changed files with 4946 additions and 4150 deletions

View File

@ -24,7 +24,9 @@ rem cd ..
copy /Y /B tmp\fn.exe fn\fn.exe copy /Y /B tmp\fn.exe fn\fn.exe
copy /Y /B plugins\*.flx fn\flx copy /Y /B plugins\*.flx fn\flx
copy /Y /B docs\hist866.txt fn\history.txt copy /Y /B plugins\*.txt fn\flx
copy /Y /B docs\history.txt fn\history.txt
rem copy /Y /B docs\*.ext fn
echo ######################## echo ########################
echo # -= End Compile Ok =- # echo # -= End Compile Ok =- #

17
docs/FN.EXT Normal file
View File

@ -0,0 +1,17 @@
bat: C:\system.exe /c !\!.!
ima: C:\DSS\mountima.exe /m !\!.!
trd: C:\ZX\spectrum.exe sp.zx !\!.!
scl: C:\ZX\spectrum.exe sp.zx !\!.!
zx : C:\ZX\spectrum.exe !\!.!
fli: C:\BIN\flicplay.exe !\!.!
flc: C:\BIN\flicplay.exe !\!.!
bmp: C:\BIN\gfxview.exe !\!.!
pcx: C:\BIN\gfxview.exe !\!.!
scr: C:\BIN\zxview.exe !\!.!
ico: C:\BIN\gfxview.exe !\!.!
img: C:\BIN\zxview.exe !\!.!
gff: C:\BIN\gffview.exe !\!.!
wav: C:\BIN\wavplay.exe !\!.!
pt3: C:\BIN\pt3play.exe !\!.!
mod: C:\BIN\proplay.exe !\!.!
sgi: C:\BIN\sgiver.exe !\!.!

3
docs/FNEDIT.EXT Normal file
View File

@ -0,0 +1,3 @@
trd: C:\ZX\spectrum.exe sc256.zx !\!.!
scl: C:\ZX\spectrum.exe sc256.zx !\!.!

13
docs/FNVIEW.EXT Normal file
View File

@ -0,0 +1,13 @@
trd: C:\ZX\spectrum.exe p128.zx !\!.!
scl: C:\ZX\spectrum.exe p128.zx !\!.!
fli: C:\BIN\flicplay.exe !\!.!
flc: C:\BIN\flicplay.exe !\!.!
bmp: C:\BIN\gfxview.exe !\!.!
pcx: C:\BIN\gfxview.exe !\!.!
scr: C:\BIN\gfxview.exe !\!.!
ico: C:\BIN\gfxview.exe !\!.!
img: C:\BIN\zxview.exe !\!.!
gff: C:\BIN\gffview.exe !\!.!
wav: C:\BIN\wavplay.exe !\!.!
pt3: C:\BIN\pt3play.exe !\!.!
mod: C:\BIN\proplay.exe !\!.!

View File

@ -1,25 +0,0 @@
struct FlxPluginHeader {
char Id[8];
unsigned short LoadOffset;
unsigned short EntryOffset;
unsigned char PluginMode;
unsigned char Reserved[3];
};
Header of Plugin for Flex Navigator v1.xx:
8 bytes Id - identifier of plugin, you should begin from three symbols - FLX
2 bytes LoadOffset - displacement in page of memory for load (0 - 0x3FFF)
2 bytes EntryOffset - displacement in page of memory for executing (0 - 0x3FFF)
1 byte PluginMode - modes of work:
0 - repairing Flex Navigator screen after finish
1 - without repairing Flex Navigator screen after finish
3 bytes Reserved
length = 16 bytes
ATTANTION!!!
1. Size of plugin code (without header) must be less 4000 bytes.
2. ORG = 0xC000
3. When control will return to Flex Navigator, Carry Flag are specify error status:
CF = 1 error during initialization
CF = 0 no error

View File

@ -1,29 +0,0 @@
struct FlxPluginHeader {
char Id[8];
unsigned short LoadOffset;
unsigned short EntryOffset;
unsigned char PluginMode;
unsigned char Reserved[3];
};
Заголовок плагина для Flex Navigator v1.xx:
8 байт Id - индентификатор плагина, первые 3 символа всегда должны быть FLX
2 байта LoadOffset - смещение в странице памяти для загрузки (0 - 0x3FFF)
2 байта EntryOffset - смещение в странице памяти для запуска (0 - 0x3FFF)
1 байт PluginMode - режим работы:
0 - работает с восстановлением рабочей области Flex Navigator
(т.е. после работы плагина не нужно восстанавливать экран)
1 - работает без восстановления рабочей области Flex Navigator
(т.е. после работы плагина нужно восстанавливать экран)
3 байта Reserved - зарезервировано
длина = 16 байт
!!! ВНИМАНИЕ
1. все плагины для Flex Navigator v1.xx не должны превышать в размере основного кода
(т.е. без заголовка) 0x4000 байта.
2. все плагины для Flex Navigator v1.xx должны быть откомпилированы с адреса 0xC000
(т.е. org = 0xC000).
3. возвращаемое значение:
CF = 1 ошибка на стадии инитиализации (после неё ничего не восстанавливается)
CF = 0 нет ошибки

35
docs/flx_header.eng Normal file
View File

@ -0,0 +1,35 @@
Version 2. The minimum version of Flex Navigator is 1.16.
struct FlxPluginHeader {
char Id[8];
unsigned short LoadOffset;
unsigned short EntryOffset;
unsigned char PluginMode;
unsigned char Reserved[3];
};
Header of Plugin for Flex Navigator v1.xx:
8 bytes Id - identifier of plugin, you should begin from three symbols - FLX
2 bytes LoadOffset - displacement in page of memory for load (0 - 0x3FFF)
(according to the 0x3FFF mask, the 2 highest ones are not counted)
2 bytes EntryOffset - displacement in page of memory for executing (0 - 0x3FFF)
(according to the 0x3FFF mask, the 2 highest ones are not counted)
1 byte PluginMode - modes of work:
0 - repairing Flex Navigator screen after finish
1 - without repairing Flex Navigator screen after finish
bit 1 = 0 is the compilation and operation address in addresses 0xC000-0xFFFF
bit 1 = 1 - compilation and operation address in addresses 0x4000-0x7FFF
3 bytes Reserved
length = 16 bytes
ATTENTION!!!
1. Size of plugin code (without header) must be less 4000 bytes.
2. all plug-ins for Flex Navigator v1.xx must be compiled depending
on bit 1 in PluginMode from address 0x4000 or 0xC000 (i.e. org = 0x4000 or org= 0xC000).
3. When control will return to Flex Navigator, Carry Flag are specify error status:
CF = 1 an error at the initialization stage (nothing is restored after it)
CF = 0 no error
History:
14.07.2025: added the ability for plugins to work in window 1 (addresses 0x4000-0x7FFF).

38
docs/flx_header.rus Normal file
View File

@ -0,0 +1,38 @@
‚¥àá¨ï 2. Œ¨­¨¬ «ì­ ï ¢¥àá¨ï Flex Navigator 1.16.
struct FlxPluginHeader {
char Id[8];
unsigned short LoadOffset;
unsigned short EntryOffset;
unsigned char PluginMode;
unsigned char Reserved[3];
};
‡ £®«®¢®ª ¯« £¨­  ¤«ï Flex Navigator v1.xx:
8 ¡ ©â Id - ¨­¤¥­â¨ä¨ª â®à ¯« £¨­ , ¯¥à¢ë¥ 3 ᨬ¢®«  ¢á¥£¤  ¤®«¦­ë ¡ëâì FLX
2 ¡ ©â  LoadOffset - ᬥ饭¨¥ ¢ áâà ­¨æ¥ ¯ ¬ï⨠¤«ï § £à㧪¨ (0 - 0x3FFF)
(¯® ¬ áª¥ 0x3FFF, 2 áâ àè¨å ­¥ ãç¨â뢠îâáï)
2 ¡ ©â  EntryOffset - ᬥ饭¨¥ ¢ áâà ­¨æ¥ ¯ ¬ï⨠¤«ï § ¯ã᪠ (0 - 0x3FFF)
(¯® ¬ áª¥ 0x3FFF, 2 áâ àè¨å ­¥ ãç¨â뢠îâáï)
1 ¡ ©â PluginMode - ०¨¬ à ¡®âë:
bit 0 = 0 - à ¡®â ¥â á ¢®ááâ ­®¢«¥­¨¥¬ à ¡®ç¥© ®¡« á⨠Flex Navigator
(â.¥. ¯®á«¥ à ¡®âë ¯« £¨­  ­¥ ­ã¦­® ¢®ááâ ­ ¢«¨¢ âì íªà ­)
bit 0 = 1 - à ¡®â ¥â ¡¥§ ¢®ááâ ­®¢«¥­¨ï à ¡®ç¥© ®¡« á⨠Flex Navigator
(â.¥. ¯®á«¥ à ¡®âë ¯« £¨­  ­ã¦­® ¢®ááâ ­ ¢«¨¢ âì íªà ­)
bit 1 = 0 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0xC000-0xFFFF
bit 1 = 1 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0x4000-0x7FFF
3 ¡ ©â  Reserved - § à¥§¥à¢¨à®¢ ­®
¤«¨­  = 16 ¡ ©â
!!! <>ˆŒ€<C592>ˆ
1. ¢á¥ ¯« £¨­ë ¤«ï Flex Navigator v1.xx ­¥ ¤®«¦­ë ¯à¥¢ëè âì ¢ à §¬¥à¥ ®á­®¢­®£® ª®¤ 
(â.¥. ¡¥§ § £®«®¢ª ) 0x4000 ¡ ©â .
2. ¢á¥ ¯« £¨­ë ¤«ï Flex Navigator v1.xx ¤®«¦­ë ¡ëâì ®âª®¬¯¨«¨à®¢ ­ë ¢ § ¢¨á¨¬®áâ¨
®â ¡¨â  1 ¢ PluginMode á  ¤à¥á  0x4000 ¨«¨ 0xC000 (â.¥. org = 0x4000 ¨«¨ org = 0xC000).
3. ¢®§¢à é ¥¬®¥ §­ ç¥­¨¥:
CF = 1 ®è¨¡ª  ­  áâ ¤¨¨ ¨­¨â¨ «¨§ æ¨¨ (¯®á«¥ ­¥ñ ­¨ç¥£® ­¥ ¢®ááâ ­ ¢«¨¢ ¥âáï)
CF = 0 ­¥â ®è¨¡ª¨
History:
14.07.2025: ¤®¡ ¢«¥­  ¢®§¬®¦­®áâì à ¡®âë ¯« £¨­®¢ ¢ ®ª­¥ 1 ( ¤à¥á  0x4000-0x7FFF).

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

@ -1,157 +0,0 @@
FN - FlexNavigator
FV - FileViewer
FE - FileEditor
25.06.2025
FN 1.15
- £®¤ ª®¯¨à ©â  ¢® ¢áâ஥­­®¬ help ¢áâ ¢«ï¥âáï ¯à¨ á¡®àª¥.
- ¢ ®ª­¥ "About" ⥯¥àì ¯®ª §ë¢ ¥â ¤ âã ᡮન.
- ¯®¯à ¢«¥­ ¢áâ஥­­ë© help.
- ¤®¡ ¢«¥­  ª®¯¨ï í⮣® å¨áâ®à¨ ¢ ª®¤¨à®¢ª¥ 866 á ª®¯¨à®¢ ­¨¥¬ ¢ ¯ ¯ªã fn.
- ¤®ª¨ ¯¥à¥¢¥¤¥­ë ­  UTF8 ª®¤¨à®¢ªã.
- ¯®¯à ¢«¥­  CorrBigChar.
- ­¥¡®«ì訥 ¯¥à¥¤¥«ª¨ ¢ bat ä ©« å.
- ¨á¯à ¢«¥­ "attribut" ­  "attribute".
- ¨á¯à ¢«¥­ ¢ 2å ¬¥áâ å "claster" ­  "cluster".
28.05.2025
FE v1.08
- ã¡à ­® "¨áª ¦¥­¨¥" ¨¬¥­¨ ä ©«  ¯à¨ § ¯ã᪥.
FV v1.05
- ã¡à ­® "¨áª ¦¥­¨¥" ¨¬¥­¨ ä ©«  ¯à¨ § ¯ã᪥.
FN v1.14
- ¨á¯à ¢«¥­® § ¢¨á ­¨¥ ¢ ª®¬ ­¤­®© áâப¥ ¯à¨ ­ ¦ â¨¨ ALT+F1/F2.
- ᤥ« ­ ¯à®¯ã᪠¤«ï ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ".." ¤«ï á®àâ¨à®¢é¨ª  ¤«ï ¯à ¢¨«ì­®© á®àâ¨à®¢ª¨.
- ¯®¯à ¢«¥­ë ­ §¢ ­¨ï ⨯®¢ á®àâ¨à®¢ª¨.
- ᤥ« ­ ¨§¬¥à¨â¥«ì à §¬¥à  ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å ¤«ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨ï¬¨ (¯®ª  á¯àïâ ­).
- ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¨§ ¤¥à¥¢  ᤥ« ­ ¯® ENTER ¢¬¥áâ®  ¢â®¯®ª §  (¯®ª  á¯àïâ ­ ).
- ¯®¯à ¢«¥­  £¥­¥à æ¨ï ¤¥à¥¢  ä ©«®¢.
-------------------------------------------------------------------------------
25/06/24
„®¡ ¢«¥­® ®â®¡à ¦¥­¨¥ á®®¡é¥­¨ï ® § é¨â¥ ®â § ¯¨á¨.
13/05/24
ˆá¯à ¢«¥­  ®è¨¡ª  ¨­¨æ¨ «¨§ æ¨¨ áâà ­¨æë help.
„®¡ ¢«¥­  ¯®¤¤¥à¦ª  ¡®«ìè¨å ä ©«®¢ ¤«ï FAT32
11/05/24
’¥¯¥àì ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ® ⮬, ç⮠᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨. ’¥ ä ©«ë, ª®â®àë¥ "­¥ ¢«¥§«¨" - ­¥ ®â®¡à ¦ îâáï.
12/12/23
<EFBFBD>®¤¤¥à¦ª  Current Dir, ¯à¨ áâ à⥠®â®¡à ¦ ¥âáï ⥪ãé ï ¤¨à¥ªâ®à¨ï ¤¨áª .
07/09/23
Œ­®¦¥á⢥­­ë¥ ¬¥«ª¨¥ ¯à ¢ª¨.
01/08/23
<EFBFBD>®¢¨á ¥â FN ¯®á«¥ ¯¥à¥§ £à㧪¨ ¡®«ì让  «ìâ¥àë (titd, ldconf).
“¡à ­  ¯à®¢¥àª  ­  Sp97.
‚¥àá¨ï ­®à¬ «ì­® ¯à®¯¨á ­ , «¨è­¨¥ ª®¯¨à ©âë ¯à¨ § ¯ã᪥ ã¡à ­ë.
29/07/23
’ ¡«¨æ  ®è¨¡®ª ®â § ¢¥à訢襣®áï ¯à¨«®¦¥­¨ï - 32 § ¯¨á¨.
DSS à ­ìè¥ ­¥ ¢®§¢à é « ä« £ CF ¯à¨ ¢ë室¥ á ®è¨¡ª®©, ­® FN ¢á¥£¤  ¯à®¢¥àï« ¯®á«¥ ¢®§¢à â  ¨§ ¯à¨«®¦¥­¨ï ä« £ CF.
DSS ⥯¥àì ¢¥à­ã«, FN ¯®«¥§ ®è¨¡ªã ¯à®¢¥àïâì,   â ¬ FF,   â ¡«¨æ  ­  32...
<EFBFBD> ©¤¥­® ­  disttest.exe, ®­ ¢ë室¨â § ç¥¬-â® ãáâ ­®¢¨¢ ª®¤ ®è¨¡ª¨ #FF,   â ª®£® ª®¤  ­¥â.
<EFBFBD>㦭® á ­ã«¥¬ ¢ë室¨âì ¡¥§ ®è¨¡®ª.
17/07/23
¡¨®á¥ 2.55 ¯®ï¢¨« áì äã­ªæ¨ï - ¯¥à¥¤ ¢ âì ã¯à ¢«¥­¨¥ ¨§ <20>‡“ ®¡à ¡®â稪㠯à¥à뢠­¨ï ¢ ­ã«¥¢®© ¡ ­ª¥ އ“.
C¤¥« ­  ¯à®¢¥àª  ­  ¢¥àá¨î ¡¨®á .
10/05/22
Viewer:
* <20>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è.
* ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨.
* ƒ¥à®¨ç¥áª¨ áíª®­®¬«¥­® ­¥¬­®£® ⠪⮢ â ¬, £¤¥ ­¨ªâ® ­¥ § ¬¥â¨â))).
+ <20>¥ç âì ¯¥à¥­¥á¥­  ­  ª« ¢¨èã F7, ç⮡ ¢ë£­ âì ¢ á ¨§ §®­ë ª®¬ä®àâ ))).
+ „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨.
? <20>®ç⨠¨á¯à ¢«¥­ Wrap, ®áâ «áï ¡ £ á ¢¥àå­¥© áâப®©. ‹ãçè¥, 祬 ­¨ç¥£®.
Editor:
+ „®¡ ¢«¥­  ª­®¯ª  "F7 Print"
+ „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨ ¢ ०¨¬¥ HEX
* <20>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è
* ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨
-------------------------------------------------------------------------------
FE v.1.06 05.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <20>® ª­®¯ª¥ F9 ¢ë§ë¢ îâáï ­ áâனª¨ । ªâ®à  á ¢®§¬®¦­®áâìî á®åà ­¨âì ­ áâனª¨
¢ ä ©«
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)
+ „®¡ ¢«¥­ ¯ à ¬¥âà ¢ ª®­ä¨£-ä ©«¥ fnedit.ini, ª®â®àë© ¢ª«îç ¥â/®âª«î砥⠤¨ «®£
¯®¤â¢¥à¦¤¥­¨ï § ªàëâ¨ï । ªâ®à 
FE v.1.05 07.06.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ¨á¯à ¢«¥­ £«îª, ª®â®àë© ¯à¨¢®¤¨« ª § ¢¨á ­¨î ¨«¨ á¡à®áã ¯®á«¥ 7-£® ®âªàëâ¨ï
। ªâ®à 
+ „®¡ ¢«¥­®  ¢â®§ ªàë⨥ ᨬ¢®«®¢ ᪮¡®ª ¨ ª ¢ë祪
+ “ । ªâ®à  ¯®ï¢¨«áï ª®­ä¨£-ä ©« fnedit.ini, ç¥à¥§ ª®â®àë© ¬®¦­® ®âª«îç¨âì
­¥ª®â®àë¥ ä¨ç¨
FE v.1.04 18.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­  ª­®¯ª  Ctrl+P ¤«ï ¯¥ç â¨ (§ â¥¬ F9 ¡ã¤¥â ¯¥à¥­ §­ ç¥­  ­  ¤à㣮©
ä㭪樮­ «)
+ „®¡ ¢«¥­ ä㭪樮­ « ®â¬¥­ë ¯® Ctrl+Z (íâ® ­¥ ¯®è £®¢ë© Undo, ­¥ ¯®«­®æ¥­­ë©,
¯à®áâ® á¡à á뢠¥â ¡ãä¥à ⥪ã饩 । ªâ¨à㥬®© áâப¨, ­  ¬®¬¥­â ¯¥à¥å®¤ 
­  íâã áâபã)
FE v.1.03 17.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ë ª­®¯ª¨ ã¯à ¢«¥­¨ï Alt+CursorLeft(Home) ¨ Alt+CursorRight(End)
* ˆá¯à ¢«¥­ ¡ £ ¢ ¯®¤¯à®£à ¬¬¥ THomeString - ­  ¯ãá⮩ áâப¥ ¬®£«  § æ¨ª«¨âìáï
* ˆá¯à ¢«¥­ ¡ £ ¢ TEndString,  ­ «®£¨ç­® - ­  ¯ãá⮩ áâப¥ ¬®£«  § æ¨ª«¨âìáï
* ˆá¯à ¢«¥­  ¯®¤¯à®£à ¬¬  § ¯®«­¥­¨ï ¡ãä¥à  ⥪ã饩 áâப¨ (¯à¨ ­ã«¥¢®© ¤«¨­¥
áâப¨ ®­ ­¥ ®ç¨é «áï)
FN v.1.12.1 13.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ˆá¯à ¢«¥­ ¡ £ ¯à¨  ¢â®¬ â¨ç¥áª®© ᬥ­¥ ¯ ­¥«¨
+ „®¡ ¢«¥­  ­ áâனª  ¢ SetUp ¤«ï ®âª«î祭¨ï  ¢â®¬ â¨ç¥áª®©  ªâ¨¢ æ¨¨ ¯ ­¥«¨ ¯à¨
ᬥ­¥ ¤¨áª 
FE v.1.02 10.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­  £®àïç ï ª­®¯ª  Ctrl+D ¤«ï ¤ã¡«¨à®¢ ­¨ï áâப¨ (à ¡®â ¥â
⮫쪮 ¤«ï áâப ¤® 127 ᨬ¢®«®¢)
+ <20>ਠ¯¥à¥­®á¥ áâப¨ ¢ ­ ç «¥ áâப¨ ¤¥« ¥âáï â ª®© ¦¥ ®âáâ㯠®â ­ ç « , ª ª ¨
­  ¯à¥¤ë¤ã饩 áâப¥
* <20>¥à¥à ¡®â ­ë ¯à®æ¥¤ãàë ¯®§¨æ¨®­¨à®¢ ­¨ï ªãàá®à 
FN v.1.12+ 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <20> ­¥«ì, ¢ ª®â®à®© ¬¥­ï¥âáï ¤¨áª ¯® Alt+F1/F2 áâ ­®¢¨âáï  ªâ¨¢­®©
FE v.1.01 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ ¤¨ «®£ á § ¯à®á®¬ ¯®¤â¢¥à¦¤¥­¨ï ¢ë室  ¨§ । ªâ®à 
+ <20>ਠ¨§¢«¥ç¥­¨¨ áâப¨ ¡ãä¥à áâப¨ ®ç¨é ¥âáï - à ­¥¥ ¬®¦­® ¡ë«® ­ ¡«î¤ âì
­¥ª®â®àë© ¬ãá®à ¢ ª®­æ¥ áâப¨ ¯à¨ ­ ¢¨£ æ¨¨ ¬¥¦¤ã áâப ¬¨
* „®à ¡®â ­  ¯à®æ¥¤ãà  ¯®§¨æ¨®­¨à®¢ ­¨ï ªãàá®à  ¯à¨ ­ ¢¨£ æ¨¨ ­  áâபã
(áâà ­¨æã) ¢ëè¥/­¨¦¥ - ¢ § ¢¨á¨¬®á⨠®â ­ «¨ç¨ï â ¡ã«ïâ®à®¢ ¢ áâப¥, ªãàá®à
¬®£ ®â᪠ª¨¢ âì ­  ­¥áª®«ìª® ¯®§¨æ¨© ¢ áâ®à®­ã
+ „®¡ ¢«¥­  ¢®§¬®¦­®áâì 㤠«¥­¨ï 楫®© áâப¨ ¯® Ctrl+Y
+ „®¡ ¢«¥­  £®àïç ï ª­®¯ª  ¤«ï á®åà ­¥­¨ï Ctrl+S
+ <20>¥ «¨§ æ¨ï ­®¢®£® ०¨¬  à ¡®âë Home - ¥á«¨ ¥áâì â ¡ã«ïâ®àë ¢ ­ ç «¥ áâப¨,
â® ¯à¨ ¯¥à¢®¬ ­ ¦ â¨¨ ªãàá®à ¯¥à¥¬¥é ¥âáï ¢ ¯®§¨æ¨î á ¯¥à¢ë¬ ­¥-¯à®¡¥«ì­ë¬
ᨬ¢®«®¬, ¯à¨ ¯®¢â®à­®¬ ­ ¦ â¨¨ - ¯¥à¥¬¥é ¥âáï ¢ ¯¥à¢ãî ¯®§¨æ¨î
FN v.1.12 02.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <20>¥ «¨§®¢ ­ § ¯ã᪠BAT-ä ©«®¢, ª ª ¨§ ¯ ­¥«¨, â ª ¨ ¨§ ª®¬ ­¤­®© áâப¨ á
¯¥à¥¤ ç¥© ¯ à ¬¥â஢.
FN v.1.11 27.03.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ˆá¯à ¢«¥­® ®¯à¥¤¥«¥­¨¥ ª â «®£  ¢ ª®â®à®¬ à á¯®« £ îâáï ä ©«ë FlexNavigator- .
FV v.1.03 10.02.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ª®¤¨à®¢ª¨ ⥪áâ  WIN/DOS/KOI

View File

@ -3,155 +3,177 @@ FN - FlexNavigator
FV - FileViewer FV - FileViewer
FE - FileEditor FE - FileEditor
25.07.2025
CDplayer.flx 1.1:
- ¯« £¨­ ¤®¤¥« ­, ®¯¨á ­¨¥/history ¢ cdplayer.txt à冷¬ á ¯« £¨­®¬.
FE 1.09
- ¨á¯à ¢«¥­®: ¯à¨ ¢ë室¥ ¨§ । ªâ®à  á ­¥á®åà ­¥­­ë¬ ä ©«®¬ ¨ § ¯à®á¥ ­  á®åà ­¥­¨¥
ª« ¢¨è  Enter ⥯¥àì à ¡®â ¥â ª ª ¯®¤â¢¥à¦¤¥­¨¥ á®åà ­¥­¨ï.
FN 1.16
- ¢áâ஥­­ë© editor ¯¥à¥¥å « ¢ ¯« £¨­ ®âªã¤  ¨ § ¯ã᪠¥âáï ¯® F4, ¨§ FN 㤠«¥­.
- ¢áâ஥­­ë© viewer ¯¥à¥¥å « ¢ ¯« £¨­ ®âªã¤  ¨ § ¯ã᪠¥âáï ¯® F3, ¨§ FN 㤠«¥­.
- ¢áâ஥­­ë© help ¯¥à¥¥å « ¢ ¯« £¨­ ®âªã¤  ¨ § ¯ã᪠¥âáï ¯à¨ ­ ¦ â¨¨ F1, ¨§ FN 㤠«¥­.
- § £à㧪  ¯« £¨­  ®â¤¥«¥­  ®â § ¯ã᪠, ⥯¥àì ¬®¦­® § ¯ã᪠âì ¯« £¨­ë ­¥
⮫쪮 ¨§ ¯ ­¥«¨ FN.
- ¤®¡ ¢«¥­ ¬ ªà®á ä®à¬¨à®¢ ­¨ï § £®«®¢ª  ¤«ï ¯« £¨­®¢.
- ¤®¡ ¢«¥­  ¯®¤¤¥à¦ª  à ¡®âë ¯« £¨­®¢ ¢  ¤à¥á  0x4000-0x7FFF (®ª­® 1) ¢ ¤®¯®«­¥­¨¥
ª áâ àë¬ 0xC000-0xBFFF (®ª­® 3), ¯®ª  ¨á¯®«ì§ã¥âáï ¢ ¯« £¨­¥ cdplayer.
- ¢ ®ª­ å á ®è¨¡ª®© ¯¥à¥¤¥« ­ ­  2 ⨯  ®ª®­ ¢¬¥áâ® ¬­®£¨å ¯®¤ ª ¦¤ãî ®è¨¡ªã.
- ¨á¯à ¢«¥­  ¯®â¥àï æ¢¥â  ¯à¨ ¯¥ç â¨ ⥪áâ  ¯® 㪠§ ­­®¬ã  ¤à¥áã.
- ⥪áâ®¢ë¬ ä ©« ¬ ¢¥à­ã« ª®¤¨à®¢ªã CP866, readme.md ®áâ ¢«¥­ ¢ ª®¤¨à®¢ª¥ UTF8.
27.06.2025
FN 1.15.01
- ¢ ¯ à¥ ¬¥áâ ¨á¯à «¥­  data ­  date.
25.06.2025 25.06.2025
FN 1.15 FN 1.15
- год копирайта во встроенном help вставляется при сборке. - £®¤ ª®¯¨à ©â  ¢® ¢áâ஥­­®¬ help ¢áâ ¢«ï¥âáï ¯à¨ á¡®àª¥.
- в окне "About" теперь показывает дату сборки. - ¢ ®ª­¥ "About" ⥯¥àì ¯®ª §ë¢ ¥â ¤ âã ᡮન.
- поправлен встроенный help. - ¯®¯à ¢«¥­ ¢áâ஥­­ë© help.
- добавлена копия этого хистори в кодировке 866 с копированием в папку fn. - ¤®¡ ¢«¥­  ª®¯¨ï í⮣® å¨áâ®à¨ ¢ ª®¤¨à®¢ª¥ 866 á ª®¯¨à®¢ ­¨¥¬ ¢ ¯ ¯ªã fn.
- доки переведены на UTF8 кодировку. - ¤®ª¨ ¯¥à¥¢¥¤¥­ë ­  UTF8 ª®¤¨à®¢ªã.
- поправлена CorrBigChar. - ¯®¯à ¢«¥­  CorrBigChar.
- небольшие переделки в bat файлах. - ­¥¡®«ì訥 ¯¥à¥¤¥«ª¨ ¢ bat ä ©« å.
- исправлен "attribut" на "attribute". - ¨á¯à ¢«¥­ "attribut" ­  "attribute".
- исправлен в 2х местах "claster" на "cluster". - ¨á¯à ¢«¥­ ¢ 2å ¬¥áâ å "claster" ­  "cluster".
28.05.2025 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
Поддержка Current Dir, при старте отображается текущая директория диска. <EFBFBD>®¤¤¥à¦ª  Current Dir, ¯à¨ áâ à⥠®â®¡à ¦ ¥âáï ⥪ãé ï ¤¨à¥ªâ®à¨ï ¤¨áª .
07/09/23 07/09/23
Множественные мелкие правки. Œ­®¦¥á⢥­­ë¥ ¬¥«ª¨¥ ¯à ¢ª¨.
01/08/23 01/08/23
Повисает FN после перезагрузки большой альтеры (titd, ldconf). <EFBFBD>®¢¨á ¥â 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...
Найдено на disttest.exe, он выходит зачем-то установив код ошибки #FF, а такого кода нет. <EFBFBD> ©¤¥­® ­  disttest.exe, ®­ ¢ë室¨â § ç¥¬-â® ãáâ ­®¢¨¢ ª®¤ ®è¨¡ª¨ #FF,   â ª®£® ª®¤  ­¥â.
Нужно с нулем выходить без ошибок. <EFBFBD>㦭® á ­ã«¥¬ ¢ë室¨âì ¡¥§ ®è¨¡®ª.
17/07/23 17/07/23
В биосе 2.55 появилась функция - передавать управление из ПЗУ обработчику прерывания в нулевой банке ОЗУ. ¡¨®á¥ 2.55 ¯®ï¢¨« áì äã­ªæ¨ï - ¯¥à¥¤ ¢ âì ã¯à ¢«¥­¨¥ ¨§ <20>‡“ ®¡à ¡®â稪㠯à¥à뢠­¨ï ¢ ­ã«¥¢®© ¡ ­ª¥ އ“.
Cделана проверка на версию биоса. C¤¥« ­  ¯à®¢¥àª  ­  ¢¥àá¨î ¡¨®á .
10/05/22 10/05/22
Viewer: Viewer:
* Поправлен косметический баг в нижней строке при смене функциональных клавиш. * <EFBFBD>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è.
* Исправлено зависание принтера до таймаута при печати. * ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨.
* Героически сэкономлено немного тактов там, где никто не заметит))). * ƒ¥à®¨ç¥áª¨ áíª®­®¬«¥­® ­¥¬­®£® ⠪⮢ â ¬, £¤¥ ­¨ªâ® ­¥ § ¬¥â¨â))).
+ Печать перенесена на клавишу F7, чтоб выгнать вас из зоны комфорта))). + <EFBFBD>¥ç âì ¯¥à¥­¥á¥­  ­  ª« ¢¨èã F7, ç⮡ ¢ë£­ âì ¢ á ¨§ §®­ë ª®¬ä®àâ ))).
+ Добавлено сочетание CTRL+P для печати. + „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨.
? Почти исправлен Wrap, остался баг с верхней строкой. Лучше, чем ничего. ? <EFBFBD>®ç⨠¨á¯à ¢«¥­ 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)
+ По кнопке F9 вызываются настройки редактора с возможностью сохранить настройки + <EFBFBD>® ª­®¯ª¥ 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)
+ Панель, в которой меняется диск по Alt+F1/F2 становится активной + <EFBFBD> ­¥«ì, ¢ ª®â®à®© ¬¥­ï¥âáï ¤¨áª ¯® 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
+ Реализация нового режима работы Home - если есть табуляторы в начале строки, + <EFBFBD>¥ «¨§ æ¨ï ­®¢®£® ०¨¬  à ¡®âë 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)
+ Реализован запуск BAT-файлов, как из панели, так и из командной строки с + <EFBFBD>¥ «¨§®¢ ­ § ¯ã᪠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 плагина по имени без запуска [?] ¢ë§®¢ ¨ ¢§ ¨¬®¤¥©á⢨¥ ¯« £¨­  á ¯« £¨­®¬
[?] вызов и взаимодействие плагина с плагином
[x] ввод в командную строку и нажатие ALT+F1/F2 (выбор драйва) подвисает [x] § £à㧪  FLX ¯« £¨­  ¯® ¨¬¥­¨ ¡¥§ § ¯ã᪠
[x] сортировщик сортирует "..", а не должен [x] ¢¢®¤ ¢ ª®¬ ­¤­ãî áâப㠨 ­ ¦ â¨¥ ALT+F1/F2 (¢ë¡®à ¤à ©¢ ) ¯®¤¢¨á ¥â
[x] вьювер при получении имени файла делает его конверсию и при наличии русских символов портит имя и "File not found" [x] á®àâ¨à®¢é¨ª á®àâ¨àã¥â "..",   ­¥ ¤®«¦¥­
[x] в Disk Info окне показывает имя диска имя файла (npl.exe) [x] ¢ìî¢¥à ¯à¨ ¯®«ã祭¨¨ ¨¬¥­¨ ä ©«  ¤¥« ¥â ¥£® ª®­¢¥àá¨î ¨ ¯à¨ ­ «¨ç¨¨ àãá᪨å ᨬ¢®«®¢ ¯®àâ¨â ¨¬ï ¨ "File not found"
[x] построитель дерева каталогов не работает [x] ¢ Disk Info ®ª­¥ ¯®ª §ë¢ ¥â ¨¬ï ¤¨áª  ¨¬ï ä ©«  (npl.exe)
[x] ¯®áâà®¨â¥«ì ¤¥à¥¢  ª â «®£®¢ ­¥ à ¡®â ¥â

Binary file not shown.

Binary file not shown.

46
fn/flx/cdplayer.txt Normal file
View File

@ -0,0 +1,46 @@
<20>« £¨­ SHAOS CD-Player ¤«ï Flex Navigator ¯à¥¤­ §­ ç¥­ ¤«ï ã¯à ¢«¥­¨ï
¢®á¯à®¨§¢¥¤¥­¨¥¬ ¨ ­ ¢¨£ æ¨¨ Audio CD ¤¨áª®¢.
‘¨á⥬­ë¥ âॡ®¢ ­¨ï: FN ¢¥àᨨ 1.16 ¨ ¢ëè¥.
“¯à ¢«¥­¨¥ ¯«¥¥à®¬ ¯à®¨§¢®¤¨âáï ¯à¨ ¯®¬®é¨ ¬ëè¨ ¨«¨ £®àï稬¨ ª« ¢¨è ¬¨.
‘¯¨á®ª ã¯à ¢«¥­¨ï:
1 - ¯«¥©;
2 - ¯ ã§ , ¢ í⮬ ०¨¬¥ ­ ç¨­ ¥â ¬®à£ âì ¢à¥¬ï ¯à®¨£à뢠­¨ï;
3 - á⮯;
4 - ¯¥à¥©â¨ ­  ¯à¥¤ë¤ã騩 â४;
5 - ¯¥à¥¬®âª  ­ § ¤, ª ¦¤®¥ ­ ¦ â¨¥ ¯¥à¥áª ª¨¢ ¥â ­  10 ᥪ㭤
(⮫쪮 ¢ ०¨¬¥ ¯«¥©);
6 - ¯¥à¥¬®âª  ¢¯¥à¥¤, ª ¦¤®¥ ­ ¦ â¨¥ ¯¥à¥áª ª¨¢ ¥â ­  10 ᥪ㭤
(⮫쪮 ¢ ०¨¬¥ ¯«¥©);
7 - ¯¥à¥©â¨ ­  á«¥¤ãî騩 â४;
8 - § ªàëâì/®âªàëâì â३ ¯à¨¢®¤  CD ¤¨áª®¢. ‘®áâ®ï­¨¥ âà¥ï ­¥ ª®­â஫¨àã¥âáï.
ޤ­® ­ ¦ â¨¥ ¯®¤ ¥â ª®¬ ­¤ã ®âªàëâì, á«¥¤ãî饥 ­ ¦ â¨¥ ¯®¤ ¥â ª®¬ ­¤ã
§ ªàëâ¨ï.
"<22>â® ­¥ ¡ £, íâ® ä¨ç ":
- ­ ¦ â¨¥ á⮯ ¢á¥£¤  á¡à á뢠¥â ¢à¥¬ï ¨£à ­¨ï ¢ 0 ¨ ¯¥à¥å®¤¨â ­  ¯¥à¢ë© â४;
- ¯¥à¥¬®âª  à ¡®â ¥â ⮫쪮 ¢ ०¨¬¥ ¯«¥©;
- ¯à¨ ¢ë室¥ ¨§ ¯«¥¥à  ¢®á¯à®¨§¢¥¤¥­¨¥ ¯à®¤®«¦ ¥âáï. <20>® ¯à¨ á«¥¤ãî饬
§ ¯ã᪥ ¥á«¨ ¤¨áª ¥é¥ ¢®á¯à®¨§¢®¤¨âáï ¯«¥¥à ¡ã¤¥â ¯®ª §ë¢ âì ०¨¬ á⮯
¨ ¯®§¨æ¨î â४ 1, ¢à¥¬ï 00:00.
- ¢ ०¨¬¥ ¯ ã§  ¨ ¯¥à¥å®¤ ­  á«¥¤ãî騩/¯à¥¤ë¤ã騩 â४ ¢à¥¬ï á¡à á뢠¥âáï ¢ 00:00.
History:
‚¥àá¨ï 1.1
- ¯¥à¥à¨á®¢ ­ ¢áâ஥­­ë© ªàã¯­ë© èà¨äâ.
- ¢ ¯ à «¥«ì á ã¯à ¢«¥­¨¥¬ ¬ëèìî ᤥ« ­® ã¯à ¢«¥­¨¥ á ª« ¢¨ âãàë.
- ¢ ०¨¬¥ ¯ ã§  ᤥ« ­® ¬®à£ ­¨¥ ¢à¥¬¥­¥¬ ¨£à ­¨ï.
- ¯¥à¥¬®âª  ¯® ¤¨áªã ᤥ« ­  ­  10 ᥪ㭤 ¨ ⮫쪮 ¢ ०¨¬¥ ¯«¥©.
- ¤®¤¥« ­ë ¢á¥ ­¥¨á¯®«ì§®¢ ­­ë¥ ª­®¯ª¨, ¨á室­ ï ¢¥àá¨ï 㬥«  ⮫쪮 ¯«¥©
¨ ®âªàë⨥ âà¥ï.
- ¯¥à¢ë¥ 2 æ¨äàë ¯®ª §ë¢ îâ ­®¬¥à ⥪ã饣® â४ , ®áâ «ì­ë¥ ¯®ª §ë¢ îâ
¢à¥¬ï ¯à®¨£à뢠­¨ï â४ .
- ᤥ« ­ ¯®ª § ª®«¨ç¥á⢠ â४®¢ ­  ¤¨áª¥.
- ã¡à ­  áªàëâ ï ª­®¯ª  á ­¥¯®­ïâ­ë¬ ä㭪樮­ «®¬.
- ¨á¯à ¢«¥­ ¢ë¢®¤ ­®¬¥à â४  ¨ ¢à¥¬ï ¨£à ­¨ï, ç áâ® á¡®¨«®.
- ¢á¥ ã¯à ¢«¥­¨¥ CD ¯à¨¢®¤®¬ ᤥ« ­  ¯®á뫪®© ATAPI ¯ ª¥â ¬¨ ç¥à¥§ BIOS.
- ¨§ ¯« £¨­  ã¡à ­ ª®¤ à ¡®âë ç¥à¥§ ¯®àâë IDE, ¨á室­¨ª ®áâ ¢«¥­.
- ¨§ ¯« £¨­  ã¡à ­  «®£®  ¢â®à , ¨á室­¨ª ®áâ ¢«¥­.
- ¤®à ¡®âª  ¨á室­®© ¢¥àᨨ SHAOS CD-Player v1.0 beta1.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
fn/fn.exe

Binary file not shown.

View File

@ -3,6 +3,27 @@ FN - FlexNavigator
FV - FileViewer FV - FileViewer
FE - FileEditor FE - FileEditor
18.07.2025
CDplayer.flx 1.1:
- ¯« £¨­ ¤®¤¥« ­, ®¯¨á ­¨¥ cdplayer.txt à冷¬ á ¯« £¨­®¬.
FE 1.09
- ¨á¯à ¢«¥­®: ¯à¨ ¢ë室¥ ¨§ । ªâ®à  á ­¥á®åà ­¥­­ë¬ ä ©«®¬ ¨ § ¯à®á¥ ­  á®åà ­¥­¨¥
ª« ¢¨è  Enter ⥯¥àì à ¡®â ¥â ª ª ¯®¤â¢¥à¦¤¥­¨¥ á®åà ­¥­¨ï.
FN 1.16
- ¢áâ஥­­ë© editor ¯¥à¥¥å « ¢ ¯« £¨­ ®âªã¤  ¨ § ¯ã᪠¥âáï ¯® F4, ¨§ FN 㤠«¥­.
- ¢áâ஥­­ë© viewer ¯¥à¥¥å « ¢ ¯« £¨­ ®âªã¤  ¨ § ¯ã᪠¥âáï ¯® F3, ¨§ FN 㤠«¥­.
- ¢áâ஥­­ë© help ¯¥à¥¥å « ¢ ¯« £¨­ ®âªã¤  ¨ § ¯ã᪠¥âáï ¯à¨ ­ ¦ â¨¨ F1, ¨§ FN 㤠«¥­.
- § £à㧪  ¯« £¨­  ®â¤¥«¥­  ®â § ¯ã᪠, ⥯¥àì ¬®¦­® § ¯ã᪠âì ¯« £¨­ë ­¥
⮫쪮 ¨§ ¯ ­¥«¨ FN.
- ¤®¡ ¢«¥­ ¬ ªà®á ä®à¬¨à®¢ ­¨ï § £®«®¢ª  ¤«ï ¯« £¨­®¢.
- ¢ ®ª­ å á ®è¨¡ª®© ¯¥à¥¤¥« ­ ­  2 ⨯  ®ª®­ ¢¬¥áâ® ¬­®£¨å ¯®¤ ª ¦¤ãî ®è¨¡ªã.
- ¨á¯à ¢«¥­  ¯®â¥àï æ¢¥â  ¯à¨ ¯¥ç â¨ ⥪áâ  ãª § ­­®¬ã  ¤à¥áã ¯®  ¤à¥áã
- ⥪áâ®¢ë¬ ä ©« ¬ ¢¥à­ã« ª®¤¨à®¢ªã CP866, readme.md ®áâ ¢«¥­ ¢ ª®¤¨à®¢ª¥ UTF8.
27.06.2025
FN 1.15.01
- ¢ ¯ à¥ ¬¥áâ ¨á¯à «¥­  data ­  date.
25.06.2025 25.06.2025
FN 1.15 FN 1.15
- £®¤ ª®¯¨à ©â  ¢® ¢áâ஥­­®¬ help ¢áâ ¢«ï¥âáï ¯à¨ á¡®àª¥. - £®¤ ª®¯¨à ©â  ¢® ¢áâ஥­­®¬ help ¢áâ ¢«ï¥âáï ¯à¨ á¡®àª¥.
@ -37,7 +58,6 @@ FN v1.14
ˆá¯à ¢«¥­  ®è¨¡ª  ¨­¨æ¨ «¨§ æ¨¨ áâà ­¨æë help. ˆá¯à ¢«¥­  ®è¨¡ª  ¨­¨æ¨ «¨§ æ¨¨ áâà ­¨æë help.
„®¡ ¢«¥­  ¯®¤¤¥à¦ª  ¡®«ìè¨å ä ©«®¢ ¤«ï FAT32 „®¡ ¢«¥­  ¯®¤¤¥à¦ª  ¡®«ìè¨å ä ©«®¢ ¤«ï FAT32
11/05/24 11/05/24
’¥¯¥àì ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ® ⮬, ç⮠᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨. ’¥ ä ©«ë, ª®â®àë¥ "­¥ ¢«¥§«¨" - ­¥ ®â®¡à ¦ îâáï. ’¥¯¥àì ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ® ⮬, ç⮠᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨. ’¥ ä ©«ë, ª®â®àë¥ "­¥ ¢«¥§«¨" - ­¥ ®â®¡à ¦ îâáï.

View File

@ -1,23 +1,34 @@
; LAST UPDATE: 25.06.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
DOShistory_Size EQU 0x200 ; à §¬¥à ¡ãä¥à  DOS ¨áâ®à¨¨
INIT_VAR 0x8000 INIT_VAR 0x8000
SETVAR WorkBuffer, 0x400 ; à ¡®ç¨© ¡ãä¥à SETVAR WorkBuffer, 0x400 ; à ¡®ç¨© ¡ãä¥à
SETVAR StackTree, 0x100 ; ­ ç «® ¡ãä¥à  á⥪  ¤«ï à ¡®âë á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨© SETVAR StackTree, 0x100 ; ­ ç «® ¡ãä¥à  á⥪  ¤«ï à ¡®âë á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
SETVAR STACKTREE, 0 ; 㪠§ â¥«ì ­  ª®­¥æ ¡ãä¥à  (á⥪ à áâ¥â ¢­¨§) SETVAR STACKTREE, 0 ; 㪠§ â¥«ì ­  ª®­¥æ ¡ãä¥à  (á⥪ à áâ¥â ¢­¨§)
SETVAR PagesList, 0x100 ; ᯨ᮪ áâà ­¨æ ¯ ¬ïâ¨
SETVAR Stack, 0x100 ; ­ ç «® à ¡®ç¥£® á⥪  SETVAR Stack, 0x100 ; ­ ç «® à ¡®ç¥£® á⥪ 
SETVAR STACK, 0 ; 㪠§ â¥«ì ­  ª®­¥æ ¡ãä¥à  (á⥪ à áâ¥â ¢­¨§) SETVAR STACK, 0 ; 㪠§ â¥«ì ­  ª®­¥æ ¡ãä¥à  (á⥪ à áâ¥â ¢­¨§)
SETVAR PagesList, 0x100 ; ᯨ᮪ áâà ­¨æ ¯ ¬ïâ¨
SETVAR BASE_ADDR, 0x100 ; ­ ç «® ª®¤  (¡«®ª ¯¥à¥å®¤®¢ ¨ ®¡é¨å ¯¥à¥¬¥­­ëå ¤«ï ¤®áâ㯠 ¨§ ¯« £¨­®¢) SETVAR BASE_ADDR, 0x100 ; ­ ç «® ª®¤  (¡«®ª ¯¥à¥å®¤®¢ ¨ ®¡é¨å ¯¥à¥¬¥­­ëå ¤«ï ¤®áâ㯠 ¨§ ¯« £¨­®¢)
SETVAR PALETTE, 0 ; ¯ «¨âà  áà §ã §  â ¡«¨æ¥© ¯¥à¥å®¤®¢ ¨ £«®¡ «ì­ëå ¯¥à¥¬¥­­ëå SETVAR PALETTE, 0 ; ¯ «¨âà  áà §ã §  â ¡«¨æ¥© ¯¥à¥å®¤®¢ ¨ £«®¡ «ì­ëå ¯¥à¥¬¥­­ëå
ADDR ;  ¤à¥á  ¡ãä¥à®¢
_INIT_VAR 0x4000 BUF_REZ2
_SETVAR .FlexDIRECTORY _INIT_VAR 0x8000
_MINUSVAR .FLXdir, 0x100
_MINUSVAR .FlexDIRECTORY, 0x100
;  ¤à¥á  ¤«ï ¯« £¨­®¢
PluginOrgCPU3 EQU 0xC000 - 0x10 ;  ¤à¥á ¯« £¨­  ¤«ï ®ª­  3 á ãç¥â®¬ à §¬¥à  § £®«®¢ª 
PluginOrgCPU1 EQU 0x4000 - 0x10 ;  ¤à¥á ¯« £¨­  ¤«ï ®ª­  1 á ãç¥â®¬ à §¬¥à  § £®«®¢ª 
; ¡¨â®¢ë¥ ¬ áª¨ ¤«ï ¯« £¨­®¢
FLXMODES
_BITMASK NORESTORE, 0 ; 0 - à ¡®â ¥â á ¢®ááâ ­®¢«¥­¨¥¬ à ¡®ç¥© ®¡« á⨠Flex Navigator
; (â.¥. ¯®á«¥ à ¡®âë ¯« £¨­  ­¥ ­ã¦­® ¢®ááâ ­ ¢«¨¢ âì íªà ­)
; à ¡®â ¥â ¡¥§ ¢®ááâ ­®¢«¥­¨ï à ¡®ç¥© ®¡« á⨠Flex Navigator
; (â.¥. ¯®á«¥ à ¡®âë ¯« £¨­  ­ã¦­® ¢®ááâ ­ ¢«¨¢ âì íªà ­)
_BITMASK ADRORG, 1 ; 0 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0xC000-0xFFFF
; 1 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0x4000-0x7FFF
PluginOrg EQU 0xC000 - 0x10 ;  ¤à¥á ¯« £¨­  á ãç¥â®¬ à §¬¥à  § £®«®¢ª 
LenInpData EQU 12 ; ª ª®¥-⮠ᬥ饭¨¥ ¤«ï ¬¥âª¨ SearchStr LenInpData EQU 12 ; ª ª®¥-⮠ᬥ饭¨¥ ¤«ï ¬¥âª¨ SearchStr
CursTimer EQU 6 ; "ç áâ®â " ¬®à£ ­¨ï ⥪á⮢®£® ªãàá®à  CursTimer EQU 6 ; "ç áâ®â " ¬®à£ ­¨ï ⥪á⮢®£® ªãàá®à 
@ -105,50 +116,35 @@ WINSUBOBJ
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
PANEL PANEL
_INIT_VAR _INIT_VAR
_SETVAR .PANELFLAG ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®á⨠_SETVAR .PANELFLAG, BYTE ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨ ; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
_SETVAR .VIEWFLAG ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì _SETVAR .VIEWFLAG, BYTE ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì
; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì ; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì
; ¡¨â 1 - ¤¥à¥¢® ; ¡¨â 1 - ¤¥à¥¢®
; ¡¨â 2 - 㦠⮥ ¤¥à¥¢® ; ¡¨â 2 - 㦠⮥ ¤¥à¥¢®
_SETVAR .SORTFLAG ; ‚¨¤ á®àâ¨à®¢ª¨ _SETVAR .SORTFLAG, BYTE ; ‚¨¤ á®àâ¨à®¢ª¨
; ¡¨â 0 - ¯® ¨¬¥­¨ ; ¡¨â 0 - ¯® ¨¬¥­¨
; ¡¨â 1 - ¯® à áè¨à¥­¨î ; ¡¨â 1 - ¯® à áè¨à¥­¨î
; ¡¨â 2 - ¯® à §¬¥àã ; ¡¨â 2 - ¯® à §¬¥àã
; ¡¨â 3 - ¯® ¤ â¥ ; ¡¨â 3 - ¯® ¤ â¥
; ¡¨â 4 - execute file ; ¡¨â 4 - execute file
; ¡¨â 5 - file mask ; ¡¨â 5 - file mask
_SETVAR .XL ; X ¯®§¨æ¨ï ¯ ­¥«¨ LOW _SETVAR .X, WORD ; X ¯®§¨æ¨ï ¯ ­¥«¨
_SETVAR .XH ; X ¯®§¨æ¨ï ¯ ­¥«¨ HIGH _SETVAR .BAR_X, WORD ; X ¯®§¨æ¨ï áªà®«¡ à 
_SETVAR .BARXL ; X ¯®§¨æ¨ï áªà®«¡ à  LOW _SETVAR .BAR_Y, WORD ; Y ¯®§¨æ¨ï áªà®«¡ à 
_SETVAR .BARXH ; X ¯®§¨æ¨ï áªà®«¡ à  HIGH _SETVAR .BAR_MAX, WORD ; Max ¤«¨­  áªà®«¡ à 
_SETVAR .BARYL ; Y ¯®§¨æ¨ï áªà®«¡ à  LOW _SETVAR .BAR_CURR, WORD ; ⥪.¤«¨­  áªà®«¡ à  ???
_SETVAR .BARYH ; Y ¯®§¨æ¨ï áªà®«¡ à  HIGH _SETVAR .BAR_ADR_LEFT, WORD ; €¤à¥á ï祩ª¨ BarLeft
_SETVAR .BARMLL ; Max ¤«¨­  áªà®«¡ à  LOW _SETVAR .BAR_ADR_RIGHT, WORD ; €¤à¥á ï祩ª¨ BarRight
_SETVAR .BARMLH ; Max ¤«¨­  áªà®«¡ à  HIGH _SETVAR .FILES_PAGE, WORD ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥
_SETVAR .BARCLL ; ⥪.¤«¨­  áªà®«¡ à  LOW _SETVAR .FILES_ALL, WORD ; ޡ饥 ª®«-¢® ä ©«®¢
_SETVAR .BARCLH ; ⥪.¤«¨­  áªà®«¡ à  HIGH _SETVAR .FIRST_FILE, WORD ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥
_SETVAR .BARLFL ; €¤à¥á ï祩ª¨ BarLeft LOW _SETVAR .CURR_FILE, WORD ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥
_SETVAR .BARLFH ; €¤à¥á ï祩ª¨ BarLeft HIGH _SETVAR .FILES_MARK, WORD ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢
_SETVAR .BARRTL ; €¤à¥á ï祩ª¨ BarRight LOW _SETVAR .BYTES_MARK, DWORD ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
_SETVAR .BARRTH ; €¤à¥á ï祩ª¨ BarRight HIGH _SETVAR .BYTES_MARK_H, BYTE ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ FAT32
_SETVAR .FPL ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥ LOW _SETVAR .FILE_MASK, MASK_SIZE ; Œ áª  ¯®ª §  ä ©«®¢
_SETVAR .FPH ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥ HIGH _SETVAR .CURR_PATH, 0x100 ; ’¥ªã騩 ¯ãâì ¯ ­¥«¨
_SETVAR .EFL ; ޡ饥 ª®«-¢® ä ©«®¢ LOW
_SETVAR .EFH ; ޡ饥 ª®«-¢® ä ©«®¢ HIGH
_SETVAR .FFL ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥ LOW
_SETVAR .FFH ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥ HIGH
_SETVAR .CFL ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥ LOW
_SETVAR .CFH ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥ HIGH
_SETVAR .MFL ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢ LOW
_SETVAR .MFH ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢ HIGH
_SETVAR .MBL1 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ [
_SETVAR .MBH1 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
_SETVAR .MBL2 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
_SETVAR .MBH2 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ ]
_SETVAR .MBL3 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ FAT32
_SETVAR .FILEMASK, MASK_SIZE ; Œ áª  ¯®ª §  ä ©«®¢
_SETVAR .CURRPATH, 0x100 ; ’¥ªã騩 ¯ãâì ¯ ­¥«¨
PANELFLAG PANELFLAG
_BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS _BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS
@ -176,47 +172,28 @@ SORTFLAG
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
BAR BAR
_INIT_VAR _INIT_VAR
_SETVAR .XL _SETVAR .X, WORD
_SETVAR .XH _SETVAR .Y, WORD
_SETVAR .YL _SETVAR .MAX_LEN, WORD ; à §¬¥à ¡ à 
_SETVAR .YH _SETVAR .LEN_FILES, WORD ; ª®«¨ç¥á⢮ ä ©«®¢
_SETVAR .MAXLL _SETVAR .LEFT_FILES, WORD
_SETVAR .MAXLH _SETVAR .RIGHT_FILES, WORD
_SETVAR .LENL _SETVAR .PAGE_FILES, WORD ; ª®«¨ç¥á⢮ ä ©«®¢ ­  áâà ­¨æã
_SETVAR .LENH _SETVAR .MAX_FILES, WORD ; ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ ä ©«®¢
_SETVAR .LEFTL _SETVAR .FIRST_FILE, WORD ; ¯¥à¢ë© ä ©«
_SETVAR .LEFTH
_SETVAR .RIGHTL
_SETVAR .RIGHTH
_SETVAR .PAGEL
_SETVAR .PAGEH
_SETVAR .MAXL
_SETVAR .MAXH
_SETVAR .FIRSTL
_SETVAR .FIRSTH
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
; <20>ணà¥áá ¡ à
PROC PROC
_INIT_VAR _INIT_VAR
_SETVAR .XL _SETVAR .X, WORD
_SETVAR .XH _SETVAR .Y, WORD
_SETVAR .YL _SETVAR .MAX_LEN, WORD ; ¬ ªá¨¬ «ì­ ï ¤«¨­  ¯à®æ¥áá 
_SETVAR .YH _SETVAR .INDEX, WORD ; Š®íä䍿¨¥­â ¤«ï ¯à®æ¥áá 
_SETVAR .MAXLL _SETVAR .CORR_INDEX, WORD ; Š®à४æ¨ï ª®í䍿¨¥­â 
_SETVAR .MAXLH _SETVAR .MAX_PAGES, DWORD ; Œ ªá¨¬ã¬ áâà ­¨æ
_SETVAR .COEFL _SETVAR .CURR_PAGE, DWORD ; ’¥ªãé ï áâà ­¨æ 
_SETVAR .COEFH _SETVAR .COLOR, BYTE ; –¢¥â ¯à®£à¥áá 
_SETVAR .CORRL
_SETVAR .CORRH
_SETVAR .MAXL1
_SETVAR .MAXH1
_SETVAR .MAXL2
_SETVAR .MAXH2
_SETVAR .CURL1
_SETVAR .CURH1
_SETVAR .CURL2
_SETVAR .CURH2
_SETVAR .COLOR
; ”®à¬ â â ¡«¨æë ; ”®à¬ â â ¡«¨æë
; +00 2 Xmin ; +00 2 Xmin
@ -247,22 +224,14 @@ PROC
; +0E 2 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢) ; +0E 2 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢)
FORMTABL FORMTABL
_INIT_VAR _INIT_VAR
_SETVAR .XMINL _SETVAR .X_MIN, WORD ; Xmin
_SETVAR .XMINH _SETVAR .X_MAX, WORD ; Xmax
_SETVAR .XMAXL _SETVAR .Y_MIN, WORD ; Ymin
_SETVAR .XMAXH _SETVAR .Y_MAX, WORD ; Ymax
_SETVAR .YMINL _SETVAR .FLAG, WORD ; ¡¨â®¢ë¥ ä« £¨
_SETVAR .YMINH _SETVAR .FIRE_NOFIRE, WORD ; €¤à¥á ®¡à ¡®â稪  ¯à¨ ­¥ ­ ¦ â®¬ ®£­¥
_SETVAR .YMAXL _SETVAR .FIRE_LEFT, WORD ; €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ («¥¢)
_SETVAR .YMAXH _SETVAR .FIRE_RIGHT, WORD ; €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢)
_SETVAR .FLAGL
_SETVAR .FLAGH
_SETVAR .FIRENOL
_SETVAR .FIRENOH
_SETVAR .FIRELEFTL
_SETVAR .FIRELEFTH
_SETVAR .FIRERIGHTL
_SETVAR .FIRERIGHTH
_SETVAR .SIZE, 0 _SETVAR .SIZE, 0
;FLAGS ; ¡¨âë 7-0 ;FLAGS ; ¡¨âë 7-0
@ -276,6 +245,7 @@ FORMTABL
_BITMASK BUTTON, 0 ; ª­®¯ª  _BITMASK BUTTON, 0 ; ª­®¯ª 
; ; ¡¨âë 15-8 ; ; ¡¨âë 15-8
_BITMASK FIRENOINV, 7 ; íâ® ¯¥à¥ª«îç â¥«ì (¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì) _BITMASK FIRENOINV, 7 ; íâ® ¯¥à¥ª«îç â¥«ì (¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì)
_BITMASK HZ, 6 ; ????
_BITMASK CLOSEANDRUN, 1 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥ _BITMASK CLOSEANDRUN, 1 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
_BITMASK CLOSEWIN, 0 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥ _BITMASK CLOSEWIN, 0 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
_BITMASK ENDTABL, 7 ; ¡¨â ¢ .XMINH 㪠§ â¥«ì ­  ª®­¥æ ᯨ᪠ _BITMASK ENDTABL, 7 ; ¡¨â ¢ .XMINH 㪠§ â¥«ì ­  ª®­¥æ ᯨ᪠
@ -340,11 +310,15 @@ JUMPS
; 1 - ¥áâì ; 1 - ¥áâì
_SETVAR .CMOSPrint, BYTE _SETVAR .CMOSPrint, BYTE
_SETVAR .FNPAGESID, BYTE ; ˆ­¤¥ä.¯ ¬ï⨠£¤¥ FN _SETVAR .FNPAGESID, BYTE ; ˆ­¤¥ä.¯ ¬ï⨠£¤¥ FN
_SETVAR .FNFUNCT, BYTE ; ‘âà ­¨æ  á äã­ªæ¨ï¬¨ FN _SETVAR .FNREZ2, BYTE ; ‘âà ­¨æ  á äã­ªæ¨ï¬¨ FN
_SETVAR .FNVIEW, BYTE ; ‘âà ­¨æ  á FileViewer
_SETVAR .FNEDIT, BYTE ; ‘âà ­¨æ  á FileEditor
_SETVAR .FNHELP, BYTE ; ‘âà ­¨æ  FN HELP
_SETVAR .FNFONT, BYTE ; ‘âà ­¨æ  èà¨ä⮢ _SETVAR .FNFONT, BYTE ; ‘âà ­¨æ  èà¨ä⮢
_SETVAR .FNREZ3, BYTE ; ‘âà ­¨æ  FN HELP
IFDEF ENABLE.VIEW
_SETVAR .FNVIEW, BYTE ; ‘âà ­¨æ  á FileViewer
ENDIF
IFDEF ENABLE.EDIT
_SETVAR .FNEDIT, BYTE ; ‘âà ­¨æ  á FileEditor
ENDIF
_SETVAR .BufferID, BYTE ; ˆ­¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ¡ãä¥à  _SETVAR .BufferID, BYTE ; ˆ­¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ¡ãä¥à 
_SETVAR .FLX, BYTE ; ‘âà ­¨æ  ¤«ï ¯®¤£à㧪¨ FLX ¯à®á¬®âà. FLX ã⨫¨â _SETVAR .FLX, BYTE ; ‘âà ­¨æ  ¤«ï ¯®¤£à㧪¨ FLX ¯à®á¬®âà. FLX ã⨫¨â
_SETVAR .LEFTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  ‹¥¢®© ¯ ­¥«¨ _SETVAR .LEFTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  ‹¥¢®© ¯ ­¥«¨
@ -378,11 +352,17 @@ FILENAME
.FNEDIT_EXT EQU "fnedit.ext" .FNEDIT_EXT EQU "fnedit.ext"
.FNTREE_FLN EQU "treeinfo.fln" .FNTREE_FLN EQU "treeinfo.fln"
.FNEDIT_INI EQU "FNEDIT.INI" .FNEDIT_INI EQU "FNEDIT.INI"
.HELP_FLX EQU "HELP.FLX"
.EDIT_FLX EQU "FNEDITOR.FLX"
.VIEW_FLX EQU "FNVIEWER.FLX"
FNinternal
_INIT_VAR 0xF0
_SETVAR .PlugNotFound
; ®â« ¤®ç­®¥, ­¥ ¬¥­ïâì ¯® ¨§¡¥¦ ­¨¥ £«îª®¢ ; ®â« ¤®ç­®¥, ­¥ ¬¥­ïâì ¯® ¨§¡¥¦ ­¨¥ £«îª®¢
PLUGS_ENABLE EQU 0 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 ; ¯à¥®¡à §®¢ ­¨¥ ᨬ¢®«®¢ ¨¬¥­¨ ä ©«  CORR_FILENAME EQU 1 ; ¯à¥®¡à §®¢ ­¨¥ ᨬ¢®«®¢ ¨¬¥­¨ ä ©« 

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 05.06.2025 savelij ; LAST UPDATE: 19.07.2025 savelij
include macros.a80 include macros.a80
@ -14,6 +14,19 @@
include fat_dir_sp.a80 include fat_dir_sp.a80
include fn_version.a80 include fn_version.a80
ENABLE
;.EDIT
;.VIEW
;.HELP
PAGES_MEM := 4
IFDEF ENABLE.VIEW
PAGES_MEM := PAGES_MEM + 1
ENDIF
IFDEF ENABLE.EDIT
PAGES_MEM := PAGES_MEM + 1
ENDIF
INIT_VAR 0xC000 INIT_VAR 0xC000
SETVAR FONT_RAW, 6888;IFFFONT_RAW_PACK - FONT_RAW_PACK SETVAR FONT_RAW, 6888;IFFFONT_RAW_PACK - FONT_RAW_PACK
SETVAR_ALIGN SETVAR_ALIGN
@ -37,7 +50,7 @@ EntryExec: DI
SPDSS DSSF.EXIT,0x26 ; exit SPDSS DSSF.EXIT,0x26 ; exit
.next1 .next1
SPDSS DSSF.GETMEM,6 ; § ¯à®á 6 áâà ­¨æ ¯ ¬ï⨠SPDSS DSSF.GETMEM,PAGES_MEM ; § ¯à®á áâà ­¨æ ¯ ¬ïâ¨
JR NC,.next2 ; CY - not enough memory JR NC,.next2 ; CY - not enough memory
LD HL,MAIN.no_memory_str LD HL,MAIN.no_memory_str
SPDSS DSSF.PCHARS ; print text SPDSS DSSF.PCHARS ; print text
@ -46,6 +59,7 @@ EntryExec: DI
.next2 LD (MAIN.hMem),A ; memory handle .next2 LD (MAIN.hMem),A ; memory handle
LD HL,MAIN.FNMAIN LD HL,MAIN.FNMAIN
SPBIOS BIOSF.GETMEMBLKPAGES ; get memory pages list SPBIOS BIOSF.GETMEMBLKPAGES ; get memory pages list
; § £à㧪  ª¥à­ «ï
LD A,(MAIN.FNMAIN) ; set pages from 0xC000 LD A,(MAIN.FNMAIN) ; set pages from 0xC000
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,BASE_ADDR ; FNMAIN LD HL,BASE_ADDR ; FNMAIN
@ -53,35 +67,15 @@ EntryExec: DI
LD A,(MAIN.hFile) LD A,(MAIN.hFile)
SPDSS DSSF.READ SPDSS DSSF.READ
JP C,disk_error JP C,disk_error
LD A,(MAIN.FNFUNCT) ; § £à㧪  ¤®¯®«­¨â¥«ì­ëå ä㭪権
LD A,(MAIN.FNREZ2)
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,0xC000 ; FNFUNCT LD HL,0xC000 ; FNREZ2
LD DE,END_BLOCK_2 - START_BLOCK_2 LD DE,END_BLOCK_2 - START_BLOCK_2
LD A,(MAIN.hFile) LD A,(MAIN.hFile)
SPDSS DSSF.READ SPDSS DSSF.READ
JP C,disk_error JP C,disk_error
LD A,(MAIN.FNVIEW) ; FNVIEW ; § £à㧪  ä®­â 
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_EDITOR - START_BLOCK_EDITOR
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNEDIT) ; FNEDIT
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_VIEWER - START_BLOCK_VIEWER
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNHELP) ; FNHELP
SETPORT WINSP.CPU3,,0
SETPORT WINSP.CPU1,,0
LD HL,0xC000
LD DE,END_BLOCK_3 - START_BLOCK_3
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNFONT) ; FNFONT LD A,(MAIN.FNFONT) ; FNFONT
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK) LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK)
@ -89,8 +83,6 @@ EntryExec: DI
LD A,(MAIN.hFile) LD A,(MAIN.hFile)
SPDSS DSSF.READ SPDSS DSSF.READ
JP C,disk_error JP C,disk_error
LD A,(MAIN.hFile)
SPDSS DSSF.CLOSE ; close file
; à á¯ ª®¢ª  èà¨ä⮢ ; à á¯ ª®¢ª  èà¨ä⮢
LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK) LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK)
LD DE,0xC000 LD DE,0xC000
@ -103,8 +95,39 @@ EntryExec: DI
LD DE,CLOCK_BMP LD DE,CLOCK_BMP
LD BC,CLOCK_BMP_Size + MOUSE_BMP_Size LD BC,CLOCK_BMP_Size + MOUSE_BMP_Size
LDIR LDIR
; § £à㧪  奫¯ 
LD A,(MAIN.FNREZ3) ; FNREZ3
SETPORT WINSP.CPU3,,0
; SETPORT WINSP.CPU1,,0 ; ????
LD HL,0xC000
LD DE,END_BLOCK_3 - START_BLOCK_3
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
IFDEF ENABLE.VIEW
; § £à㧪  ¢ìà 
LD A,(MAIN.FNVIEW) ; FNVIEW
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_VIEWER - START_BLOCK_VIEWER
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
ENDIF
IFDEF ENABLE.EDIT
; § £à㧪  । ªâ®à 
LD A,(MAIN.FNEDIT) ; FNEDIT
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_EDITOR - START_BLOCK_EDITOR
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
ENDIF
LD A,(MAIN.hFile)
SPDSS DSSF.CLOSE ; close file
;!TEST ; !HARDCODE SYS_PAGE ;!TEST ; !HARDCODE SYS_PAGE
SETPORT WINSP.CPU3,PAGE.SYSTEM;0xFE SETPORT WINSP.CPU3,PAGE.SYSTEM
LD HL,0x0124 + CPU3 ; !HARDCODE LD HL,0x0124 + CPU3 ; !HARDCODE
LD (HL),0x38 ; interrupt routine address Low byte LD (HL),0x38 ; interrupt routine address Low byte
INC HL INC HL
@ -117,9 +140,9 @@ EntryExec: DI
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD A,(MAIN.hMem) LD A,(MAIN.hMem)
LD (RAMPAGES.FNPAGESID),A LD (RAMPAGES.FNPAGESID),A
LD HL,MAIN.FNFUNCT LD HL,MAIN.FNREZ2
LD DE,RAMPAGES.FNFUNCT LD DE,RAMPAGES.FNREZ2
LD BC,0x0005 LD BC,PAGES_MEM
LDIR LDIR
JP BASE_ADDR JP BASE_ADDR
@ -135,42 +158,62 @@ disk_error: PUSH AF
UNPACK include dec40.a80 UNPACK include dec40.a80
; 14 x 9 = 126 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D oo EQU COLORP.BLACK + COLORI.BLACK
Clock_BMP: DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE ; 00 WW EQU COLORP.WHITE + COLORI.WHITE
DB 0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF ; 01 HH EQU COLORP.WHITE + COLORI.WHITE0E
DB 0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0x00 ; 02 BB EQU COLORP.WHITE + COLORI.BLACK
DB 0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE,0xF0,0xFE,0x00,0xFF,0xFF,0xFF,0xFF ; 03
DB 0xFF,0x00,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0x00,0xFF ; 04 ; ç á¨ª¨ ¤«ï ¬ëè¨
DB 0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xF0,0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE ; 05 ; 9 x 14 = 126 00 01 02 03 04 05 06 07 08
DB 0xFE,0xFE,0x00,0xFE,0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00 ; 06 Clock_BMP: DB oo,oo,oo,oo,oo,oo,oo,oo,oo ; 00
DB 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE ; 07 DB oo,HH,HH,HH,HH,HH,HH,HH,oo ; 01
DB 0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 08 DB oo,oo,oo,oo,oo,oo,oo,oo,oo ; 02
DB WW,oo,HH,HH,HH,HH,HH,oo,WW ; 03
DB WW,oo,HH,HH,HH,oo,HH,oo,WW ; 04
DB WW,WW,oo,HH,BB,HH,oo,WW,WW ; 05
DB WW,WW,WW,oo,HH,oo,WW,WW,WW ; 06
DB WW,WW,WW,oo,HH,oo,WW,WW,WW ; 07
DB WW,WW,oo,HH,BB,HH,oo,WW,WW ; 08
DB WW,oo,HH,HH,HH,oo,HH,oo,WW ; 09
DB WW,oo,HH,HH,HH,HH,HH,oo,WW ; 0A
DB oo,oo,oo,oo,oo,oo,oo,oo,oo ; 0B
DB oo,HH,HH,HH,HH,HH,HH,HH,oo ; 0C
DB oo,oo,oo,oo,oo,oo,oo,oo,oo ; 0D
CLOCK_BMP_END CLOCK_BMP_END
; 13 x 9 = 117 00 01 02 03 04 05 06 07 08 09 0A 0B 0C ; ªãàá®à ¤«ï ¬ëè¨
Mouse_BMP: DB 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0x00,0xFF ; 00 ; 9 x 13 = 117 00 01 02 03 04 05 06 07 08
DB 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF ; 01 Mouse_BMP: DB oo,oo,WW,WW,WW,WW,WW,WW,WW ; 00
DB 0xFF,0x00,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE ; 02 DB oo,HH,oo,WW,WW,WW,WW,WW,WW ; 01
DB 0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00 ; 03 DB oo,HH,HH,oo,WW,WW,WW,WW,WW ; 02
DB 0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0x00,0xFE ; 04 DB oo,HH,HH,HH,oo,WW,WW,WW,WW ; 03
DB 0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0xFE,0x00 ; 05 DB oo,HH,HH,HH,HH,oo,WW,WW,WW ; 04
DB 0xFF,0xFF,0xFF,0x00,0xFE,0x00,0x00,0xFE,0xFE,0x00,0xFF,0xFF,0x00 ; 06 DB oo,HH,HH,HH,HH,HH,oo,WW,WW ; 05
DB 0x00,0xFF,0xFF,0x00,0xFE,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00 ; 07 DB oo,HH,HH,HH,HH,HH,HH,oo,WW ; 06
DB 0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF ; 08 DB oo,HH,HH,HH,HH,oo,oo,oo,oo ; 07
DB oo,HH,HH,oo,HH,oo,WW,WW,WW ; 08
DB oo,HH,oo,oo,HH,HH,oo,WW,WW ; 09
DB oo,oo,WW,WW,oo,HH,oo,WW,WW ; 0A
DB oo,WW,WW,WW,oo,HH,HH,oo,WW ; 0B
DB WW,WW,WW,WW,WW,oo,oo,WW,WW ; 0C
MOUSE_BMP_END MOUSE_BMP_END
MAIN MAIN
.hFile db 0x00 .hFile db 0x00
.hMem db 0x00 .hMem db 0x00
.FNMAIN db 0x00 .FNMAIN db 0x00
.FNFUNCT db 0x00 ; 00 .FNREZ2 db 0x00 ; 00
.FNVIEW db 0x00 ; 01 .FNFONT db 0x00 ; 01
.FNEDIT db 0x00 ; 02 .FNREZ3 db 0x00 ; 02
.FNHELP db 0x00 ; 03 IFDEF ENABLE.VIEW
.FNFONT db 0x00 ; 04 .FNVIEW db 0x00 ; 03
ENDIF
IFDEF ENABLE.EDIT
.FNEDIT db 0x00 ; 04
ENDIF
DB 0xFF DB 0xFF
.copyright_str: DB "\r\nThe Flex Navigator, ver.\{FLEX_VERS.NAVIGATOR}\r\n",0 .copyright_str: DZ "\r\nThe Flex Navigator, ver.\{FLEX_VERS.NAVIGATOR}\r\n"
.incor_dos_str: DZ "Incorrect DOS version, need DOS 1.00 or high.\r\n" .incor_dos_str: DZ "Incorrect DOS version, need DOS 1.00 or high.\r\n"
.no_memory_str: DZ "Not enough memory to load program.\r\n" .no_memory_str: DZ "Not enough memory to load program.\r\n"
.load_err_str: DZ "Disk loading error.\r\n" .load_err_str: DZ "Disk loading error.\r\n"

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 25.06.2025 savelij ; LAST UPDATE: 06.07.2025 savelij
MAKEWINDOW MACRO TYPE MAKEWINDOW MACRO TYPE
CALL JUMPS.MakeWindow CALL JUMPS.MakeWindow
@ -103,4 +103,49 @@ WINDOWCLOSE MACRO
W_END W_END
ENDM ENDM
BUILDDATE EQU "\{(DDATE / 10) + '0'}\{(DDATE # 10) + '0'}.\{MMOUNTH / 10 + '0'}\{MMOUNTH # 10 + '0'}.20\{(YYEAR / 10) + '0'}\{(YYEAR # 10) + '0'}" ; ä®à¬¨à®¢ â¥«ì FLX § £®«®¢ª , ¯ à ¬¥âàë:
; STRING (¤® 5 ¡ ©â) - «î¡®© ⥪áâ ¤«ï § £®«®¢ª 
; OFFSET (WORD) - ᬥ饭¨¥ ¢ áâà ­¨æ¥ ¯ ¬ï⨠¤«ï § £à㧪¨ (0 - 0x3FFF)
; ENTRY (WORD) - ᬥ饭¨¥ ¢ áâà ­¨æ¥ ¯ ¬ï⨠¤«ï § ¯ã᪠ (0 - 0x3FFF)
; MODES (BYTE) - ०¨¬ à ¡®âë
HDR_FLX MACRO STRING,OFFSET,ENTRY,MODES
IFNB MODES
IF MODES & FLXMODES.M_ADRORG
ORG PluginOrgCPU1
ELSE
ORG PluginOrgCPU3
ENDIF
ELSE
ORG PluginOrgCPU3
ENDIF
DB "FLX"
IFB STRING
DB "-PLUG"
ELSE
IF STRLEN (STRING) = 5
DB STRING
ELSE
DB STRING
DB 5 - STRLEN (STRING) DUP " "
ENDIF
ENDIF
IFB OFFSET
DW 0
ELSE
DW OFFSET
ENDIF
IFB ENTRY
DW 0
ELSE
DW ENTRY
ENDIF
IFB MODES
DB 0
ELSE
DB MODES
ENDIF
DB 3 DUP 0
ENDM

View File

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

200
fnbar.a80
View File

@ -1,13 +1,13 @@
; LAST UPDATE: 07.03.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]-----------------------------------------------------------[] ;[]-----------------------------------------------------------[]
InitScrollBar LD C,(IX + BAR.PAGEL) InitScrollBar LD C,(IX + BAR.PAGE_FILES)
LD B,(IX + BAR.PAGEH) ; Š®«-¢® í«¥¬. ­  áâà. LD B,(IX + BAR.PAGE_FILES + 1) ; Š®«-¢® í«¥¬. ­  áâà.
LD L,C LD L,C
LD H,B LD H,B
LD E,(IX + BAR.MAXL) LD E,(IX + BAR.MAX_FILES)
LD D,(IX + BAR.MAXH) ; ¬ ªá.í«¥¬¥­â®¢ LD D,(IX + BAR.MAX_FILES + 1) ; ¬ ªá.í«¥¬¥­â®¢
LD A,D LD A,D
OR E OR E
JR NZ,.L1 JR NZ,.L1
@ -18,8 +18,8 @@ InitScrollBar LD C,(IX + BAR.PAGEL)
ADD HL,DE ADD HL,DE
EX DE,HL EX DE,HL
.L2 PUSH DE .L2 PUSH DE
LD E,(IX + BAR.MAXLL) LD E,(IX + BAR.MAX_LEN)
LD D,(IX + BAR.MAXLH) ; Š®«-¢® ¢¨¤. í«¥¬. * à §¬¥à ¡ à  LD D,(IX + BAR.MAX_LEN + 1) ; Š®«-¢® ¢¨¤. í«¥¬. * à §¬¥à ¡ à 
CALL Mult16X16 ; DE * BC = HL + DE CALL Mult16X16 ; DE * BC = HL + DE
POP BC ; /¬ ªá.í«¥¬¥­â®¢ POP BC ; /¬ ªá.í«¥¬¥­â®¢
CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ) CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ)
@ -31,8 +31,8 @@ InitScrollBar LD C,(IX + BAR.PAGEL)
SBC HL,DE SBC HL,DE
JR C,.L4 JR C,.L4
LD DE,0x0003 LD DE,0x0003
.L4 LD (IX + BAR.LENL),E ; = ¤«¨­  ¡ à  .L4 LD (IX + BAR.LEN_FILES),E ; = ¤«¨­  ¡ à 
LD (IX + BAR.LENH),D ; = ¤«¨­  ¡ à  LD (IX + BAR.LEN_FILES + 1),D ; = ¤«¨­  ¡ à 
RET RET
PrnHScrBar PUSH IY PrnHScrBar PUSH IY
@ -40,12 +40,12 @@ PrnHScrBar PUSH IY
PUSH AF PUSH AF
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
LD IYL,A LD IYL,A
LD L,(IX + BAR.FIRSTL) ; FirstFile LD L,(IX + BAR.FIRST_FILE) ; FirstFile
LD H,(IX + BAR.FIRSTH) LD H,(IX + BAR.FIRST_FILE + 1)
LD E,(IX + BAR.PAGEL) LD E,(IX + BAR.PAGE_FILES)
LD D,(IX + BAR.PAGEH) LD D,(IX + BAR.PAGE_FILES + 1)
LD C,(IX + BAR.MAXL) ; EquipFiles LD C,(IX + BAR.MAX_FILES) ; EquipFiles
LD B,(IX + BAR.MAXH) LD B,(IX + BAR.MAX_FILES + 1)
LD A,B LD A,B
OR C OR C
JR NZ,.L1 JR NZ,.L1
@ -63,8 +63,8 @@ PrnHScrBar PUSH IY
JR NC,.L2 JR NC,.L2
LD HL,0x0000 LD HL,0x0000
.L2 EX DE,HL .L2 EX DE,HL
LD C,(IX + BAR.MAXLL) LD C,(IX + BAR.MAX_LEN)
LD B,(IX + BAR.MAXLH) LD B,(IX + BAR.MAX_LEN + 1)
CALL Mult16X16 CALL Mult16X16
POP BC POP BC
CALL Divis32X16 CALL Divis32X16
@ -76,12 +76,12 @@ PrnHScrBar PUSH IY
RR E RR E
JR NC,.L4 JR NC,.L4
INC DE INC DE
.L4 LD L,(IX + BAR.XL) .L4 LD L,(IX + BAR.X)
LD H,(IX + BAR.XH) LD H,(IX + BAR.X + 1)
SRL H SRL H
RR L RR L
SET 6,H SET 6,H
LD A,(IX + BAR.YL) LD A,(IX + BAR.Y)
LD C,A LD C,A
LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88 LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
SETPORT WINSP.CPU1,0x50 SETPORT WINSP.CPU1,0x50
@ -104,11 +104,11 @@ PrnHScrBar PUSH IY
EI EI
POP DE POP DE
.L3 PUSH DE .L3 PUSH DE
LD L,(IX + BAR.XL) LD L,(IX + BAR.X)
LD H,(IX + BAR.XH) LD H,(IX + BAR.X + 1)
ADD HL,DE ADD HL,DE
LD E,(IX + BAR.LEFTL) LD E,(IX + BAR.LEFT_FILES)
LD D,(IX + BAR.LEFTH) LD D,(IX + BAR.LEFT_FILES + 1)
LD A,D LD A,D
OR E OR E
JR Z,.L6 JR Z,.L6
@ -122,10 +122,10 @@ PrnHScrBar PUSH IY
SRL H SRL H
RR L RR L
SET 6,H SET 6,H
LD A,(IX + BAR.YL) LD A,(IX + BAR.Y)
LD C,A LD C,A
LD E,(IX + BAR.LENL) LD E,(IX + BAR.LEN_FILES)
LD D,(IX + BAR.LENH) LD D,(IX + BAR.LEN_FILES + 1)
LD A,D LD A,D
OR A OR A
JR NZ,.L7 JR NZ,.L7
@ -185,12 +185,12 @@ PrnHScrBar PUSH IY
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
EI EI
POP HL POP HL
LD C,(IX + BAR.LENL) LD C,(IX + BAR.LEN_FILES)
LD B,(IX + BAR.LENH) LD B,(IX + BAR.LEN_FILES + 1)
PUSH BC PUSH BC
ADD HL,BC ADD HL,BC
LD C,(IX+BAR.RIGHTL) LD C,(IX + BAR.RIGHT_FILES)
LD B,(IX+BAR.RIGHTH) LD B,(IX + BAR.RIGHT_FILES + 1)
LD A,B LD A,B
OR C OR C
JR Z,.L10 JR Z,.L10
@ -201,8 +201,8 @@ PrnHScrBar PUSH IY
LD A,H LD A,H
LD (BC),A LD (BC),A
.L10 POP BC .L10 POP BC
LD L,(IX + BAR.MAXLL) LD L,(IX + BAR.MAX_LEN)
LD H,(IX + BAR.MAXLH) LD H,(IX + BAR.MAX_LEN + 1)
OR A OR A
SBC HL,BC SBC HL,BC
POP BC POP BC
@ -216,7 +216,7 @@ PrnHScrBar PUSH IY
SRL D SRL D
RR E RR E
JR Z,.L11 JR Z,.L11
LD A,(IX + BAR.YL) LD A,(IX + BAR.Y)
LD C,A LD C,A
LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88 LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
SETPORT WINSP.CPU1,0x50 SETPORT WINSP.CPU1,0x50
@ -247,12 +247,12 @@ PrnVScrBar PUSH IY
PUSH AF PUSH AF
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
LD IYH,A LD IYH,A
LD L,(IX + BAR.FIRSTL) ; FirstFile LD L,(IX + BAR.FIRST_FILE) ; FirstFile
LD H,(IX + BAR.FIRSTH) LD H,(IX + BAR.FIRST_FILE + 1)
LD E,(IX + BAR.PAGEL) LD E,(IX + BAR.PAGE_FILES)
LD D,(IX + BAR.PAGEH) LD D,(IX + BAR.PAGE_FILES + 1)
LD C,(IX + BAR.MAXL) ; EquipFiles LD C,(IX + BAR.MAX_FILES) ; EquipFiles
LD B,(IX + BAR.MAXH) LD B,(IX + BAR.MAX_FILES + 1)
LD A,B LD A,B
OR C OR C
JR NZ,.L1 JR NZ,.L1
@ -270,12 +270,12 @@ PrnVScrBar PUSH IY
JR NC,.L2 JR NC,.L2
LD HL,0x0000 LD HL,0x0000
.L2 EX DE,HL .L2 EX DE,HL
LD C,(IX + BAR.MAXLL) LD C,(IX + BAR.MAX_LEN)
LD B,(IX + BAR.MAXLH) LD B,(IX + BAR.MAX_LEN + 1)
CALL Mult16X16 CALL Mult16X16
POP BC POP BC
CALL Divis32X16 CALL Divis32X16
LD A,(IX + BAR.YL) LD A,(IX + BAR.Y)
LD IYL,A LD IYL,A
LD A,D LD A,D
OR E OR E
@ -283,8 +283,8 @@ PrnVScrBar PUSH IY
PUSH DE PUSH DE
LD A,E LD A,E
LD (.L4),A LD (.L4),A
LD L,(IX + BAR.XL) LD L,(IX + BAR.X)
LD H,(IX + BAR.XH) LD H,(IX + BAR.X + 1)
SRL H SRL H
RR L RR L
SET 6,H SET 6,H
@ -311,11 +311,11 @@ PrnVScrBar PUSH IY
EI EI
POP DE POP DE
.L3 PUSH DE .L3 PUSH DE
LD L,(IX + BAR.YL) LD L,(IX + BAR.Y)
LD H,(IX + BAR.YH) LD H,(IX + BAR.Y + 1)
ADD HL,DE ADD HL,DE
LD E,(IX + BAR.LEFTL) LD E,(IX + BAR.LEFT_FILES)
LD D,(IX + BAR.LEFTH) LD D,(IX + BAR.LEFT_FILES + 1)
LD A,D LD A,D
OR E OR E
JR Z,.L6 JR Z,.L6
@ -326,12 +326,12 @@ PrnVScrBar PUSH IY
LD (HL),D LD (HL),D
EX DE,HL EX DE,HL
.L6 PUSH HL .L6 PUSH HL
LD L,(IX + BAR.XL) LD L,(IX + BAR.X)
LD H,(IX + BAR.XH) LD H,(IX + BAR.X + 1)
SRL H SRL H
RR L RR L
SET 6,H SET 6,H
LD A,(IX + BAR.LENL) LD A,(IX + BAR.LEN_FILES)
LD C,A LD C,A
SUB 0x02 SUB 0x02
LD (.L7),A LD (.L7),A
@ -382,12 +382,12 @@ PrnVScrBar PUSH IY
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
EI EI
POP HL POP HL
LD C,(IX + BAR.LENL) LD C,(IX + BAR.LEN_FILES)
LD B,(IX + BAR.LENH) LD B,(IX + BAR.LEN_FILES + 1)
PUSH BC PUSH BC
ADD HL,BC ADD HL,BC
LD C,(IX + BAR.RIGHTL) LD C,(IX + BAR.RIGHT_FILES)
LD B,(IX + BAR.RIGHTH) LD B,(IX + BAR.RIGHT_FILES + 1)
LD A,B LD A,B
OR C OR C
JR Z,.L9 JR Z,.L9
@ -398,8 +398,8 @@ PrnVScrBar PUSH IY
LD A,H LD A,H
LD (BC),A LD (BC),A
.L9 POP BC .L9 POP BC
LD L,(IX + BAR.MAXLL) LD L,(IX + BAR.MAX_LEN)
LD H,(IX + BAR.MAXLH) LD H,(IX + BAR.MAX_LEN + 1)
OR A OR A
SBC HL,BC SBC HL,BC
POP BC POP BC
@ -411,8 +411,8 @@ PrnVScrBar PUSH IY
JR C,.L10 JR C,.L10
LD A,L LD A,L
LD (.L11),A LD (.L11),A
LD L,(IX+BAR.XL) LD L,(IX + BAR.X)
LD H,(IX+BAR.XH) LD H,(IX + BAR.X + 1)
SRL H SRL H
RR L RR L
SET 6,H SET 6,H
@ -441,18 +441,18 @@ PrnVScrBar PUSH IY
;[]-----------------------------------------------------------[] ;[]-----------------------------------------------------------[]
InitProcess SUB A InitProcess SUB A
LD (IX + PROC.CURL1),A LD (IX + PROC.CURR_PAGE),A
LD (IX + PROC.CURH1),A LD (IX + PROC.CURR_PAGE + 1),A
LD (IX + PROC.CURL2),A LD (IX + PROC.CURR_PAGE + 2),A
LD (IX + PROC.CURH2),A LD (IX + PROC.CURR_PAGE + 3),A
LD (IX + PROC.CORRL),A LD (IX + PROC.CORR_INDEX),A
LD (IX + PROC.CORRH),A LD (IX + PROC.CORR_INDEX + 1),A
LD C,(IX + PROC.MAXLL) ; Œ ªá/¬ ªá.¤«¨­ã ¯à®æ¥á  LD C,(IX + PROC.MAX_LEN) ; Œ ªá/¬ ªá.¤«¨­ã ¯à®æ¥á 
LD B,(IX + PROC.MAXLH) LD B,(IX + PROC.MAX_LEN + 1)
LD E,(IX + PROC.MAXL1) LD E,(IX + PROC.MAX_PAGES)
LD D,(IX + PROC.MAXH1) LD D,(IX + PROC.MAX_PAGES + 1)
LD L,(IX + PROC.MAXL2) LD L,(IX + PROC.MAX_PAGES + 2)
LD H,(IX + PROC.MAXH2) LD H,(IX + PROC.MAX_PAGES + 3)
CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ) CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ)
LD A,H LD A,H
OR L OR L
@ -462,20 +462,20 @@ InitProcess SUB A
OR A OR A
SBC HL,DE SBC HL,DE
JR C,.L1 JR C,.L1
LD A,(IX + PROC.MAXL2) LD A,(IX + PROC.MAX_PAGES + 2)
OR (IX + PROC.MAXH2) OR (IX + PROC.MAX_PAGES + 3)
JR NZ,.L1 JR NZ,.L1
LD E,(IX + PROC.MAXL1) LD E,(IX + PROC.MAX_PAGES)
LD D,(IX + PROC.MAXH1) LD D,(IX + PROC.MAX_PAGES + 1)
LD BC,1000 LD BC,1000
LD (IX + PROC.CORRL),C LD (IX + PROC.CORR_INDEX),C
LD (IX + PROC.CORRH),B LD (IX + PROC.CORR_INDEX + 1),B
CALL Mult16X16 CALL Mult16X16
LD C,(IX + PROC.MAXLL) ; Œ ªá/¬ ªá.¤«¨­ã ¯à®æ¥á  LD C,(IX + PROC.MAX_LEN) ; Œ ªá/¬ ªá.¤«¨­ã ¯à®æ¥á 
LD B,(IX + PROC.MAXLH) LD B,(IX + PROC.MAX_LEN + 1)
CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ) CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ)
.L1 LD (IX + PROC.COEFL),E .L1 LD (IX + PROC.INDEX),E
LD (IX + PROC.COEFH),D LD (IX + PROC.INDEX + 1),D
RET RET
PrnProcess PUSH IY PrnProcess PUSH IY
@ -483,21 +483,21 @@ PrnProcess PUSH IY
PUSH AF PUSH AF
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
LD IYL,A LD IYL,A
LD E,(IX + PROC.CURL1) LD E,(IX + PROC.CURR_PAGE)
LD D,(IX + PROC.CURH1) LD D,(IX + PROC.CURR_PAGE + 1)
LD L,(IX + PROC.CURL2) LD L,(IX + PROC.CURR_PAGE + 2)
LD H,(IX + PROC.CURH2) LD H,(IX + PROC.CURR_PAGE + 3)
LD A,(IX + PROC.CORRL) LD A,(IX + PROC.CORR_INDEX)
OR (IX + PROC.CORRH) OR (IX + PROC.CORR_INDEX + 1)
JR Z,.L1 JR Z,.L1
LD C,(IX + PROC.CORRL) LD C,(IX + PROC.CORR_INDEX)
LD B,(IX + PROC.CORRH) LD B,(IX + PROC.CORR_INDEX + 1)
CALL Mult16X16 CALL Mult16X16
.L1 LD C,(IX + PROC.COEFL) .L1 LD C,(IX + PROC.INDEX)
LD B,(IX + PROC.COEFH) LD B,(IX + PROC.INDEX + 1)
CALL Divis32X16 CALL Divis32X16
LD L,(IX + PROC.XL) LD L,(IX + PROC.X)
LD H,(IX + PROC.XH) LD H,(IX + PROC.X + 1)
SRL H SRL H
RR L RR L
SET 6,H SET 6,H
@ -506,8 +506,8 @@ PrnProcess PUSH IY
JR Z,.L2 JR Z,.L2
PUSH DE PUSH DE
PUSH HL PUSH HL
LD L,(IX + PROC.MAXLL) LD L,(IX + PROC.MAX_LEN)
LD H,(IX + PROC.MAXLH) LD H,(IX + PROC.MAX_LEN + 1)
OR A OR A
SBC HL,DE SBC HL,DE
JR NC,.L3 JR NC,.L3
@ -518,7 +518,7 @@ PrnProcess PUSH IY
RR E RR E
JR NC,.L4 JR NC,.L4
INC DE INC DE
.L4 LD A,(IX + PROC.YL) .L4 LD A,(IX + PROC.Y)
LD C,A LD C,A
LD A,(IX + PROC.COLOR) LD A,(IX + PROC.COLOR)
AND 0xF0 AND 0xF0
@ -549,8 +549,8 @@ PrnProcess PUSH IY
EI EI
POP DE POP DE
.L2 PUSH HL .L2 PUSH HL
LD L,(IX + PROC.MAXLL) LD L,(IX + PROC.MAX_LEN)
LD H,(IX + PROC.MAXLH) LD H,(IX + PROC.MAX_LEN + 1)
OR A OR A
SBC HL,DE SBC HL,DE
EX DE,HL EX DE,HL
@ -561,7 +561,7 @@ PrnProcess PUSH IY
RR E RR E
JR NC,.L7 JR NC,.L7
INC DE INC DE
.L7 LD A,(IX + PROC.YL) .L7 LD A,(IX + PROC.Y)
LD C,A LD C,A
LD A,(IX + PROC.COLOR) LD A,(IX + PROC.COLOR)
AND 0x0F AND 0x0F

View File

@ -16,7 +16,7 @@ NewDIRECTORY PUSH HL
POP IY POP IY
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
ADD A,'A' ADD A,'A'
CP (HL) CP (HL)
@ -36,11 +36,11 @@ NewDIRECTORY PUSH HL
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,InitPanel JP NZ,InitPanel
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,LeftPanel + PANEL.CURRPATH LD HL,LeftPanel + PANEL.CURR_PATH
LD DE,RightPanel + PANEL.CURRPATH LD DE,RightPanel + PANEL.CURR_PATH
JR Z,NewDIR0 JR Z,NewDIR0
LD HL,RightPanel + PANEL.CURRPATH LD HL,RightPanel + PANEL.CURR_PATH
LD DE,LeftPanel + PANEL.CURRPATH LD DE,LeftPanel + PANEL.CURR_PATH
NewDIR0 SUB A NewDIR0 SUB A
.L1 LDI .L1 LDI
CP (HL) CP (HL)
@ -61,7 +61,7 @@ NewDIRECT1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
LD A,(IY + PANEL.VIEWFLAG) LD A,(IY + PANEL.VIEWFLAG)
@ -74,7 +74,7 @@ NewDIRECT1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
NewDIRTree PUSH IY NewDIRTree PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
@ -102,7 +102,7 @@ RefreshDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
LD A,(IY + PANEL.VIEWFLAG) LD A,(IY + PANEL.VIEWFLAG)
@ -111,8 +111,8 @@ RefreshDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
CALL Z,PrnHScrBar CALL Z,PrnHScrBar
POP AF POP AF
CALL NZ,PrnVScrBar CALL NZ,PrnVScrBar
RfDIRn1 LD HL,LeftPanel + PANEL.CURRPATH RfDIRn1 LD HL,LeftPanel + PANEL.CURR_PATH
LD DE,RightPanel + PANEL.CURRPATH LD DE,RightPanel + PANEL.CURR_PATH
RefrDIR LD A,(DE) RefrDIR LD A,(DE)
CP (HL) CP (HL)
RET NZ RET NZ
@ -136,7 +136,7 @@ RefrDIR LD A,(DE)
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
LD A,(IY + PANEL.VIEWFLAG) LD A,(IY + PANEL.VIEWFLAG)
@ -149,8 +149,8 @@ RefrDex POP IY
RET RET
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
FindPrevFile LD A,(IY + PANEL.EFL) FindPrevFile LD A,(IY + PANEL.FILES_ALL)
OR (IY + PANEL.EFH) OR (IY + PANEL.FILES_ALL + 1)
RET Z RET Z
BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
RET Z RET Z
@ -202,8 +202,8 @@ FndPrFileE LD A,(HL)
PrevFile DB 13 DUP 0 PrevFile DB 13 DUP 0
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
FindPrevDIR LD A,(IY + PANEL.EFL) FindPrevDIR LD A,(IY + PANEL.FILES_ALL)
OR (IY + PANEL.EFH) OR (IY + PANEL.FILES_ALL + 1)
RET Z RET Z
BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
RET Z RET Z
@ -254,8 +254,8 @@ FndTree INC SP
INC SP INC SP
LD L,C LD L,C
LD H,B LD H,B
LD C,(IY + PANEL.FPL) LD C,(IY + PANEL.FILES_PAGE)
LD B,(IY + PANEL.FPH) LD B,(IY + PANEL.FILES_PAGE + 1)
LD DE,0x0000 LD DE,0x0000
EX DE,HL EX DE,HL
OR A OR A
@ -268,10 +268,10 @@ FndTree INC SP
SBC HL,BC SBC HL,BC
JR NC,.L1 JR NC,.L1
ADD HL,BC ADD HL,BC
LD (IY + PANEL.CFL),L LD (IY + PANEL.CURR_FILE),L
LD (IY + PANEL.CFH),H LD (IY + PANEL.CURR_FILE + 1),H
LD (IY + PANEL.FFL),E LD (IY + PANEL.FIRST_FILE),E
LD (IY + PANEL.FFH),D LD (IY + PANEL.FIRST_FILE + 1),D
FndTreeExt POP AF FndTreeExt POP AF
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
RET RET

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 28.05.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
DOSline SUB A DOSline SUB A
@ -108,12 +108,12 @@ RunDOSline
CALL SaveDOSline CALL SaveDOSline
LD HL,DOSinp LD HL,DOSinp
LD A,(HL) LD A,(HL)
CP 0x20 CP ' '
JP Z,ClearDOSline JP Z,ClearDOSline
LD A,(DOSstr.slen) LD A,(DOSstr.slen)
LD B,A LD B,A
LD C,0x00 LD C,0x00
LD A,0x20 LD A,' '
RunDLn0 CP (HL) RunDLn0 CP (HL)
JR Z,RunDLine JR Z,RunDLine
INC HL INC HL
@ -135,7 +135,7 @@ RunDLine DEC HL
LD A,(DOSinp + 1) LD A,(DOSinp + 1)
CP ':' CP ':'
JR NZ,.L1 JR NZ,.L1
LD (IY + PANEL.CURRPATH),0x00 LD (IY + PANEL.CURR_PATH),0x00
.L1 CALL NewDIRECTORY .L1 CALL NewDIRECTORY
LD A,(TreeFlag) LD A,(TreeFlag)
OR A OR A
@ -149,7 +149,7 @@ RunDLine DEC HL
JR NZ,.L2 JR NZ,.L2
LD IY,RightPanel LD IY,RightPanel
LD HL,LeftPanel LD HL,LeftPanel
.L2 LD DE,PANEL.CURRPATH .L2 LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
@ -162,7 +162,7 @@ RunDLine DEC HL
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL PrnVScrBar CALL PrnVScrBar
POP IY POP IY
@ -217,7 +217,7 @@ RunDOSexe1 ld hl,WorkBuffer
jr z,.endOfLine jr z,.endOfLine
dec hl dec hl
ld de,WorkBuffer ld de,WorkBuffer
call ConcatString call STRCAT
.endOfLine: ld hl,WorkBuffer .endOfLine: ld hl,WorkBuffer
ld de,WorkBuffer + 0x0100 ld de,WorkBuffer + 0x0100
SPDSS DSSF.EX_PATH,4 SPDSS DSSF.EX_PATH,4
@ -242,9 +242,9 @@ RunDOSexe1 ld hl,WorkBuffer
.noExe: ld hl,ShellFile ;ª®¯¨à㥬 ¯ãâì ª 襫«ã .noExe: ld hl,ShellFile ;ª®¯¨à㥬 ¯ãâì ª 襫«ã
ld de,WorkBuffer + 0x0100 ld de,WorkBuffer + 0x0100
call CopyString call STRCPY
ld hl,WorkBuffer ld hl,WorkBuffer
call ConcatString call STRCAT
.noBatch: CALL ResDrivers .noBatch: CALL ResDrivers
SUB A SUB A
CALL ClearScreen CALL ClearScreen
@ -282,11 +282,11 @@ GetFileName: LD A,(DOSinp + 1) ;
.panelSearch: ex hl,de .panelSearch: ex hl,de
ld (.str),hl ld (.str),hl
bit PANELFLAG.B_SIDE,(iy + PANEL.PANELFLAG) bit PANELFLAG.B_SIDE,(iy + PANEL.PANELFLAG)
ld hl,RightPanel + PANEL.CURRPATH ld hl,RightPanel + PANEL.CURR_PATH
jr nz,.next jr nz,.next
ld hl,LeftPanel + PANEL.CURRPATH ld hl,LeftPanel + PANEL.CURR_PATH
.next: ld de,WorkBuffer + 0x0100 .next: ld de,WorkBuffer + 0x0100
call CopyString call STRCPY
ld a,'\\' ld a,'\\'
ld (de),a ld (de),a
inc de inc de
@ -310,16 +310,16 @@ GetFileName: LD A,(DOSinp + 1) ;
.str EQU $-2 .str EQU $-2
jr c,.notFound jr c,.notFound
ld hl,WorkBuffer + 0200h ld hl,WorkBuffer + 0200h
jp CopyString jp STRCPY
;<3B>®¤£®â®¢ª  ¨¬¥­¨ ä ©«  ¤«ï ¯®¨áª  ;<3B>®¤£®â®¢ª  ¨¬¥­¨ ä ©«  ¤«ï ¯®¨áª 
PrepareFilename: PrepareFilename:
ld de,WorkBuffer + 0200h ld de,WorkBuffer + 0200h
push hl push hl
ld hl,WorkBuffer + 0x0100 ld hl,WorkBuffer + 0x0100
call CopyString call STRCPY
pop hl pop hl
jp ConcatString jp STRCAT
;¯®¨áª ä ©«  ;¯®¨áª ä ©« 
SearchFilename: ld hl,WorkBuffer + 0200h ;¯®¨áª ä ©«  ¢ ª â «®£¥ ⥪ã饩 ¯ ­¥«¨ SearchFilename: ld hl,WorkBuffer + 0200h ;¯®¨áª ä ©«  ¢ ª â «®£¥ ⥪ã饩 ¯ ­¥«¨
@ -331,7 +331,7 @@ SearchFilename: ld hl,WorkBuffer + 0200h ;
SaveDOSline SaveDOSline
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
LD A,(RAMPAGES.FNHELP) LD A,(RAMPAGES.FNREZ3)
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
SETPORT WINSP.Y_PORT,0xC0 SETPORT WINSP.Y_PORT,0xC0
LD IX,DOSstr LD IX,DOSstr
@ -404,7 +404,7 @@ GetDOShistory LD IX,DOSstr
EX AF,AF' EX AF,AF'
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
LD A,(RAMPAGES.FNHELP) LD A,(RAMPAGES.FNREZ3)
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
EX AF,AF' EX AF,AF'
PUSH AF PUSH AF
@ -562,10 +562,10 @@ InsFileName
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FFL) LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FFH) LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CFL) LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CFH) LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JR Z,InsFN1 JR Z,InsFN1
@ -616,10 +616,10 @@ InsFN2 POP AF
TempName DB 14 DUP 0 TempName DB 14 DUP 0
InsLeftPath LD HL,LeftPanel + PANEL.CURRPATH InsLeftPath LD HL,LeftPanel + PANEL.CURR_PATH
JR InsPath JR InsPath
InsRightPath LD HL,RightPanel + PANEL.CURRPATH InsRightPath LD HL,RightPanel + PANEL.CURR_PATH
InsPath LD DE,WorkBuffer + 0x100 InsPath LD DE,WorkBuffer + 0x100
PUSH DE PUSH DE
SUB A SUB A

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 27.04.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
InitVideoMode InitVideoMode
@ -137,7 +137,7 @@ FirstInit
ADD A,'A' ADD A,'A'
LD (ShellFile),a ; fndosln.z80 LD (ShellFile),a ; fndosln.z80
SPDSS DSSF.CURDISK SPDSS DSSF.CURDISK
LD HL,LeftPanel + PANEL.CURRPATH LD HL,LeftPanel + PANEL.CURR_PATH
PUSH HL PUSH HL
ADD A,'A' ADD A,'A'
LD (HL),A LD (HL),A
@ -146,17 +146,30 @@ FirstInit
INC HL INC HL
SPDSS DSSF.CURDIR SPDSS DSSF.CURDIR
POP HL POP HL
LD DE,RightPanel + PANEL.CURRPATH LD DE,RightPanel + PANEL.CURR_PATH
LD BC,0x0100 LD BC,0x0100
LDIR LDIR
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
LD A,(RAMPAGES.FNFUNCT) LD A,(RAMPAGES.FNREZ2)
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD HL,FlexDIRECTORY LD HL,BUF_REZ2.FlexDIRECTORY
SPDSS DSSF.APPINFO,1 SPDSS DSSF.APPINFO,1
JP C,.L5 JP C,.L5
LD HL,FlexDIRECTORY ; á®§¤ ­¨¥ ¯ã⨠¤«ï § ¯ã᪠ FLX ¯« £¨­®¢ á ¯à¨¢ï§ª®© ª ¯ã⨠FN
LD HL,BUF_REZ2.FlexDIRECTORY
LD DE,BUF_REZ2.FLXdir
.L6 LD A,(HL)
AND A
JR Z,.L7
LDI
JR .L6
.L7 LD HL,.DIRFLX
LD BC,.EDIRFLX - .DIRFLX
LDIR
LD (LOADFLX4RUN.NAMEFLX),DE
LD HL,BUF_REZ2.FlexDIRECTORY
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
JP C,.L5 JP C,.L5
LD HL,SetupName LD HL,SetupName
@ -203,7 +216,7 @@ FirstInit
LDI LDI
POP DE POP DE
EX DE,HL EX DE,HL
LD BC,PANEL.FILEMASK LD BC,PANEL.FILE_MASK
ADD HL,BC ADD HL,BC
EX DE,HL EX DE,HL
SUB A SUB A
@ -219,7 +232,7 @@ FirstInit
LDI LDI
POP DE POP DE
EX DE,HL EX DE,HL
LD BC,PANEL.FILEMASK LD BC,PANEL.FILE_MASK
ADD HL,BC ADD HL,BC
EX DE,HL EX DE,HL
SUB A SUB A
@ -235,15 +248,18 @@ FirstInit
.L5 POP AF .L5 POP AF
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD DE,InitExtention LD DE,InitExtention
LD A,(RAMPAGES.FNHELP) LD A,(RAMPAGES.FNREZ3)
LD C,WINSP.CPU1 LD C,WINSP.CPU1
CALL Resident CALL Resident
LD HL,LeftPanel + PANEL.CURRPATH LD HL,LeftPanel + PANEL.CURR_PATH
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
LD A,0x01 LD A,0x01
LD (InitFlg),A LD (InitFlg),A
RET RET
.DIRFLX DB "FLX\\"
.EDIRFLX
; ®¡­®¢«¥­¨¥ ¢ â ¡«¨æ¥ ¢ë¡®à  ¤¨áª®¢ ­  ¯ ­¥«¨ ; ®¡­®¢«¥­¨¥ ¢ â ¡«¨æ¥ ¢ë¡®à  ¤¨áª®¢ ­  ¯ ­¥«¨
SETUP_DISKS LD HL,BgDISKl ; ¤¨áª¨ «¥¢®© ¯ ­¥«¨ SETUP_DISKS LD HL,BgDISKl ; ¤¨áª¨ «¥¢®© ¯ ­¥«¨
LD DE,BgDISKr ; ¤¨áª¨ ¯à ¢®© ¯ ­¥«¨ LD DE,BgDISKr ; ¤¨áª¨ ¯à ¢®© ¯ ­¥«¨
@ -352,7 +368,7 @@ InitPanTree LD IY,LeftPanel
LD IY,RightPanel LD IY,RightPanel
.L1 CALL InitPanelE .L1 CALL InitPanelE
InitPanExit LD HL,LeftPanel InitPanExit LD HL,LeftPanel
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
BIT 7,(HL) BIT 7,(HL)
JR NZ,.L2 JR NZ,.L2
LD HL,RightPanel LD HL,RightPanel
@ -374,8 +390,8 @@ InitPanelE LD A,(InitPanFlg)
LD A,(IY+PANEL.VIEWFLAG) LD A,(IY+PANEL.VIEWFLAG)
AND VIEWFLAG.MASK AND VIEWFLAG.MASK
JP NZ,InitPPanel JP NZ,InitPPanel
LD L,(IY+PANEL.XL) LD L,(IY+PANEL.X)
LD H,(IY+PANEL.XH) LD H,(IY+PANEL.X + 1)
LD (PanelN1),HL LD (PanelN1),HL
INC HL INC HL
INC HL INC HL
@ -389,23 +405,23 @@ InitPanelE LD A,(InitPanFlg)
LD (PanelN4),HL LD (PanelN4),HL
LD (Nbut1+2),HL LD (Nbut1+2),HL
LD (Nbar1),HL LD (Nbar1),HL
LD (IY+PANEL.BARXL),L LD (IY+PANEL.BAR_X),L
LD (IY+PANEL.BARXH),H LD (IY+PANEL.BAR_X + 1),H
LD (IY+PANEL.BARYL),0xC9 LD (IY+PANEL.BAR_Y),0xC9
LD (IY+PANEL.BARYH),0x00 LD (IY+PANEL.BAR_Y + 1),0x00
LD DE,0x0114 LD DE,0x0114
ADD HL,DE ADD HL,DE
LD (PanelN5),HL LD (PanelN5),HL
LD (Nbar2+2),HL LD (Nbar2+2),HL
LD (Nbut2),HL LD (Nbut2),HL
LD (IY+PANEL.BARMLL),E LD (IY+PANEL.BAR_MAX),E
LD (IY+PANEL.BARMLH),D LD (IY+PANEL.BAR_MAX + 1),D
LD DE,0x0010 LD DE,0x0010
ADD HL,DE ADD HL,DE
LD (Nbut2+2),HL LD (Nbut2+2),HL
LD (Nfile+2),HL LD (Nfile+2),HL
LD (IY+PANEL.FPL),0x33 LD (IY+PANEL.FILES_PAGE),0x33
LD (IY+PANEL.FPH),0x00 LD (IY+PANEL.FILES_PAGE + 1),0x00
; Šà âª ï ¯ ­¥«ì ; Šà âª ï ¯ ­¥«ì
MAKEWINDOW WINSUBOBJ.WOBIND MAKEWINDOW WINSUBOBJ.WOBIND
PanelN1 EQU $+1 PanelN1 EQU $+1
@ -433,12 +449,12 @@ PanelN6 EQU $+1
POP HL POP HL
LD C,0x32 LD C,0x32
ADD HL,BC ADD HL,BC
LD (IY+PANEL.BARLFL),L LD (IY+PANEL.BAR_ADR_LEFT),L
LD (IY+PANEL.BARLFH),H LD (IY+PANEL.BAR_ADR_LEFT + 1),H
LD C,0x0E LD C,0x0E
ADD HL,BC ADD HL,BC
LD (IY+PANEL.BARRTL),L LD (IY+PANEL.BAR_ADR_RIGHT),L
LD (IY+PANEL.BARRTH),H LD (IY+PANEL.BAR_ADR_RIGHT + 1),H
JP InitPanEx JP InitPanEx
NormMouse NormMouse
@ -449,8 +465,8 @@ Nbar1 DEFW 0, 0,201,209,%0000000000000000,0,PageUp,0
Nbar2 DEFW 0, 0,201,209,%0000000000000000,0,PageDown,0 Nbar2 DEFW 0, 0,201,209,%0000000000000000,0,PageDown,0
; <20>®¤à®¡­ ï ¯ ­¥«ì ¨ ¯ ­¥«ì á ¤¥à¥¢®¬ ; <20>®¤à®¡­ ï ¯ ­¥«ì ¨ ¯ ­¥«ì á ¤¥à¥¢®¬
InitPPanel LD L,(IY+PANEL.XL) InitPPanel LD L,(IY+PANEL.X)
LD H,(IY+PANEL.XH) LD H,(IY+PANEL.X + 1)
LD (PanelP1),HL LD (PanelP1),HL
INC HL INC HL
INC HL INC HL
@ -467,20 +483,20 @@ InitPPanel LD L,(IY+PANEL.XL)
LD (Pbar1),HL LD (Pbar1),HL
LD (Pbar2),HL LD (Pbar2),HL
LD (Pfile+2),HL LD (Pfile+2),HL
LD (IY+PANEL.BARXL),L LD (IY+PANEL.BAR_X),L
LD (IY+PANEL.BARXH),H LD (IY+PANEL.BAR_X + 1),H
LD DE,0x0010 LD DE,0x0010
ADD HL,DE ADD HL,DE
LD (Pbut1+2),HL LD (Pbut1+2),HL
LD (Pbut2+2),HL LD (Pbut2+2),HL
LD (Pbar1+2),HL LD (Pbar1+2),HL
LD (Pbar2+2),HL LD (Pbar2+2),HL
LD (IY+PANEL.BARYL),0x44 LD (IY+PANEL.BAR_Y),0x44
LD (IY+PANEL.BARYH),0x00 LD (IY+PANEL.BAR_Y + 1),0x00
LD (IY+PANEL.BARMLL),0x85 LD (IY+PANEL.BAR_MAX),0x85
LD (IY+PANEL.BARMLH),0x00 LD (IY+PANEL.BAR_MAX + 1),0x00
LD (IY+PANEL.FPL),0x12 LD (IY+PANEL.FILES_PAGE),0x12
LD (IY+PANEL.FPH),0x00 LD (IY+PANEL.FILES_PAGE + 1),0x00
MAKEWINDOW WINSUBOBJ.WOBIND MAKEWINDOW WINSUBOBJ.WOBIND
PanelP1 EQU $+1 PanelP1 EQU $+1
W_BORDER 0,59,312,151 W_BORDER 0,59,312,151
@ -507,12 +523,12 @@ PanelP6 EQU $+1
POP HL POP HL
LD BC,0x0036 LD BC,0x0036
ADD HL,BC ADD HL,BC
LD (IY+PANEL.BARLFL),L LD (IY+PANEL.BAR_ADR_LEFT),L
LD (IY+PANEL.BARLFH),H LD (IY+PANEL.BAR_ADR_LEFT + 1),H
LD BC,0x000E LD BC,0x000E
ADD HL,BC ADD HL,BC
LD (IY+PANEL.BARRTL),L LD (IY+PANEL.BAR_ADR_RIGHT),L
LD (IY+PANEL.BARRTH),H LD (IY+PANEL.BAR_ADR_RIGHT + 1),H
JP InitPanEx JP InitPanEx
PodrMouse PodrMouse
@ -528,7 +544,7 @@ InitPanEx LD A,(InitPanFlg)
PUSH IY PUSH IY
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
POP IY POP IY
@ -539,7 +555,7 @@ InitPanEx LD A,(InitPanFlg)
POP IY POP IY
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
ADD A,'A' ADD A,'A'
LD (HL),A LD (HL),A
@ -560,7 +576,7 @@ InitPanEx LD A,(InitPanFlg)
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
LD A,(IY+PANEL.VIEWFLAG) LD A,(IY+PANEL.VIEWFLAG)
@ -584,12 +600,12 @@ InitPanEx LD A,(InitPanFlg)
PUSH IY PUSH IY
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD IY,RightPanel LD IY,RightPanel
LD HL,LeftPanel + PANEL.CURRPATH LD HL,LeftPanel + PANEL.CURR_PATH
LD DE,RightPanel + PANEL.CURRPATH LD DE,RightPanel + PANEL.CURR_PATH
JR Z,.L3 JR Z,.L3
LD IY,LeftPanel LD IY,LeftPanel
LD HL,RightPanel + PANEL.CURRPATH LD HL,RightPanel + PANEL.CURR_PATH
LD DE,LeftPanel + PANEL.CURRPATH LD DE,LeftPanel + PANEL.CURR_PATH
.L3 SUB A .L3 SUB A
.L4 LDI .L4 LDI
CP (HL) CP (HL)

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 03.06.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
;[]=======================================================================[] ;[]=======================================================================[]
; FLEX NAVIGATOR ; ; FLEX NAVIGATOR ;
@ -99,11 +99,15 @@ MouseFlag DB 1 ;
CMOSPrint: DB 1 CMOSPrint: DB 1
RAMPAGES RAMPAGES
.FNPAGESID DB 0 ; ˆ­¤¥ä.¯ ¬ï⨠£¤¥ FN .FNPAGESID DB 0 ; ˆ­¤¥ä.¯ ¬ï⨠£¤¥ FN
.FNFUNCT DB 0 ; ‘âà ­¨æ  á äã­ªæ¨ï¬¨ FN .FNREZ2 DB 0 ; ‘âà ­¨æ  á äã­ªæ¨ï¬¨ FN
.FNVIEW DB 0 ; ‘âà ­¨æ  á FileViewer
.FNEDIT DB 0 ; ‘âà ­¨æ  á FileEditor
.FNHELP DB 0 ; ‘âà ­¨æ  FN HELP
.FNFONT DB 0 ; ‘âà ­¨æ  èà¨ä⮢ .FNFONT DB 0 ; ‘âà ­¨æ  èà¨ä⮢
.FNREZ3 DB 0 ; ‘âà ­¨æ  ¥é¥ ­¥¬­®£® ä㭪権 FN
IFDEF ENABLE.VIEW
.FNVIEW DB 0 ; ‘âà ­¨æ  á FileViewer
ENDIF
IFDEF ENABLE.EDIT
.FNEDIT DB 0 ; ‘âà ­¨æ  á FileEditor
ENDIF
.BufferID DB 0 ; ˆ­¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ¡ãä¥à  .BufferID DB 0 ; ˆ­¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ¡ãä¥à 
.FLX DB 0 ; ‘âà ­¨æ  ¤«ï ¯®¤£à㧪¨ FLX ¯à®á¬®âà. FLX ã⨫¨â .FLX DB 0 ; ‘âà ­¨æ  ¤«ï ¯®¤£à㧪¨ FLX ¯à®á¬®âà. FLX ã⨫¨â
.LEFTPANEL DB 0 ; ‘âà ­¨æ  ª â «®£  ‹¥¢®© ¯ ­¥«¨ .LEFTPANEL DB 0 ; ‘âà ­¨æ  ª â «®£  ‹¥¢®© ¯ ­¥«¨
@ -139,7 +143,7 @@ RAMPAGES
DOSError EX AF,AF' DOSError EX AF,AF'
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
LD A,(RAMPAGES.FNFUNCT) LD A,(RAMPAGES.FNREZ2)
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
EX AF,AF' EX AF,AF'
CALL DOSErrorR CALL DOSErrorR
@ -149,6 +153,17 @@ DOSError EX AF,AF'
EX AF,AF' EX AF,AF'
RET RET
;[]----------------------------------------------------------[]
Resident LD (.ResCall),DE
IN B,(C)
PUSH BC
OUT (C),A
CALL 0x0000
.ResCall EQU $-2
POP BC
OUT (C),B
RET
include fnwin.a80 include fnwin.a80
include fnprint.a80 include fnprint.a80
include fninput.a80 include fninput.a80
@ -317,7 +332,7 @@ LeftPanel: DB 0x80 ;
DB 0 DB 0
DB "*.*" ; Ma᪠ ¤«ï ä ©«®¢ DB "*.*" ; Ma᪠ ¤«ï ä ©«®¢
DB 0x0A DUP 0 DB 0x0A DUP 0
DB 0x100 DUP 0 ; <20>ãâì ª ⥪ã饩 ¤¨à¥ªâ®à¨¨ DB PANEL.CURR_PATH_Size DUP 0 ; <20>ãâì ª ⥪ã饩 ¤¨à¥ªâ®à¨¨
RightPanel: DB 0x01 ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®á⨠RightPanel: DB 0x01 ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨ ; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
@ -348,7 +363,7 @@ RightPanel: DB 0x01 ;
DB 0 DB 0
DB "*.*" ; Ma᪠ ¤«ï ä ©«®¢ DB "*.*" ; Ma᪠ ¤«ï ä ©«®¢
DB 0x0A DUP 0 DB 0x0A DUP 0
DB 0x100 DUP 0 ; <20>ãâì ª ⥪ã饩 ¤¨à¥ªâ®à¨¨ DB PANEL.CURR_PATH_Size DUP 0 ; <20>ãâì ª ⥪ã饩 ¤¨à¥ªâ®à¨¨
;[]=======================================================================[] ;[]=======================================================================[]
@ -370,7 +385,7 @@ RESIDENT
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
.CopyFiles: LD DE,CopyFilesR .CopyFiles: LD DE,CopyFilesR
; resident 2 ; resident 2
.FunctResident: LD A,(RAMPAGES.FNFUNCT) .FunctResident: LD A,(RAMPAGES.FNREZ2)
LD C,WINSP.CPU1 LD C,WINSP.CPU1
JP Resident JP Resident
@ -450,13 +465,16 @@ RESIDENT
;[]==========================================================[] ;[]==========================================================[]
.MarkFile: LD DE,MarkFileR .MarkFile: LD DE,MarkFileR
; resident 3 ; resident 3
.HelpResident: LD A,(RAMPAGES.FNHELP) .HelpResident: LD A,(RAMPAGES.FNREZ3)
LD C,WINSP.CPU1 LD C,WINSP.CPU1
JP Resident JP Resident
IF MARK_DIR IF MARK_DIR
.GetDirSize: LD DE,GetDirSizeR .GetDirSize: LD DE,GetDirSizeR
JR .HelpResident JR .HelpResident
.MkdirsDst LD DE,MkdirsDstR
JR .HelpResident
ENDIF ENDIF
.UnMarkGroup: LD DE,UnMarkGroupR .UnMarkGroup: LD DE,UnMarkGroupR
@ -498,9 +516,10 @@ END_BLOCK_1:
;[]=======================================================================[] ;[]=======================================================================[]
PHASE 0x4000 PHASE 0x4000
; section .text ; MAIN.FNREZ2
START_BLOCK_2 START_BLOCK_2
FlexDIRECTORY: DB 0x100 DUP 0 ;FlexDIRECTORY: DB 0x100 DUP 0
;FLXdir: DB 0x100 DUP 0
include rez2_fnfunct.a80 include rez2_fnfunct.a80
include rez2_fnmisc.a80 include rez2_fnmisc.a80
@ -514,43 +533,9 @@ FlexDIRECTORY: DB 0x100 DUP 0
END_BLOCK_2: END_BLOCK_2:
DEPHASE ; 0x4000 DEPHASE ; 0x4000
START_BLOCK_EDITOR
PHASE 0xC000
include plugins/fnviewer/fviewer.a80
DEPHASE ; 0xC000
END_BLOCK_EDITOR
START_BLOCK_VIEWER
PHASE 0xC000
include plugins/fneditor/feditor.a80
DEPHASE ; 0xC000
END_BLOCK_VIEWER
;[]-----------------------------------------------------------------------[]
PHASE 0x4000
; section .text
START_BLOCK_3
DOShistory: DB DOShistory_Size DUP 0 ;times 0x200 db 0
fn_ext: DB WorkBuffer_Size DUP 0 ;times 0x400 db 0
fnview_ext: DB WorkBuffer_Size DUP 0 ;times 0x400 db 0
fnedit_ext: DB WorkBuffer_Size DUP 0 ;times 0x400 db 0
include rez3_fnnext.a80
include rez3_fnmark.a80
WINSP_CPU EQU WINSP.CPU3 ; ®ª­® ¯à®¥æ¨à®¢ ­¨ï
WINSP_ADR EQU 0xC000 ;  ¤à¥á ®ª­ 
include plugins/help/help.a80
HelpText: include plugins/help/help_t.a80
HelpTextEnd:
END_BLOCK_3:
DEPHASE ; 0x4000
;[]=======================================================================[] ;[]=======================================================================[]
PHASE 0xC000 PHASE 0xC000
; section .data ; MAIN.FNFONT
START_BLOCK_4 START_BLOCK_4
FONT_RAW_PACK binclude tmp/font_raw.pack FONT_RAW_PACK binclude tmp/font_raw.pack
@ -560,11 +545,59 @@ IFFFONT_RAW_END
END_BLOCK_4: END_BLOCK_4:
DEPHASE ; 0xC000 DEPHASE ; 0xC000
;[]-----------------------------------------------------------------------[]
PHASE 0x4000
; MAIN.FNREZ3
START_BLOCK_3
include rez3_fnnext.a80
include rez3_fnmark.a80
; ¡ãä¥à  çâ®¡ë ¯ ¬ïâì ­¥ § ­¨¬ «¨ ¢ EXE ä ©«¥
INIT_VAR 0x8000 ; á ª®­æ  áâà ­¨æë
MINUSVAR fnedit_ext, WorkBuffer_Size ;times 0x400 db 0
MINUSVAR fnview_ext, WorkBuffer_Size ;times 0x400 db 0
MINUSVAR fn_ext, WorkBuffer_Size ;times 0x400 db 0
MINUSVAR DOShistory, 0x200 ;times 0x200 db 0
IFDEF ENABLE.HELP
WINSP_CPU EQU WINSP.CPU3 ; ®ª­® ¯à®¥æ¨à®¢ ­¨ï
WINSP_ADR EQU 0xC000 ;  ¤à¥á ®ª­ 
include plugins/help/help.a80
HelpText: include plugins/help/help_t.a80
HelpTextEnd:
ENDIF
END_BLOCK_3:
DEPHASE ; 0x4000
;[]-----------------------------------------------------------------------[]
IFDEF ENABLE.VIEW
; MAIN.FNVIEW
START_BLOCK_VIEWER
PHASE 0xC000
include plugins/fnviewer/fviewer.a80
DEPHASE ; 0xC000
END_BLOCK_VIEWER
ENDIF
IFDEF ENABLE.EDIT
; MAIN.FNEDIT
START_BLOCK_EDITOR
PHASE 0xC000
include plugins/fneditor/feditor.a80
DEPHASE ; 0xC000
END_BLOCK_EDITOR
ENDIF
;[]-----------------------------------------------------------------------[]
; ç¨áâ® ¤«ï ®â« ¤ª¨ ; ç¨áâ® ¤«ï ®â« ¤ª¨
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 ; १¨¤¥­â 2 BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १¨¤¥­â 2
BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १¨¤¥­â 3 BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १¨¤¥­â 3
IFDEF ENABLE.EDIT
EDITOR_SIZE EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR ; । ªâ®à EDITOR_SIZE EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR ; । ªâ®à
ENDIF
IFDEF ENABLE.VIEW
VIEWER_SIZE EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER ; ¢ìà VIEWER_SIZE EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER ; ¢ìà
ENDIF
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

@ -1,5 +1,5 @@
; LAST UPDATE: 27.05.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
PullDown: CALL ResInvert PullDown: CALL ResInvert
@ -93,15 +93,15 @@ PullInvert: LD L,A
ADD HL,BC ADD HL,BC
PUSH HL PUSH HL
POP IX POP IX
LD L,(IX + FORMTABL.XMINL) LD L,(IX + FORMTABL.X_MIN)
LD H,(IX + FORMTABL.XMINH) LD H,(IX + FORMTABL.X_MIN + 1)
LD C,(IX + FORMTABL.YMINL) LD C,(IX + FORMTABL.Y_MIN)
LD B,(IX + FORMTABL.YMINH) LD B,(IX + FORMTABL.Y_MIN + 1)
LD A,(IX + FORMTABL.XMAXL) LD A,(IX + FORMTABL.X_MAX)
SUB (IX + FORMTABL.XMINL) SUB (IX + FORMTABL.X_MIN)
EX AF,AF' EX AF,AF'
LD A,(IX + FORMTABL.YMAXL) LD A,(IX + FORMTABL.Y_MAX)
SUB (IX + FORMTABL.YMINL) SUB (IX + FORMTABL.Y_MIN)
LD IXH,A LD IXH,A
EX AF,AF' EX AF,AF'
SRL A SRL A
@ -268,7 +268,7 @@ MenuView: CALL ResInvert
LD (MenuView.sort5),A LD (MenuView.sort5),A
PUSH IY PUSH IY
POP HL POP HL
LD BC,PANEL.FILEMASK LD BC,PANEL.FILE_MASK
ADD HL,BC ADD HL,BC
LD DE,MenuView.Tfilter LD DE,MenuView.Tfilter
LD C,STRLEN("*.* ");0x0C LD C,STRLEN("*.* ");0x0C
@ -406,7 +406,7 @@ CurWTab EQU $-2
RET RET
TestInvert: LD HL,(CurWTab) TestInvert: LD HL,(CurWTab)
LD DE,FORMTABL.FLAGH LD DE,FORMTABL.FLAG + 1
ADD HL,DE ADD HL,DE
LD A,0 LD A,0
MaxLines EQU $-1 MaxLines EQU $-1
@ -554,19 +554,19 @@ ChangeSet: CALL TestInvert
ADD HL,BC ADD HL,BC
PUSH HL PUSH HL
POP IX POP IX
LD C,(IX + FORMTABL.FIRELEFTL) ; § ¯ã᪠¯® «¥¢®© ª­®¯ª¥ LD C,(IX + FORMTABL.FIRE_LEFT) ; § ¯ã᪠¯® «¥¢®© ª­®¯ª¥
LD B,(IX + FORMTABL.FIRELEFTH) LD B,(IX + FORMTABL.FIRE_LEFT + 1)
LD A,B LD A,B
OR C OR C
RET Z RET Z
BIT FORMTABL.B_EXECNORETLMB,(IX + FORMTABL.FLAGL) ; § ¯ã᪠¡¥§ ¢®§¢à â  BIT FORMTABL.B_EXECNORETLMB,(IX + FORMTABL.FLAG) ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1 JR Z,.L1
POP AF POP AF
.L1 PUSH BC .L1 PUSH BC
BIT FORMTABL.B_INV1,(IX + FORMTABL.FLAGL) BIT FORMTABL.B_INV1,(IX + FORMTABL.FLAG)
CALL NZ,ResSelect1 CALL NZ,ResSelect1
CALL ResSelect2 CALL ResSelect2
BIT FORMTABL.B_CLOSEWIN,(IX + FORMTABL.FLAGH) BIT FORMTABL.B_CLOSEWIN,(IX + FORMTABL.FLAG + 1)
RET Z RET Z
WINDOWCLOSE WINDOWCLOSE
RET RET
@ -792,7 +792,7 @@ NewFilter: CALL ResInvert
W_END W_END
PUSH IY PUSH IY
POP HL POP HL
LD BC,PANEL.FILEMASK LD BC,PANEL.FILE_MASK
ADD HL,BC ADD HL,BC
LD DE,CurFilt LD DE,CurFilt
SUB A SUB A
@ -817,7 +817,7 @@ NewFilter: CALL ResInvert
RET NC RET NC
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.FILEMASK LD DE,PANEL.FILE_MASK
ADD HL,DE ADD HL,DE
EX DE,HL EX DE,HL
LD HL,CurFilt LD HL,CurFilt
@ -944,7 +944,7 @@ ChangeDrv: PUSH IY
JR NZ,.Drive1 JR NZ,.Drive1
LD (IX+0x00),0x00 LD (IX+0x00),0x00
LD (IX+0x01),0x80 LD (IX+0x01),0x80
LD A,(IY + PANEL.CURRPATH) LD A,(IY + PANEL.CURR_PATH)
SUB 'A' SUB 'A'
LD (CurDrive),A LD (CurDrive),A
CALL SetDriveInv CALL SetDriveInv
@ -1032,7 +1032,7 @@ DriveEnter: LD A,(CurDrive)
SetDrive: LD HL,NewDrive SetDrive: LD HL,NewDrive
ADD A,'A' ADD A,'A'
LD (HL),A LD (HL),A
LD (IY+PANEL.CURRPATH),0x00 LD (IY+PANEL.CURR_PATH),0x00
WINDOWCLOSE WINDOWCLOSE
EX (SP),IY EX (SP),IY
CALL SetInvert CALL SetInvert
@ -1056,7 +1056,7 @@ AutoActivatePanel EQU $-1
BIT 7,(HL) BIT 7,(HL)
JR NZ,.readDir JR NZ,.readDir
LD HL,RightPanel LD HL,RightPanel
.readDir: LD DE,PANEL.CURRPATH .readDir: LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
POP IY POP IY
@ -1078,15 +1078,15 @@ DriveInvert: LD L,A
ADD HL,BC ADD HL,BC
PUSH HL PUSH HL
POP IX POP IX
LD L,(IX + FORMTABL.XMINL) LD L,(IX + FORMTABL.X_MIN)
LD H,(IX + FORMTABL.XMINH) LD H,(IX + FORMTABL.X_MIN + 1)
LD C,(IX + FORMTABL.YMINL) LD C,(IX + FORMTABL.Y_MIN)
LD B,(IX + FORMTABL.YMINH) LD B,(IX + FORMTABL.Y_MIN + 1)
LD A,(IX + FORMTABL.XMAXL) LD A,(IX + FORMTABL.X_MAX)
SUB (IX + FORMTABL.XMINL) SUB (IX + FORMTABL.X_MIN)
EX AF,AF' EX AF,AF'
LD A,(IX + FORMTABL.YMAXL) LD A,(IX + FORMTABL.Y_MAX)
SUB (IX + FORMTABL.YMINL) SUB (IX + FORMTABL.Y_MIN)
LD IXH,A LD IXH,A
EX AF,AF' EX AF,AF'
SRL A SRL A

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 20.04.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
ResFire: LD A,(MouseFlag) ResFire: LD A,(MouseFlag)
@ -57,27 +57,27 @@ TestCoords: CALL TestCMOS
RET Z RET Z
.L4 LD (.PrMousX),HL .L4 LD (.PrMousX),HL
LD (.PrMousY),DE LD (.PrMousY),DE
CoordLp LD C,(IX+FORMTABL.XMINL) ; 00 CoordLp LD C,(IX+FORMTABL.X_MIN) ; 00
LD B,(IX+FORMTABL.XMINH) ; 01 LD B,(IX+FORMTABL.X_MIN + 1) ; 01
OR A OR A
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
JP C,NxtCrds JP C,NxtCrds
LD C,(IX+FORMTABL.XMAXL) ; 02 LD C,(IX+FORMTABL.X_MAX) ; 02
LD B,(IX+FORMTABL.XMAXH) ; 03 LD B,(IX+FORMTABL.X_MAX + 1) ; 03
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
JP NC,NxtCrds JP NC,NxtCrds
LD C,(IX+FORMTABL.YMINL) ; 04 LD C,(IX+FORMTABL.Y_MIN) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05 LD B,(IX+FORMTABL.Y_MIN + 1) ; 05
OR A OR A
EX DE,HL EX DE,HL
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
EX DE,HL EX DE,HL
JP C,NxtCrds JP C,NxtCrds
LD C,(IX+FORMTABL.YMAXL) ; 06 LD C,(IX+FORMTABL.Y_MAX) ; 06
LD B,(IX+FORMTABL.YMAXH) ; 07 LD B,(IX+FORMTABL.Y_MAX + 1) ; 07
EX DE,HL EX DE,HL
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
@ -88,9 +88,9 @@ CoordLp LD C,(IX+FORMTABL.XMINL) ; 00
OR A OR A
LD A,C LD A,C
JR Z,CoordL1 JR Z,CoordL1
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08
CALL NZ,SetSelect1 CALL NZ,SetSelect1
CoordL1 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08 CoordL1 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAG) ; 08
CALL NZ,SetSelect2 CALL NZ,SetSelect2
LD C,0x00 LD C,0x00
RunFlag EQU $-1 RunFlag EQU $-1
@ -105,63 +105,63 @@ RunFlag EQU $-1
JR Z,Execute1 JR Z,Execute1
BIT 0,A BIT 0,A
JR Z,Execute2 JR Z,Execute2
BIT FORMTABL.B_BUTTON,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_BUTTON,(IX+FORMTABL.FLAG) ; 08
CALL NZ,PushButton CALL NZ,PushButton
CCF CCF
RET NC RET NC
OR A OR A
BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGL) ; 08 ; à ¡®ç ï ª­®¯ª  BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAG) ; 08 ; à ¡®ç ï ª­®¯ª 
RET NZ RET NZ
LD C,(IX+FORMTABL.FIRELEFTL) ; 0C ; § ¯ã᪠¯® «¥¢®© ª­®¯ª¥ LD C,(IX+FORMTABL.FIRE_LEFT) ; 0C ; § ¯ã᪠¯® «¥¢®© ª­®¯ª¥
LD B,(IX+FORMTABL.FIRELEFTH) ; 0D LD B,(IX+FORMTABL.FIRE_LEFT + 1) ; 0D
LD A,B LD A,B
OR C OR C
JP Z,NxtCrds1 JP Z,NxtCrds1
BIT FORMTABL.B_EXECNORETLMB,(IX+FORMTABL.FLAGL) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â  BIT FORMTABL.B_EXECNORETLMB,(IX+FORMTABL.FLAG) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1 JR Z,.L1
POP AF POP AF
.L1 PUSH BC .L1 PUSH BC
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08
CALL NZ,ResSelect1 CALL NZ,ResSelect1
CALL ResSelect2 CALL ResSelect2
OR A OR A
BIT FORMTABL.B_CLOSEWIN,(IX+FORMTABL.FLAGH) ; 09 BIT FORMTABL.B_CLOSEWIN,(IX+FORMTABL.FLAG + 1) ; 09
RET Z RET Z
WINDOWCLOSE WINDOWCLOSE
RET RET
Execute1 LD C,(IX+FORMTABL.FIRENOL) ; 0A ; § ¯ã᪠¡¥§ ®£­ï Execute1 LD C,(IX+FORMTABL.FIRE_NOFIRE) ; 0A ; § ¯ã᪠¡¥§ ®£­ï
LD B,(IX+FORMTABL.FIRENOH) ; 0B LD B,(IX+FORMTABL.FIRE_NOFIRE + 1) ; 0B
LD A,B LD A,B
OR C OR C
JR Z,NxtCrds1 JR Z,NxtCrds1
BIT FORMTABL.B_EXECONLY,(IX+FORMTABL.FLAGL) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â  BIT FORMTABL.B_EXECONLY,(IX+FORMTABL.FLAG) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1 JR Z,.L1
POP AF POP AF
.L1 PUSH BC .L1 PUSH BC
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08
CALL NZ,ResSelect1 CALL NZ,ResSelect1
CALL ResSelect2 CALL ResSelect2
OR A OR A
BIT FORMTABL.B_EXECNOPRESS,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_EXECNOPRESS,(IX+FORMTABL.FLAG) ; 08
RET Z RET Z
WINDOWCLOSE WINDOWCLOSE
RET RET
Execute2 LD C,(IX+FORMTABL.FIRERIGHTL) ; 0E ; § ¯ã᪠¯® ¯à ¢®© ª­®¯ª¥ Execute2 LD C,(IX+FORMTABL.FIRE_RIGHT) ; 0E ; § ¯ã᪠¯® ¯à ¢®© ª­®¯ª¥
LD B,(IX+FORMTABL.FIRERIGHTH) ; 0F LD B,(IX+FORMTABL.FIRE_RIGHT + 1) ; 0F
LD A,B LD A,B
OR C OR C
JR Z,NxtCrds1 JR Z,NxtCrds1
BIT FORMTABL.B_EXECNORETRMB,(IX+FORMTABL.FLAGL) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â  BIT FORMTABL.B_EXECNORETRMB,(IX+FORMTABL.FLAG) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1 JR Z,.L1
POP AF POP AF
.L1 PUSH BC .L1 PUSH BC
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08
CALL NZ,ResSelect1 CALL NZ,ResSelect1
CALL ResSelect2 CALL ResSelect2
OR A OR A
BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGH) ; 09 BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAG + 1) ; 09
RET Z RET Z
WINDOWCLOSE WINDOWCLOSE
RET RET
@ -171,13 +171,13 @@ NxtCrds LD C,A
OR A OR A
LD A,C LD A,C
JR Z,NxtCrds0 JR Z,NxtCrds0
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08
CALL NZ,ResSelect1 CALL NZ,ResSelect1
NxtCrds0 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08 NxtCrds0 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAG) ; 08
CALL NZ,SetSelect2 CALL NZ,SetSelect2
NxtCrds1 LD BC,FORMTABL.SIZE;0x0010 NxtCrds1 LD BC,FORMTABL.SIZE;0x0010
ADD IX,BC ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; ª®­¥æ â ¡«¨æë? BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1) ; ª®­¥æ â ¡«¨æë?
JP Z,CoordLp JP Z,CoordLp
OR A OR A
RET RET
@ -187,10 +187,10 @@ ResMInvert PUSH IX
PUSH DE PUSH DE
PUSH AF PUSH AF
LD BC,FORMTABL.SIZE;0x0010 LD BC,FORMTABL.SIZE;0x0010
ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09
RES 6,(IX+FORMTABL.FLAGH) ; 09 RES FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09
ADD IX,BC ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1)
JR Z,ResCrds JR Z,ResCrds
POP AF POP AF
POP DE POP DE
@ -198,22 +198,22 @@ ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
POP IX POP IX
RET RET
SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09
RET NZ RET NZ
SET FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 SET FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09
PUSH AF PUSH AF
PUSH HL PUSH HL
PUSH DE PUSH DE
PUSH IX PUSH IX
LD L,(IX+FORMTABL.XMINL) ; 00 LD L,(IX+FORMTABL.X_MIN) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01 LD H,(IX+FORMTABL.X_MIN + 1) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04 LD C,(IX+FORMTABL.Y_MIN) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05 LD B,(IX+FORMTABL.Y_MIN + 1) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02 LD A,(IX+FORMTABL.X_MAX) ; 02
SUB (IX+FORMTABL.XMINL) ; 00 SUB (IX+FORMTABL.X_MIN) ; 00
EX AF,AF' EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06 LD A,(IX+FORMTABL.Y_MAX) ; 06
SUB (IX+FORMTABL.YMINL) ; 04 SUB (IX+FORMTABL.Y_MIN) ; 04
LD IXH,A LD IXH,A
EX AF,AF' EX AF,AF'
SRL A SRL A
@ -224,9 +224,9 @@ SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
PUSH IX PUSH IX
NxCrds1 LD BC,FORMTABL.SIZE;0x0010 NxCrds1 LD BC,FORMTABL.SIZE;0x0010
ADD IX,BC ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; 01 ; ¯à®¢¥àª  ª®­æ  â ¡«¨æë? BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1) ; 01 ; ¯à®¢¥àª  ª®­æ  â ¡«¨æë?
JR NZ,NxCrds2 JR NZ,NxCrds2
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08
CALL NZ,ResSelect1 CALL NZ,ResSelect1
JR NxCrds1 JR NxCrds1
@ -236,21 +236,21 @@ NxCrds2 POP IX
POP AF POP AF
RET RET
ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09
RET Z RET Z
RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09
PUSH IX PUSH IX
PUSH HL PUSH HL
PUSH DE PUSH DE
LD L,(IX+FORMTABL.XMINL) ; 00 LD L,(IX+FORMTABL.X_MIN) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01 LD H,(IX+FORMTABL.X_MIN + 1) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04 LD C,(IX+FORMTABL.Y_MIN) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05 LD B,(IX+FORMTABL.Y_MIN + 1) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02 LD A,(IX+FORMTABL.X_MAX) ; 02
SUB (IX+FORMTABL.XMINL) ; 00 SUB (IX+FORMTABL.X_MIN) ; 00
EX AF,AF' EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06 LD A,(IX+FORMTABL.Y_MAX) ; 06
SUB (IX+FORMTABL.YMINL) ; 04 SUB (IX+FORMTABL.Y_MIN) ; 04
LD IXH,A LD IXH,A
EX AF,AF' EX AF,AF'
SRL A SRL A
@ -262,22 +262,22 @@ ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
POP IX POP IX
RET RET
SetSelect2 BIT 6,(IX+FORMTABL.FLAGH) ; 09 SetSelect2 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09
RET NZ RET NZ
SET 6,(IX+FORMTABL.FLAGH) ; 09 SET FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09
PUSH IX PUSH IX
PUSH HL PUSH HL
PUSH DE PUSH DE
PUSH AF PUSH AF
LD L,(IX+FORMTABL.XMINL) ; 00 LD L,(IX+FORMTABL.X_MIN) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01 LD H,(IX+FORMTABL.X_MIN + 1) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04 LD C,(IX+FORMTABL.Y_MIN) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05 LD B,(IX+FORMTABL.Y_MIN + 1) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02 LD A,(IX+FORMTABL.X_MAX) ; 02
SUB (IX+FORMTABL.XMINL) ; 00 SUB (IX+FORMTABL.X_MIN) ; 00
EX AF,AF' EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06 LD A,(IX+FORMTABL.Y_MAX) ; 06
SUB (IX+FORMTABL.YMINL) ; 04 SUB (IX+FORMTABL.Y_MIN) ; 04
LD IXH,A LD IXH,A
EX AF,AF' EX AF,AF'
SRL A SRL A
@ -295,25 +295,25 @@ ResSelect2 PUSH HL
PUSH IX PUSH IX
LD IX,(TestCoords.PrvTabl) LD IX,(TestCoords.PrvTabl)
LD BC,FORMTABL.SIZE;0x0010 LD BC,FORMTABL.SIZE;0x0010
NxCrds3 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08 NxCrds3 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAG) ; 08
JR NZ,ResSel22 JR NZ,ResSel22
ADD IX,BC ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; 01 ; ¯à®¢¥àª  ª®­æ  â ¡«¨æë? BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1) ; 01 ; ¯à®¢¥àª  ª®­æ  â ¡«¨æë?
JR NZ,ResSel2E JR NZ,ResSel2E
JR NxCrds3 JR NxCrds3
ResSel22 BIT 6,(IX+FORMTABL.FLAGH) ; 09 ResSel22 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09
JR Z,ResSel2E JR Z,ResSel2E
RES 6,(IX+FORMTABL.FLAGH) ; 09 RES FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09
LD L,(IX+FORMTABL.XMINL) ; 00 LD L,(IX+FORMTABL.X_MIN) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01 LD H,(IX+FORMTABL.X_MIN + 1) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04 LD C,(IX+FORMTABL.Y_MIN) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05 LD B,(IX+FORMTABL.Y_MIN + 1) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02 LD A,(IX+FORMTABL.X_MAX) ; 02
SUB (IX+FORMTABL.XMINL) ; 00 SUB (IX+FORMTABL.X_MIN) ; 00
EX AF,AF' EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06 LD A,(IX+FORMTABL.Y_MAX) ; 06
SUB (IX+FORMTABL.YMINL) ; 04 SUB (IX+FORMTABL.Y_MIN) ; 04
LD IXH,A LD IXH,A
EX AF,AF' EX AF,AF'
SRL A SRL A
@ -327,15 +327,15 @@ ResSel2E POP IX
PushButton PUSH HL PushButton PUSH HL
PUSH DE PUSH DE
LD L,(IX+FORMTABL.XMINL) ; 00 LD L,(IX+FORMTABL.X_MIN) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01 LD H,(IX+FORMTABL.X_MIN + 1) ; 01
LD E,(IX+FORMTABL.YMINL) ; 04 LD E,(IX+FORMTABL.Y_MIN) ; 04
LD D,(IX+FORMTABL.YMINH) ; 05 LD D,(IX+FORMTABL.Y_MIN + 1) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02 LD A,(IX+FORMTABL.X_MAX) ; 02
SUB (IX+FORMTABL.XMINL) ; 00 SUB (IX+FORMTABL.X_MIN) ; 00
LD C,A LD C,A
LD A,(IX+FORMTABL.YMAXL) ; 06 LD A,(IX+FORMTABL.Y_MAX) ; 06
SUB (IX+FORMTABL.YMINL) ; 04 SUB (IX+FORMTABL.Y_MIN) ; 04
LD B,A LD B,A
PUSH HL PUSH HL
PUSH DE PUSH DE
@ -352,27 +352,27 @@ PushLp1
JR Z,PushButtEx JR Z,PushButtEx
BIT 0,A BIT 0,A
JR Z,PushButtEx JR Z,PushButtEx
LD C,(IX+FORMTABL.XMINL) ; 00 LD C,(IX+FORMTABL.X_MIN) ; 00
LD B,(IX+FORMTABL.XMINH) ; 01 LD B,(IX+FORMTABL.X_MIN + 1) ; 01
OR A OR A
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
JR C,PushButtEx JR C,PushButtEx
LD C,(IX+FORMTABL.XMAXL) ; 02 LD C,(IX+FORMTABL.X_MAX) ; 02
LD B,(IX+FORMTABL.XMAXH) ; 03 LD B,(IX+FORMTABL.X_MAX + 1) ; 03
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
CCF CCF
JR C,PushButtEx JR C,PushButtEx
EX DE,HL EX DE,HL
LD C,(IX+FORMTABL.YMINL) ; 04 LD C,(IX+FORMTABL.Y_MIN) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05 LD B,(IX+FORMTABL.Y_MIN + 1) ; 05
OR A OR A
SBC HL,BC SBC HL,BC
ADD HL,BC ADD HL,BC
JR C,PushButtEx JR C,PushButtEx
LD C,(IX+FORMTABL.YMAXL) ; 06 LD C,(IX+FORMTABL.Y_MAX) ; 06
LD B,(IX+FORMTABL.YMAXH) ; 07 LD B,(IX+FORMTABL.Y_MAX + 1) ; 07
SBC HL,BC SBC HL,BC
CCF CCF
JR C,PushButtEx JR C,PushButtEx
@ -394,10 +394,10 @@ PushButtEx POP BC
POP HL POP HL
RET RET
TestRun BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGL) ; 08 TestRun BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAG) ; 08
RET Z RET Z
LD C,(IX+FORMTABL.FIRELEFTL) ; 0C LD C,(IX+FORMTABL.FIRE_LEFT) ; 0C
LD B,(IX+FORMTABL.FIRELEFTH) ; 0D LD B,(IX+FORMTABL.FIRE_LEFT + 1) ; 0D
PUSH BC PUSH BC
RET RET

View File

@ -1,9 +1,9 @@
; LAST UPDATE: 27.04.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
PrintDisks LD L,(IY + PANEL.XL) PrintDisks LD L,(IY + PANEL.X)
LD H,(IY + PANEL.XH) LD H,(IY + PANEL.X + 1)
INC HL INC HL
INC HL INC HL
LD (.DiskX1),HL LD (.DiskX1),HL
@ -17,7 +17,7 @@ PrintDisks LD L,(IY + PANEL.XL)
LD (.DISK),A LD (.DISK),A
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
LD A,(HL) LD A,(HL)
SUB 'A' SUB 'A'
@ -71,8 +71,8 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
.L1 LD (.HeadCol),A .L1 LD (.HeadCol),A
LD A,C LD A,C
LD (.PathCol),A LD (.PathCol),A
LD L,(IY + PANEL.XL) LD L,(IY + PANEL.X)
LD H,(IY + PANEL.XH) LD H,(IY + PANEL.X + 1)
LD (.PanelHX),HL LD (.PanelHX),HL
MAKEWINDOW WINSUBOBJ.WOBIND MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0,46,310,12,COLORI.BLACK W_FILL 0,46,310,12,COLORI.BLACK
@ -82,7 +82,7 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
PUSH IY PUSH IY
POP HL POP HL
LD BC,PANEL.CURRPATH LD BC,PANEL.CURR_PATH
ADD HL,BC ADD HL,BC
PUSH HL PUSH HL
LD DE,WorkBuffer LD DE,WorkBuffer
@ -121,7 +121,7 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
PrintDOSPath PUSH IY PrintDOSPath PUSH IY
POP HL POP HL
LD BC,PANEL.CURRPATH LD BC,PANEL.CURR_PATH
ADD HL,BC ADD HL,BC
LD DE,WorkBuffer LD DE,WorkBuffer
SUB A SUB A
@ -153,8 +153,8 @@ PrintDOSPath PUSH IY
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,PrnTreeInfo ;Tree JP NZ,PrnTreeInfo ;Tree
LD A,(IY + PANEL.MFL) LD A,(IY + PANEL.FILES_MARK)
OR (IY + PANEL.MFH) OR (IY + PANEL.FILES_MARK + 1)
JP NZ,PrnSelInfo JP NZ,PrnSelInfo
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
@ -164,10 +164,10 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FFL) LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FFH) LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CFL) LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CFH) LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
@ -236,8 +236,8 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
INC DE INC DE
CALL GetTime CALL GetTime
PrntFI LD HL,WorkBuffer + FileHDR.SIZE;0x18 PrntFI LD HL,WorkBuffer + FileHDR.SIZE;0x18
LD E,(IY+PANEL.XL) LD E,(IY+PANEL.X)
LD D,(IY+PANEL.XH) LD D,(IY+PANEL.X + 1)
INC DE INC DE
INC DE INC DE
INC DE INC DE
@ -323,7 +323,7 @@ PrnTreeInfo
EX DE,HL EX DE,HL
PUSH IY PUSH IY
POP HL POP HL
LD BC,PANEL.CURRPATH LD BC,PANEL.CURR_PATH
ADD HL,BC ADD HL,BC
INC HL INC HL
INC HL INC HL
@ -338,18 +338,18 @@ PrnTreeInfo
JP NZ,PrintDOSPath JP NZ,PrintDOSPath
RET RET
PrnSelInfo LD L,(IY+PANEL.MBL1) PrnSelInfo LD L,(IY+PANEL.BYTES_MARK)
LD H,(IY+PANEL.MBH1) LD H,(IY+PANEL.BYTES_MARK + 1)
LD C,(IY+PANEL.MBL2) LD C,(IY+PANEL.BYTES_MARK + 2)
LD B,(IY+PANEL.MBH2) LD B,(IY+PANEL.BYTES_MARK + 3)
LD A,(IY+PANEL.MBL3) ; [ ] FAT32 LD A,(IY+PANEL.BYTES_MARK_H) ; [ ] FAT32
LD DE,WorkBuffer LD DE,WorkBuffer
CALL ConvNumTxt40 ; [ ] fat32 CALL ConvNumTxt40 ; [ ] fat32
LD HL,CrSizeT LD HL,CrSizeT
LD BC,0x000A LD BC,0x000A
LDIR LDIR
LD L,(IY+PANEL.MFL) LD L,(IY+PANEL.FILES_MARK)
LD H,(IY+PANEL.MFH) LD H,(IY+PANEL.FILES_MARK + 1)
CALL ConvNumTxt16 CALL ConvNumTxt16
LD HL,CrSelT LD HL,CrSelT
LD BC,0x000F LD BC,0x000F
@ -379,8 +379,8 @@ PrnSelInfo LD L,(IY+PANEL.MBL1)
.PrSelI2 SUB A .PrSelI2 SUB A
LD (DE),A LD (DE),A
LD HL,WorkBuffer+0x100 LD HL,WorkBuffer+0x100
LD E,(IY+PANEL.XL) LD E,(IY+PANEL.X)
LD D,(IY+PANEL.XH) LD D,(IY+PANEL.X + 1)
INC DE INC DE
INC DE INC DE
INC DE INC DE
@ -393,11 +393,11 @@ CrSizeT DEFB " bytes in "
CrSelT DEFB " selected files" CrSelT DEFB " selected files"
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
PrintDIR LD A,(IY+PANEL.EFL) PrintDIR LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
JR NZ,PrnDIRECT JR NZ,PrnDIRECT
LD L,(IY+PANEL.XL) LD L,(IY+PANEL.X)
LD H,(IY+PANEL.XH) LD H,(IY+PANEL.X + 1)
INC HL INC HL
INC HL INC HL
LD (.ClrDIR1),HL LD (.ClrDIR1),HL
@ -432,8 +432,8 @@ PrnDIRECT BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
ADD HL,HL ; *8 ADD HL,HL ; *8
@ -526,8 +526,8 @@ PrintFULL PUSH IY
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
ADD HL,HL ; *8 ADD HL,HL ; *8
@ -664,8 +664,8 @@ PrintTREE
DJNZ .L2 DJNZ .L2
POP DE POP DE
LD HL,0x4000 LD HL,0x4000
LD C,(IY+PANEL.FFL) LD C,(IY+PANEL.FIRST_FILE)
LD B,(IY+PANEL.FFH) LD B,(IY+PANEL.FIRST_FILE + 1)
LD A,B LD A,B
OR C OR C
JR Z,.PrDIRb2 JR Z,.PrDIRb2
@ -1069,8 +1069,8 @@ ResInvert BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
RET Z RET Z
LD HL,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES) LD HL,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES)
LD BC,(COLORP.PANEL + COLORI.FILES) << 8 | (COLORP.PANEL + COLORI.SELECTFILES) LD BC,(COLORP.PANEL + COLORI.FILES) << 8 | (COLORP.PANEL + COLORI.SELECTFILES)
PrnInvert LD A,(IY + PANEL.EFL) PrnInvert LD A,(IY + PANEL.FILES_ALL)
OR (IY + PANEL.EFH) OR (IY + PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,PrnTreeInv JP NZ,PrnTreeInv
@ -1083,10 +1083,10 @@ PrnInvert LD A,(IY + PANEL.EFL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FFL) LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FFH) LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CFL) LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CFH) LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
@ -1109,8 +1109,8 @@ PrnInvert LD A,(IY + PANEL.EFL)
LD D,L LD D,L
.L2 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) .L2 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG)
JR NZ,PrnInvertP JR NZ,PrnInvertP
LD L,(IY + PANEL.CFL) LD L,(IY + PANEL.CURR_FILE)
LD H,(IY + PANEL.CFH) LD H,(IY + PANEL.CURR_FILE + 1)
LD C,L LD C,L
LD B,H LD B,H
ADD HL,HL ADD HL,HL
@ -1134,8 +1134,8 @@ PrnInvert LD A,(IY + PANEL.EFL)
DEC HL DEC HL
JP InvertRectan JP InvertRectan
PrnInvertP LD L,(IY + PANEL.CFL) PrnInvertP LD L,(IY + PANEL.CURR_FILE)
LD H,(IY + PANEL.CFH) LD H,(IY + PANEL.CURR_FILE + 1)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
@ -1159,10 +1159,10 @@ PrnTreeInv PUSH HL
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FFL) LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FFH) LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CFL) LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CFH) LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
@ -1194,8 +1194,8 @@ PrnTreeInv PUSH HL
JR Z,.L3 JR Z,.L3
LD E,C LD E,C
LD D,L LD D,L
.L3 LD L,(IY+PANEL.CFL) .L3 LD L,(IY+PANEL.CURR_FILE)
LD H,(IY+PANEL.CFH) LD H,(IY+PANEL.CURR_FILE + 1)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 24.06.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
@ -18,9 +18,9 @@ ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
PUSH IY PUSH IY
POP HL POP HL
LD BC,PANEL.EFL LD BC,PANEL.FILES_ALL
ADD HL,BC ADD HL,BC
LD B,PANEL.FILEMASK - PANEL.EFL LD B,PANEL.FILE_MASK - PANEL.FILES_ALL
.L5 LD (HL),0 .L5 LD (HL),0
INC HL INC HL
DJNZ .L5 DJNZ .L5
@ -49,8 +49,8 @@ ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
DJNZ .L4 DJNZ .L4
POP AF POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD (IY + PANEL.EFL),E ;EQUIP FIL LD (IY + PANEL.FILES_ALL),E ;EQUIP FIL
LD (IY + PANEL.EFH),D LD (IY + PANEL.FILES_ALL + 1),D
LD A,(IY + PANEL.SORTFLAG) LD A,(IY + PANEL.SORTFLAG)
AND SORTFLAG.MASK AND SORTFLAG.MASK
JP NZ,SortDIR JP NZ,SortDIR

127
fnsys.a80
View File

@ -1,10 +1,11 @@
; LAST UPDATE: 08.03.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]-----------------------------------------------------------[] ;[]-----------------------------------------------------------[]
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (8*8bit) ; <20>à®æ¥¤ãà  ã¬­®¦¥­¨ï (8*8bit)
;<3B>  ¢å®¤: E*C ; <20>  ¢å®¤: E * C
;<3B>  ¢ë室:HL-१ã«ìâ â ; <20>  ¢ë室:
; HL - १ã«ìâ â
Mult8 SUB A Mult8 SUB A
LD L,A LD L,A
LD H,A LD H,A
@ -21,9 +22,10 @@ Mult8 SUB A
.L2 DJNZ .L1 .L2 DJNZ .L1
RET RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (16*8bit) ; <20>à®æ¥¤ãà  ã¬­®¦¥­¨ï (16*8bit)
;<3B>  ¢å®¤: DE*C ; <20>  ¢å®¤: DE * C
;<3B>  ¢ë室:A+HL-१ã«ìâ â ; <20>  ¢ë室:
; AHL - १ã«ìâ â
Mult16X8 SUB A Mult16X8 SUB A
LD L,A LD L,A
LD H,A LD H,A
@ -42,9 +44,10 @@ Mult16X8 SUB A
.L2 DJNZ .L1 .L2 DJNZ .L1
RET RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (16*16bit) ; <20>à®æ¥¤ãà  ã¬­®¦¥­¨ï (16*16bit)
;<3B>  ¢å®¤: DE*BC ; <20>  ¢å®¤: DE * BC
;<3B>  ¢ë室:HL-१ã«ìâ â ; <20>  ¢ë室:
; HL - १ã«ìâ â
Mult16 LD HL,0x0000 Mult16 LD HL,0x0000
LD A,0x10 LD A,0x10
.L1 RR B .L1 RR B
@ -57,9 +60,10 @@ Mult16 LD HL,0x0000
JR NZ,.L1 JR NZ,.L1
RET RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (32bit) ; <20>à®æ¥¤ãà  ã¬­®¦¥­¨ï (32bit)
;<3B>  ¢å®¤: DE*BC ; <20>  ¢å®¤: DE * BC
;<3B>  ¢ë室:HL+DE-१ã«ìâ â ; <20>  ¢ë室:
; HLDE - १ã«ìâ â
Mult16X16 PUSH IX Mult16X16 PUSH IX
EX DE,HL EX DE,HL
LD E,0x00 LD E,0x00
@ -82,9 +86,10 @@ Mult16X16 PUSH IX
POP IX POP IX
RET RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (32bit) ; <20>à®æ¥¤ãà  ã¬­®¦¥­¨ï (32bit)
;<3B>  ¢å®¤: HL+DE*BC ; <20>  ¢å®¤: HLDE * BC
;<3B>  ¢ë室:HL+DE-१ã«ìâ â ; <20>  ¢ë室:
; HLDE - १ã«ìâ â
Mult32 PUSH IX Mult32 PUSH IX
LD IX,0x0000 LD IX,0x0000
LD A,0x20 LD A,0x20
@ -104,10 +109,11 @@ Mult32 PUSH IX
POP IX POP IX
RET RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï (16bit) ; <20>à®æ¥¤ãà  ¤¥«¥­¨ï (16bit)
;<3B>  ¢å®¤: BC/DE ; <20>  ¢å®¤: BC / DE
;<3B>  ¢ë室:BC-१ã«ìâ â ; <20>  ¢ë室:
; HL-®áâ â®ª ; BC - १ã«ìâ â
; HL - ®áâ â®ª
Divis16X16 LD A,D Divis16X16 LD A,D
OR E OR E
RET Z RET Z
@ -125,6 +131,7 @@ Divis16X16 LD A,D
RLA RLA
LD B,A LD B,A
RET RET
.L3 RL C .L3 RL C
RLA RLA
ADC HL,HL ADC HL,HL
@ -137,10 +144,11 @@ Divis16X16 LD A,D
LD B,A LD B,A
RET RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï (24x16bit) ; <20>à®æ¥¤ãà  ¤¥«¥­¨ï (24x16bit)
;<3B>  ¢å®¤: H+L+C/DE ; <20>  ¢å®¤: HLC / DE
;<3B>  ¢ë室:A -१ã«ìâ â ; <20>  ¢ë室:
; HL-®áâ â®ª ; A -१ã«ìâ â
; HL - ®áâ â®ª
Divis24X16 LD A,D Divis24X16 LD A,D
CPL CPL
LD D,A LD D,A
@ -163,6 +171,7 @@ Divis24X16 LD A,D
.L5 POP HL .L5 POP HL
DJNZ .L1 DJNZ .L1
RET RET
.L2 ADC A,A .L2 ADC A,A
JR NC,.L3 JR NC,.L3
INC HL INC HL
@ -170,10 +179,11 @@ Divis24X16 LD A,D
DJNZ .L1 DJNZ .L1
RET RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï 32/16bit=16bit ; <20>à®æ¥¤ãà  ¤¥«¥­¨ï 32/16bit=16bit
;<3B>  ¢å®¤: HL+DE/BC ; <20>  ¢å®¤: HLDE / BC
;<3B>  ¢ë室:DE-१ã«ìâ â ; <20>  ¢ë室:
; HL-®áâ â®ª ; DE - १ã«ìâ â
; HL - ®áâ â®ª
Divis32X16 LD A,0x10 Divis32X16 LD A,0x10
.L2 EX DE,HL .L2 EX DE,HL
ADD HL,HL ADD HL,HL
@ -185,14 +195,16 @@ Divis32X16 LD A,0x10
DEC A DEC A
JR NZ,.L2 JR NZ,.L2
RET RET
.L1 INC DE .L1 INC DE
DEC A DEC A
JR NZ,.L2 JR NZ,.L2
RET RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï 32/16bit=32bit ; <20>à®æ¥¤ãà  ¤¥«¥­¨ï 32/16bit=32bit
;<3B>  ¢å®¤: HL+DE/BC ; <20>  ¢å®¤: HLDE/BC
;<3B>  ¢ë室:HL+DE-१ã«ìâ â ; <20>  ¢ë室:
; HLDE - १ã«ìâ â
; BC-®áâ â®ª ; BC-®áâ â®ª
Divis32 PUSH IX Divis32 PUSH IX
LD IXL,E LD IXL,E
@ -221,7 +233,7 @@ Divis32 PUSH IX
;[]===================================================================[] ;[]===================================================================[]
;<3B>  ¢å®¤: ;<3B>  ¢å®¤:
; A:BC:HL - ç¨á«® 40 ¡¨â ; ABCHL - ç¨á«® 40 ¡¨â
; DE - ¡ãä¥à ; DE - ¡ãä¥à
ConvNumTxt40: PUSH IX ConvNumTxt40: PUSH IX
LD IX,ConvertFlg LD IX,ConvertFlg
@ -259,7 +271,7 @@ ConvNumTxt40: PUSH IX
;[]-----------------------------------------------------------[] ;[]-----------------------------------------------------------[]
;Š®­¢¥àâ¥à ç¨á«  32¡¨â ¢ ⥪áâ ;Š®­¢¥àâ¥à ç¨á«  32¡¨â ¢ ⥪áâ
;<3B>  ¢å®¤: ;<3B>  ¢å®¤:
; BC+HL - ç¨á«® 32 ¡¨â ; BCHL - ç¨á«® 32 ¡¨â
; DE - ¡ãä¥à ; DE - ¡ãä¥à
ConvNumTxt32 PUSH IX ConvNumTxt32 PUSH IX
LD IX,ConvertFlg LD IX,ConvertFlg
@ -317,8 +329,8 @@ ConvNumTxt32_Shared:
INC DE INC DE
RET RET
;Š®­¢¥àâ¥à ç¨á«  16¡¨â ¢ ⥪áâ ; Š®­¢¥àâ¥à ç¨á«  16¡¨â ¢ ⥪áâ
;<3B>  ¢å®¤: ; <EFBFBD>  ¢å®¤:
; HL - ç¨á«® 16 ¡¨â ; HL - ç¨á«® 16 ¡¨â
; DE - ¡ãä¥à ; DE - ¡ãä¥à
ConvNumTxt16 PUSH IX ConvNumTxt16 PUSH IX
@ -343,8 +355,8 @@ ConvNumTxt16 PUSH IX
POP IX POP IX
RET RET
;Š®­¢¥àâ¥à ç¨á«  8¡¨â ¢ ⥪áâ ; Š®­¢¥àâ¥à ç¨á«  8¡¨â ¢ ⥪áâ
;<3B>  ¢å®¤: ; <EFBFBD>  ¢å®¤:
; A - ç¨á«® 8 ¡¨â ; A - ç¨á«® 8 ¡¨â
; DE - ¡ãä¥à ; DE - ¡ãä¥à
ConvNumTxt8 PUSH IX ConvNumTxt8 PUSH IX
@ -434,11 +446,11 @@ ConNumbExit: CP "0"
RET RET
;[]-----------------------------------------------------------[] ;[]-----------------------------------------------------------[]
;Š®­¢¥àâ¥à ⥪áâ  ¢ ç¨á«® 32 ¡¨â ; Š®­¢¥àâ¥à ⥪áâ  ¢ ç¨á«® 32 ¡¨â
;<3B>  ¢å®¤: ; <EFBFBD>  ¢å®¤:
; DE - ⥪áâ ; DE - ⥪áâ
;<3B>  ¢ë室: ; <EFBFBD>  ¢ë室:
; HL+IX - ç¨á«® ; HLIX - ç¨á«®
; CY - ®è¨¡ª  ; CY - ®è¨¡ª 
ConvTxtNum32 LD IX,0x0000 ConvTxtNum32 LD IX,0x0000
LD HL,0x0000 LD HL,0x0000
@ -476,10 +488,10 @@ ConvTN1 LD A,(DE)
RET C RET C
JR ConvTN1 JR ConvTN1
;Š®­¢¥àâ¥à ⥪áâ  ¢ ç¨á«® 16 ¡¨â ; Š®­¢¥àâ¥à ⥪áâ  ¢ ç¨á«® 16 ¡¨â
;<3B>  ¢å®¤: ; <EFBFBD>  ¢å®¤:
; DE - ⥪áâ ; DE - ⥪áâ
;<3B>  ¢ë室: ; <EFBFBD>  ¢ë室:
; HL - ç¨á«® ; HL - ç¨á«®
; CY - ®è¨¡ª  ; CY - ®è¨¡ª 
ConvTxtNum16 LD HL,0x0000 ConvTxtNum16 LD HL,0x0000
@ -584,21 +596,10 @@ LenUp LD A,0x00
EI EI
RET RET
;[]----------------------------------------------------------[]
Resident LD (ResCall),DE
IN B,(C)
PUSH BC
OUT (C),A
CALL 0x0000
ResCall EQU $-2
POP BC
OUT (C),B
RET
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
; Š®­ª â¥­ æ¨ï áâப¨. „®¡ ¢«ï¥âáï áâப  ¨§ hl ¢ ª®­¥æ áâப¨ ¢ de. <20>ã«ì ª®¯¨àã¥âáï ⮦¥. ; Š®­ª â¥­ æ¨ï áâப¨. „®¡ ¢«ï¥âáï áâப  ¨§ hl ¢ ª®­¥æ áâப¨ ¢ de. <20>ã«ì ª®¯¨àã¥âáï ⮦¥.
; (hl) -> (de) ; (hl) -> (de)
ConcatString: ex hl,de STRCAT: ex hl,de
.loop: ld a,(hl) .loop: ld a,(hl)
or a or a
jr z,.end jr z,.end
@ -610,10 +611,10 @@ ConcatString: ex hl,de
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
; Š®¯¨à®¢ ­¨¥ áâப¨ ¤® ­ã«ï. <20>ã«ì ª®¯¨àã¥âáï ⮦¥. ; Š®¯¨à®¢ ­¨¥ áâப¨ ¤® ­ã«ï. <20>ã«ì ª®¯¨àã¥âáï ⮦¥.
; (hl) -> (de) ; (hl) -> (de)
CopyString: ld a,(hl) STRCPY: ld a,(hl)
ldi ldi
or a or a
jr nz,CopyString jr nz,STRCPY
dec de dec de
ret ret
@ -642,21 +643,21 @@ CopyWord: ld bc, 0x20FF
; "c" - string1 < string2 ; "c" - string1 < string2
; ¨­ ç¥ - string1 > string2 ; ¨­ ç¥ - string1 > string2
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
CompareStrings: ld a,(de) STRCMP: ld a,(de)
cp (hl) cp (hl)
ret nz ret nz
inc hl inc hl
inc de inc de
ld a,(hl) ld a,(hl)
or a or a
jr nz,CompareStrings ; ®¡à §¥æ ­¥ § ª®­ç¥­ jr nz,STRCMP ; ®¡à §¥æ ­¥ § ª®­ç¥­
ld a,(de) ld a,(de)
cp (hl) cp (hl)
ret ret
;<3B>®¨áª ª®­æ  á«®¢  ¨«¨ áâப¨ ; <EFBFBD>®¨áª ª®­æ  á«®¢  ¨«¨ áâப¨
;> hl - áâப  ; > hl - áâப 
;< hl - ª®­¥æ áâப¨ ¨«¨ ; < hl - ª®­¥æ áâப¨ ¨«¨
SkipWord: ld b,0x20 SkipWord: ld b,0x20
.loop: ld a,(hl) .loop: ld a,(hl)
inc hl inc hl

View File

@ -1,14 +1,14 @@
; LAST UPDATE: 28.05.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
MAX_LEVEL_DIR EQU 21 MAX_LEVEL_DIR EQU 21
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
ReadTreeR PUSH IY ReadTreeR PUSH IY
POP HL POP HL
LD BC,PANEL.EFL LD BC,PANEL.FILES_ALL
ADD HL,BC ADD HL,BC
LD B,PANEL.FILEMASK - PANEL.EFL LD B,PANEL.FILE_MASK - PANEL.FILES_ALL
.LL1 LD (HL),0 .LL1 LD (HL),0
INC HL INC HL
DJNZ .LL1 DJNZ .LL1
@ -196,8 +196,8 @@ ReadTreeR PUSH IY
LD A,C LD A,C
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD HL,(TreeDIRS) LD HL,(TreeDIRS)
LD (IY+PANEL.EFL),L ; EQUIP FIL LD (IY+PANEL.FILES_ALL),L ; EQUIP FIL
LD (IY+PANEL.EFH),H LD (IY+PANEL.FILES_ALL + 1),H
PUSH IY PUSH IY
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
PUSH AF PUSH AF
@ -293,8 +293,8 @@ LoadTreeR EX AF,AF'
CP 0x0B CP 0x0B
JR C,.L5 JR C,.L5
SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG) SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
.L5 LD (IY+PANEL.EFL),C ; EQUIP FILES .L5 LD (IY+PANEL.FILES_ALL),C ; EQUIP FILES
LD (IY+PANEL.EFH),B LD (IY+PANEL.FILES_ALL + 1),B
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG) BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
LD A,1 LD A,1
JR NZ,.L6 JR NZ,.L6
@ -304,7 +304,7 @@ LoadTreeR EX AF,AF'
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
.TreeOkey PUSH IY .TreeOkey PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
@ -504,10 +504,10 @@ TestTreeR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
.L14 .L14
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
SETPORT WINSP.Y_PORT,0xC0 SETPORT WINSP.Y_PORT,0xC0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CFL) LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CFH) LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
@ -553,10 +553,10 @@ MakeTreePathR
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L5 .L5
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CFL) LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CFH) LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
@ -723,12 +723,12 @@ FindTreeDIRR
SBC HL,BC SBC HL,BC
JR NC,.L13 JR NC,.L13
LD HL,0 LD HL,0
.L13 LD (IX+PANEL.FFL),L .L13 LD (IX+PANEL.FIRST_FILE),L
LD (IX+PANEL.FFH),H LD (IX+PANEL.FIRST_FILE + 1),H
EX DE,HL EX DE,HL
OR A OR A
SBC HL,DE SBC HL,DE
LD (IX+PANEL.CFL),L LD (IX+PANEL.CURR_FILE),L
LD (IX+PANEL.CFH),H LD (IX+PANEL.CURR_FILE + 1),H
OR A OR A
RET RET

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 30.03.2025 savelij ; LAST UPDATE: 17.07.2025 savelij
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
;<3B>à®æ¥¤ãà  ®âç¨áª¨ 0 íªà ­  ;<3B>à®æ¥¤ãà  ®âç¨áª¨ 0 íªà ­ 
@ -132,29 +132,29 @@ MakeWindow: EX (SP),IY
PUSH HL PUSH HL
LD A,(IY+0x00) ; ⥪ã騩 ¯®¤®¡'¥ªâ ®ª­  LD A,(IY+0x00) ; ⥪ã騩 ¯®¤®¡'¥ªâ ®ª­ 
INC IY INC IY
CP WINSUBOBJ.TEXT;0x01 ; ⥪á⮢ ï áâப  CP WINSUBOBJ.TEXT ; ⥪á⮢ ï áâப 
JP Z,PutTxtLine JP Z,PutTxtLine
CP WINSUBOBJ.FILL;0x02 ; ¬¥áâ® ¤«ï § £®«®¢ª  CP WINSUBOBJ.FILL ; ¬¥áâ® ¤«ï § £®«®¢ª 
JP Z,PutHeadPlc JP Z,PutHeadPlc
CP WINSUBOBJ.BORDER;0x03 ; 㣫㡫¥­¨¥ ¢ ®ª­¥ CP WINSUBOBJ.BORDER ; 㣫㡫¥­¨¥ ¢ ®ª­¥
JP Z,PutDRectan JP Z,PutDRectan
CP WINSUBOBJ.BUTTON;0x04 ; ª­®¯ª  CP WINSUBOBJ.BUTTON ; ª­®¯ª 
JP Z,PutURectan JP Z,PutURectan
CP WINSUBOBJ.BUTTONTEXT;0x05 ; ª­®¯ª  á ⥪á⮬ CP WINSUBOBJ.BUTTONTEXT ; ª­®¯ª  á ⥪á⮬
JP Z,PutButton JP Z,PutButton
CP WINSUBOBJ.HORIZLINE;0x06 ; £®à¨§®­â «ì­ ï «¨­¨ï CP WINSUBOBJ.HORIZLINE ; £®à¨§®­â «ì­ ï «¨­¨ï
JP Z,PutHorizLine JP Z,PutHorizLine
CP WINSUBOBJ.VERTICLINE;0x07 ; ¢¥à⨪ «ì­ ï «¨­¨ï CP WINSUBOBJ.VERTICLINE ; ¢¥à⨪ «ì­ ï «¨­¨ï
JP Z,PutVertLine JP Z,PutVertLine
CP WINSUBOBJ.ICONLEFTARROW;0x08 ; ¨ª®­ª  "áâ५ª  ¢«¥¢®" CP WINSUBOBJ.ICONLEFTARROW ; ¨ª®­ª  "áâ५ª  ¢«¥¢®"
JP Z,PutSBleft JP Z,PutSBleft
CP WINSUBOBJ.ICONRIGHTARROW;0x09 ; ¨ª®­ª  "áâ५ª  ¢¯à ¢®" CP WINSUBOBJ.ICONRIGHTARROW ; ¨ª®­ª  "áâ५ª  ¢¯à ¢®"
JP Z,PutSBright JP Z,PutSBright
CP WINSUBOBJ.ICONUPARROW;0x0A ; ¨ª®­ª  "áâ५ª  ¢¢¥àå" CP WINSUBOBJ.ICONUPARROW ; ¨ª®­ª  "áâ५ª  ¢¢¥àå"
JP Z,PutSBup JP Z,PutSBup
CP WINSUBOBJ.ICONDOWNARROW;0x0B ; ¨ª®­ª  "áâ५ª  ¢­¨§" CP WINSUBOBJ.ICONDOWNARROW ; ¨ª®­ª  "áâ५ª  ¢­¨§"
JP Z,PutSBdown JP Z,PutSBdown
CP WINSUBOBJ.RESTOREWIN;0x7F ; ¢®ááâ ­®¢«¥­¨¥ ç á⨠íªà ­  CP WINSUBOBJ.RESTOREWIN ; ¢®ááâ ­®¢«¥­¨¥ ç á⨠íªà ­ 
JP Z,RestoreWindow JP Z,RestoreWindow
CP WINSUBOBJ.ADRTEXT CP WINSUBOBJ.ADRTEXT
JP Z,PutAdrTxtLine JP Z,PutAdrTxtLine
@ -171,14 +171,14 @@ MakeWindow: EX (SP),IY
;-------------------------------------------------------------- ;--------------------------------------------------------------
; Ž¡« áâì ¤ ­­ëå ®ª­  ; Ž¡« áâì ¤ ­­ëå ®ª­ 
.PositX DEFW 0x0000 ;  ¤à¥á X ª®®à¤¨­ âë ®ª­  .PositX DW 0 ;  ¤à¥á X ª®®à¤¨­ âë ®ª­ 
.PositY DEFW 0x0000 ; Y ª®®à¤¨­ â  ®ª­  .PositY DW 0 ; Y ª®®à¤¨­ â  ®ª­ 
.LenX DEFW 0x0000 ; ¤«¨­  ®ª­  X/2 .LenX DW 0 ; ¤«¨­  ®ª­  X/2
.LenY DEFW 0x0000 ; ¤«¨­  ®ª­  Y .LenY DW 0 ; ¤«¨­  ®ª­  Y
.Free DEFW 0x0000 .Free DW 0
.Open DEFB 0x00 ; Š®«-¢® ®âªàëâëå ®ª®­ .Open DB 0 ; Š®«-¢® ®âªàëâëå ®ª®­
.Type DEFB 0x00 .Type DB 0
.Buffer DUPL 0x40,0 .Buffer DB 0x40 DUP 0
;-------------------------------------------------------------- ;--------------------------------------------------------------
; <20>à®æ¥¤ãà  á®åà ­¥­¨ï ¯àאַ㣮«ì­®© ¯«®áª®á⨠¢ ¡ãä¥à ; <20>à®æ¥¤ãà  á®åà ­¥­¨ï ¯àאַ㣮«ì­®© ¯«®áª®á⨠¢ ¡ãä¥à
@ -440,20 +440,20 @@ PutRectan HALT
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
RET RET
; <20>¥ç âì ⥪á⮢®© áâப¨ ¯® 㪠§ ­­®¬ã  ¤à¥áã  ¤à¥áã ; <20>¥ç âì ⥪á⮢®© áâப¨ ¯® 㪠§ ­­®¬ã  ¤à¥áã
PutAdrTxtLine LD HL,(MakeWindow.PositX) PutAdrTxtLine LD HL,(MakeWindow.PositX)
SLA L SLA L
RL H RL H
LD E,(IY+0x00) ; Xpos LD E,(IY+0x00)
INC IY INC IY
LD D,(IY+0x00) LD D,(IY+0x00) ; Xpos
INC IY INC IY
ADD HL,DE ADD HL,DE
EX DE,HL EX DE,HL
LD HL,(MakeWindow.PositY) LD HL,(MakeWindow.PositY)
LD C,(IY+0x00) ; Ypos LD C,(IY+0x00)
INC IY INC IY
LD B,(IY+0x00) LD B,(IY+0x00) ; Ypos
INC IY INC IY
ADD HL,BC ADD HL,BC
LD C,L LD C,L
@ -465,8 +465,10 @@ PutAdrTxtLine LD HL,(MakeWindow.PositX)
LD H,(IY+0) ; €¤à¥á ⥪áâ  LD H,(IY+0) ; €¤à¥á ⥪áâ 
INC IY INC IY
PUSH IY PUSH IY
LD IYL,A
LD A,H LD A,H
OR L OR L
LD A,IYL
CALL NZ,PrnTxtLnIFF ; ¯¥ç â âì ¥á«¨  ¤à¥á ­¥ 0 CALL NZ,PrnTxtLnIFF ; ¯¥ç â âì ¥á«¨  ¤à¥á ­¥ 0
POP IY POP IY
RET RET

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 20.03.2025 savelij ; LAST UPDATE: 15.07.2025 savelij
include macros.a80 include macros.a80
include fn_const.a80 include fn_const.a80
@ -9,13 +9,7 @@
include macros_sp.a80 include macros_sp.a80
include dss_sp.a80 include dss_sp.a80
org PluginOrg ; #C000 - Header lenght HDR_FLX "-CALC"
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw PluginEntry ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE MAKEWINDOW WINSUBOBJ.STORE

View File

@ -6,9 +6,13 @@ set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad
call ..\..\setpath_includes call ..\..\setpath_includes
set includes=%includes%;..\..\ set includes=%includes%;..\..\
asl -U -L -C -x -olist tmp\flx-date.lst -i %includes% cdplayer.a80 || goto error cls
asl -U -L -C -x -olist tmp\cdplayer.lst -i %includes% cdplayer.a80 || goto error
p2bin cdplayer.p ..\cdplayer.flx -r $-$ -k p2bin cdplayer.p ..\cdplayer.flx -r $-$ -k
copy /Y /B cdplayer.txt ..
echo ######################## echo ########################
echo # -= End Compile Ok =- # echo # -= End Compile Ok =- #
echo ######################## echo ########################

View File

@ -1,32 +1,28 @@
; LAST UPDATE: 20.03.2025 savelij ; LAST UPDATE: 15.07.2025 savelij
;// DEVICE ZXSPECTRUM128
;// include '../FPLUGIN.INC'
include macros.a80 include macros.a80
include fn_const.a80 include fn_const.a80
include fn_macros.a80 include fn_macros.a80
include accel_sp.a80 include accel_sp.a80
include ports_sp.a80 include ports_sp.a80
include define_sp.a80 include define_sp.a80
include errors_sp.a80
include macros_sp.a80 include macros_sp.a80
include dss_sp.a80 include dss_sp.a80
include bios_sp.a80
include vers.a80
org PluginOrg ; #C000 - Header lenght DEBUG EQU 0
; Flex Navigator plugin header BUF_TOC EQU RESULT + 3000
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
;// include 'dos_equ.inc' HDR_FLX "-CDPL",,,FLXMODES.M_ADRORG
PluginEntry: PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 78,79,484,72 W_MAIN 78,79,484,72
W_FILL 4,2,464,10,COLORI.BLUE + COLORP.BLUE W_FILL 4,2,464,10,COLORI.BLUE + COLORP.BLUE
W_TEXT 8,4,COLORI.WHITE + COLORP.BLUE,"SHAOS CD-Player v1.0 beta1" W_TEXT 8,4,COLORI.WHITE + COLORP.BLUE,"SHAOS CD-Player v\{CDVERS}"
W_BUTTONTEXT 468,2,12,10,COLORP.HIGHGRAY,"x" W_BUTTONTEXT 468,2,12,10,COLORP.HIGHGRAY,"x"
W_BORDER 8,15,268,38 W_BORDER 8,15,268,38
W_FILL 10,16,264,36,COLORI.BLACK W_FILL 10,16,264,36,COLORI.BLACK
@ -41,112 +37,90 @@ PluginEntry:
W_HORIZLINE 2,56,480 W_HORIZLINE 2,56,480
W_END W_END
call JUMPS.ResFire call JUMPS.ResFire
call shows CALL SHOW_BUTTON ; ¢ë¢®¤ ¨ª®­®ª ­  ª­®¯ª¨
ld hl,cd_play IF DEBUG
ld ix,201 CALL DEBUG_TXTKEYS ; ®â« ¤®ç­ë© ⥪áâ
ld iy,95 ENDIF
call show call CDinit ; ¯®¨áª Audio-CD ¨ ¨­¨â
ld hl,cd_paus call BIGDIGITSALL
ld ix,241 plugin_loop: LD HL,FLAG
ld iy,95 BIT B_RDUPDATE,(HL)
call show JR NZ,.L2
ld hl,cd_stop ; ¯¥à¥ç¨â뢠¥¬ ⥪ã饥 ¯®«®¦¥­¨¥ á ãç¥â®¬ ०¨¬®¢
ld ix,261 SET B_RDUPDATE,(HL)
ld iy,95 BIT B_PAUSE,(HL)
call show JR NZ,.L3
ld hl,cd_ll BIT B_TRAY,(HL)
ld ix,181 JR NZ,.L4
ld iy,115 BIT B_PLAY,(HL)
call show CALL NZ,RDSUBCHAN ; ¨«¨ ç¨â ¥¬ ⥪ã饥 ¢à¥¬ï ¥á«¨ â३ § ªàëâ ¨ ०¨¬ ¯«¥©
ld hl,cd_l CALL UPDATE_CURRTRACK ; ®¡­®¢«¥­¨¥ áâப¨ ¤«ï ¢ë¢®¤ 
ld ix,201 .L4 LD HL,(APCMD.PLAY_MSF + 6) ; ¢à¥¬ï ª®­æ  ¤¨áª 
ld iy,115 LD DE,(RESULT + 9) ; ⥪ã饥 ¢à¥¬ï
call show AND A
ld hl,cd_r SBC HL,DE
ld ix,221 CALL Z,CDSTOP ; ¯à¨­ã¤¨â¥«ì­ë© á⮯ ¥á«¨ ª®­¥æ ¤¨áª 
ld iy,115 JR .L3
call show
ld hl,cd_rr ; ¯¥à¥à¨á®¢ë¢ ¥¬ ⥪ãéãî ¯®§¨æ¨î ¨£à ­¨ï
ld ix,241 .L2 RES B_RDUPDATE,(HL)
ld iy,115 BIT B_TRAY,(HL)
call show CALL Z,BIGDIGITSALL ; ¨«¨ ¢ë¢®¤¨¬ ­  íªà ­
ld hl,cd_ejec ; ®á­®¢­®© 横« ®¯à®á  ã¯à ¢«¥­¨ï
ld ix,261 .L3 ld ix,PluginMouseTab
ld iy,115
call show
call shaos
call CDinit
plugin_loop: ld ix, PluginMouseTab
call JUMPS.TestCoords call JUMPS.TestCoords
; ld c, 0x31
; rst 0x10
SPDSS DSSF.SCANKEY SPDSS DSSF.SCANKEY
jr z, plugin_loop jr z,plugin_loop
ld a, b ld a,b
or a or a
jr nz, plugin_loop jr nz,plugin_loop
ld a, e ld a,e
cp 0x1B CALL CHECKHOTKEYS ; ¯à®¢¥àª  å®âª¥¥¢ ¯® ᯨáªã
jr z, PluginExit JR NC,plugin_loop
.L1 cp 0x1B
jr z,PluginExit
cp 0x0D cp 0x0D
jr nz, plugin_loop jr nz,plugin_loop
PluginExit: PluginExit:
CALL RESTORE_STATE
WINDOWCLOSE WINDOWCLOSE
or a ; cf = 0 or a ; cf = 0
ret ret
Ok: ld HL,String
ld DE,0x00CA
ld BC,0x00A0
ld A,0x80
call JUMPS.PrnTxtLnIFF
ret
; hl - bitmap 32x16 for 16-color mode ; hl - bitmap 32x16 for 16-color mode
; ix,iy - coords (320x256) ; ix,iy - coords (320x256)
show: show: di
; in a,(82h)
GETPORT WINSP.CPU0 GETPORT WINSP.CPU0
ld (shwin),a PUSH AF
; ld a,50h GETPORT WINSP.Y_PORT
; out (82h),a PUSH AF
SETPORT WINSP.CPU0,0x50 SETPORT WINSP.CPU0,0x50
push ix push ix
pop de pop de
push iy LD C,IYL
pop bc
ld b,16 ld b,16
show1: ld a,c .L1: ld a,c
; out (89h),a
SETPORT WINSP.Y_PORT,,0 SETPORT WINSP.Y_PORT,,0
push de push de
di
; ACC_SetBlockSize
ACCEL ACCELCMD.SET_BUFFER ACCEL ACCELCMD.SET_BUFFER
ld a,16 ld a,16
; ACC_CopyBlock
ACCEL ACCELCMD.COPY ACCEL ACCELCMD.COPY
ld a,(hl) ld a,(hl)
ld (de),a ld (de),a
; ACC_Off
ACCEL ACCELCMD.OFF ACCEL ACCELCMD.OFF
ei
ld de,16 ld de,16
add hl,de add hl,de
pop de pop de
inc c inc c
dec b dec b
jp nz,show1 jp nz,.L1
; ld a,0xFF POP AF
; out (89h),a SETPORT WINSP.Y_PORT,,0
SETPORT WINSP.Y_PORT,0xFF POP AF
ld a,(shwin)
; out (82h),a
SETPORT WINSP.CPU0,,0 SETPORT WINSP.CPU0,,0
ei
ret ret
shwin db 0
; a - digit ; a - digit
; ix,iy - coords (320x256) ; ix,iy - coords (320x256)
showd: rlca showd: rlca
@ -157,15 +131,36 @@ showd: rlca
call show call show
ld de,16 ld de,16
add iy,de add iy,de
call show jp show
ret
; Show Digit string ; ¯®ª § ­®¬¥à  â४  ¨ ¢à¥¬¥­¨ ¯à®¨£à뢠­¨ï ªàã¯­ë¬ èà¨ä⮬
shows: ld ix,46 BIGDIGITSALL: LD HL,(Digits)
ld iy,97 LD (DigitsNone),HL ; ª®¯¨à®¢ ­¨¥ ­®¬¥à  â४ 
ld c,8 LD HL,FLAG
ld hl,Digits BIT B_PAUSE,(HL)
shows1: push bc LD DE,Digits ; ¯® 㬮«ç ­¨î ¢á¥£¤  æ¨äàë
JR Z,.L3
; áç¥â稪 ¤«ï ¬®à£ ­¨ï ¢ ¯ ã§¥
LD A,PAUSEDIGITS
.L4 EQU $-1
DEC A
JR NZ,.L5
LD A,PAUSEDIGITS
.L5 LD (.L4),A
JR NZ,.L6
LD A,M_VIEWNONE
XOR (HL)
LD (HL),A
.L6 BIT B_VIEWNONE,(HL)
JR Z,.L3
LD DE,DigitsNone ; ¯ãá⮥ ¢à¥¬ï ¢ ०¨¬¥ ¯ ã§ 
; ¯¥ç âì ⥪ã饣® ­®¬¥à  â४  ¨ ¢à¥¬¥­¨
.L3 EX DE,HL
; HL -  ¤à¥á ¤ ­­ëå ¤«ï ¢ë¢®¤  ⥪饣® â४ /¢à¥¬¥­¨ ¨£à ­¨ï
ld ix,46 ; X
ld c,8 ; ᪮«ìª® ᨬ¢®«®¢ à¨á®¢ âì
.L2 ld iy,97 ; Y
.L1: push bc
push hl push hl
push iy push iy
ld a,(hl) ld a,(hl)
@ -177,77 +172,546 @@ shows1: push bc
pop bc pop bc
inc hl inc hl
dec c dec c
jp nz,shows1 jp nz,.L1
ret ret
include cdrom.a80 CHANGEDISK: LD A,(CDDRIVE)
SPBIOS BIOSF.DRV_RESET
JR NC,.cont
CP ERR_DRV.ATAPI_UnitAttention
JR Z,.drv_change
CP ERR_DRV.ATAPI_NotReady
SCF
RET NZ
LD A,ERR_DSS.NOT_READY
RET
CDinit: call CD_INI .drv_change: LD A,(CDDRIVE)
jr nc,noCD CALL SAVE_MEDIA_CHANGED
yesCD: call SAVE_BUF .cont: CALL INITDISK
ld hl,CD_BUF RET C
ld bc,54 AND A
add hl,bc RET
ld de,msg_
yesCD1: ld a,(hl)
ld (de),a
or a
jr z,yesCD0
inc hl
inc de
jr yesCD1
INITDISK: LD B,4
.CD_I_LP PUSH BC
LD IX,0x0010
LD HL,0x0000
LD DE,RESULT
LD A,(CDDRIVE)
SPBIOS BIOSF.DRV_READ,1
POP BC
JR NC,.CD_I_OK
DJNZ .CD_I_LP
.UNKCD LD A,ERR_DSS.UNKNOWN_FORMAT
SCF
RET
.CD_I_OK LD HL,RESULT
LD A,(HL)
INC HL
DEC A
JR NZ,.UNKCD
LD A,(HL)
INC HL
CP 'C'
JR NZ,.UNKCD
LD A,(HL)
INC HL
CP 'D'
JR NZ,.UNKCD
XOR A
RET
RESTORE_STATE: LD B,1
.set_par: EQU $-1
LD A,(CDDRIVE)
SPBIOS BIOSF.DRV_SET_PAR
RET
SAVE_MEDIA_CHANGED:
SPBIOS BIOSF.DRV_GET_PAR
OR %00000010
LD B,A
LD A,(RESTORE_STATE.set_par)
OR B
LD (RESTORE_STATE.set_par),A
RET
; ¯®¨áª CD-ROM ¨ ¨­¨æ¨ «¨§ æ¨ï
CDinit: LD B,0xC0 - 1
.loop: INC B
LD A,B
CP 0xC4
SCF
JP Z,noCD
PUSH BC
SPBIOS BIOSF.DRV_DETECT
POP BC
JR NC,.found
CP ERR_DRV.ATAPI_MediumError
JR Z,.found
CP ERR_DRV.ATAPI_UnitAttention
JR NZ,.loop
.found: LD A,B
LD (CDDRIVE),A
CALL yesCD0
.CLOSETRAY LD HL,APCMD.CLOSETRAY
CALL SEND_PACKET
CALL CHANGEDISK
LD HL,FLAG
RES B_TRAY,(HL)
.UPDATE_TOC LD HL,RESULT+6
LD (HL),0xAA
LD HL,APCMD.READTOC
CALL SEND_PACKET
LD HL,RESULT-2
LD B,0xFF
LD DE,8
.L1 INC B
ADD HL,DE
LD A,(HL)
CP 0xAA
JR NZ,.L1
LD A,B
LD (TRACKS),A
; ä®à¬¨à®¢ ­¨¥ â ¡«¨æë â४®¢
LD HL,RESULT + 4 + 5
LD A,(RESULT + 3)
LD DE,BUF_TOC + 3 ; ­ã«¥¢®£® ­¥â
.L2 EX AF,AF'
LDI
LDI
LDI
LD A,5
ADD A,L
LD L,A
ADC A,H
SUB L
LD H,A
EX AF,AF'
DEC A
JP NZ,.L2
LD DE,APCMD.PLAY_MSF + 6 ; ª®­¥æ ¤¨áª 
LDI
LDI
LDI
LD A,(TRACKS)
LD HL,TXTTRACKS.DIGITS
CALL A2HALFDEC
LD A,'0'
ADD A,(HL)
LD (HL),A
DEC HL
LD A,'0'
ADD A,(HL)
LD (HL),A
LD HL,TXTTRACKS
LD DE,360
LD BC,140
LD A,COLORP.HIGHGRAY + COLORI.BLUE
CALL JUMPS.PrnTxtLnIFF
LD A,1
LD (CURRENT.TRACK),A
; ®¡­®¢«¥­¨¥ ⥪ã饣® ­®¬¥à  â४  ¨ ¢à¥¬¥­¨ ¨£à ­¨ï ­  íªà ­¥
UPDATE_CURRTRACK
LD A,(CURRENT.TRACK)
LD HL,Digits
CALL A2HALFDEC
LD A,(CURRENT.MINUTE)
LD HL,Digits.MIN
CALL A2HALFDEC
LD A,(CURRENT.SECUND)
LD HL,Digits.SEC
; ª®­¢¥àá¨ï ç¨á«  ¤«ï ¢ë¢®¤  ­  ¤¨á¯«¥©
A2HALFDEC LD BC,10
.L1 INC B
SUB C
JR NC,.L1
DEC B
ADD A,C
LD (HL),B
INC HL
LD (HL),A
RET
IF DEBUG
A2HEX PUSH AF
AND %11110000
RRCA
RRCA
RRCA
RRCA
CALL .L2
LD B,A
POP AF
AND %00001111
.L2 ADD A,'0'
CP '9'+1
RET C
ADD A,7
RET
ENDIF
; CD-ROM ­ ©¤¥­
yesCD0: ld hl,msgY yesCD0: ld hl,msgY
ld a,0x80 ld a,COLORP.HIGHGRAY + COLORI.BLUE
jr CDprn jr CDprn
; CD-ROM ­¥ ­ ©¤¥­
noCD: ld hl,msgN noCD: ld hl,msgN
ld a,0x81 ld a,COLORP.HIGHGRAY + COLORI.RED
CDprn: ld de,84 CDprn: ld de,84
ld bc,140 ld bc,140
call JUMPS.PrnTxtLnIFF JP JUMPS.PrnTxtLnIFF
ret
msgY db "CD-ROM is present " msgY DZ "CD-ROM is present"
msg_ DB 100 DUP 0 msgN DZ "CD-ROM is absent"
msgN db "CD-ROM is absent",0 TXTTRACKS DZ "Tracks: 00" ; ª®«¨ç¥á⢮ â४®¢ ­  ¤¨áª¥
.DIGITS EQU $-3
CDplay: ld hl,AP_PLA ; à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ¯® â ¡«¨çª¥ ¯®§¨æ¨©
call ATAPI SHOW_BUTTON LD HL,TABLBUTTONS
ret .L1 LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD A,D
OR E
RET Z
PUSH DE
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD IXH,D
LD IXL,E
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD IYH,D
LD IYL,E
EX (SP),HL
CALL show
POP HL
JR .L1
CDejec: ld hl,AP_CD2 IF DEBUG
call ATAPI ; â ¡«¨æ  ¯®¤áª §®ª ­  å®âª¥¨
ret DEBUG_TXTKEYS LD HL,DEBUGTABLKEYS
.L1 LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD A,D
OR E
RET Z
PUSH DE
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
INC HL
EX (SP),HL
LD A,COLORP.HIGHGRAY + COLORI.RED
CALL JUMPS.PrnTxtLnIFF
POP HL
JR .L1
ENDIF
; ¯à®¢¥àª  å®âª¥¥¢ ¯® â ¡«¨æ¥
CHECKHOTKEYS LD HL,TABLHOTKEYS
.L1 LD B,(HL)
INC B
DEC B
SCF
RET Z
INC HL
LD E,(HL)
INC HL
LD D,(HL)
INC HL
CP B
JR NZ,.L1
PUSH AF
EX DE,HL
CALL JP_HL
POP AF
AND A
RET
Digits db 0x00,0x00,0x0B,0x00,0x00,0x0A,0x00,0x00 JP_HL JP (HL)
; ç⥭¨¥ ⥪ã饣® á®áâ®ï­¨ï ¨£à ­¨ï
RDSUBCHAN LD HL,APCMD.RDSUBCHAN
CALL SEND_PACKET
LD A,(RESULT + 6)
LD (CURRENT.TRACK),A
LD HL,RESULT + 13
LD DE,CURRENT.MINUTE
LDI
LDI
RET
PluginMouseTab: dw 546,558,81,91,0x21,0,PluginExit,PluginExit ; ãáâ ­®¢ª  ¯®§¨æ¨¨ ¤«ï ¨£à ­¨ï ¢ ¯ ª¥â¥
dw 360,476, 94,112,0x01,0,CDplay,0 SETPOS_MSF EXX
dw 480,516, 94,112,0x01,0,0,0 LD HL,(CURRENT.TRACK)
dw 520,556, 94,112,0x01,0,0,0 LD H,0
dw 360,396,114,132,0x01,0,0,0 LD E,L
dw 400,436,114,132,0x01,0,0,0 LD D,H
dw 440,476,114,132,0x01,0,0,0 ADD HL,HL
dw 480,516,114,132,0x01,0,0,0 ADD HL,DE
dw 520,556,114,132,0x01,0,CDejec,0 LD DE,BUF_TOC
ADD HL,DE
LD DE,APCMD.PLAY_MSF + 3
LDI
LDI
LDI
EXX
RET
PluginMT2: dw 252,324,138,156,0x01,0,Ok,0 ; ¯¥à¥¬®âª  ­ § ¤
REWIND LD A,(FLAG)
BIT B_PAUSE,A
RET NZ
BIT B_PLAY,A
RET Z
; ⮫쪮 ¤«ï ०¨¬  ¯«¥©
CALL RDSUBCHAN
LD HL,APCMD.PLAY_MSF + 3
LD DE,(RESULT + 9)
LD A,D
SUB PAUSE
LD D,A
JR NC,.L1
ADD A,60
LD D,A ; ­®¢ë¥ ᥪ㭤ë
DEC E ; ­®¢ë¥ ¬¨­ãâë
.L1 LD (HL),E ; ¬¨­ãâë
INC HL
LD (HL),D ; ᥪ㭤ë
INC HL
LD (HL),0 ; ä३¬
JR CDPLAY.L1
; ¯¥à¥¬®âª  ¢¯¥à¥¤
FORWARD LD A,(FLAG)
BIT B_PAUSE,A
RET NZ
BIT B_PLAY,A
RET Z
; ⮫쪮 ¤«ï ०¨¬  ¯«¥©
CALL RDSUBCHAN
LD HL,APCMD.PLAY_MSF + 3
LD DE,(RESULT + 9)
LD A,D
ADD A,PAUSE
LD D,A
CP 60
JR C,REWIND.L1
SUB 60
LD D,A ; ­®¢ë¥ ᥪ㭤ë
INC E ; ­®¢ë¥ ¬¨­ãâë
JR REWIND.L1
; ¯à¥¤ë¤ã騩 â४
PREV_TRACK LD HL,CURRENT.TRACK
LD A,(HL)
DEC A
RET Z
DEC (HL)
JR NEXT_TRACK.L1
; á«¥¤ãî騩 â४
NEXT_TRACK LD HL,CURRENT.TRACK
LD A,(TRACKS)
CP (HL)
RET Z
INC (HL)
.L1 LD HL,0
LD (CURRENT.MINUTE),HL
CALL SETPOS_MSF ; ãáâ ­®¢ª  ¯®§¨æ¨¨ ¢ ¯ ª¥â¥
CALL UPDATE_CURRTRACK ; ®¡­®¢«¥­¨¥ áâப¨ â४  ¨ ¢à¥¬¥­¨
CALL BIGDIGITSALL ; à¨á®¢ ­¨¥ ­  íªà ­ áâப¨ â४  ¨ ¢à¥¬¥­¨
LD HL,FLAG
BIT B_PLAY,(HL) ; ०¨¬ ¯«¥©?
RET Z ; ¢ë室 ¥á«¨ ­¥â
BIT B_PAUSE,(HL) ; ०¨¬ ¯ ã§ë?
RET NZ ; ¢ë室 ¥á«¨ ¤ 
JR CDPLAY.L1 ; ¨­ ç¥ § ¯ã᪠¥¬ ¯«¥© ¤«ï ­®¢®£® â४ 
; ¨£à âì â४
CDPLAY: LD HL,FLAG
BIT B_PAUSE,(HL)
JR NZ,CDPAUSE.PAUSEON ; ¥á«¨ ¨§ ०¨¬  ¯ ã§ , á­ ç «  á¡à®á ०¨¬ 
BIT B_PLAY,(HL)
RET NZ ; ¥á«¨ ¨§ ०¨¬  ¯«¥©, â® ¢ë室¨¬
.L2 SET B_PLAY,(HL)
CALL SETPOS_MSF
.L1 LD HL,APCMD.PLAY_MSF
JP SEND_PACKET
CDPAUSE LD HL,FLAG
BIT B_PLAY,(HL)
RET Z ; ¥á«¨ á⮯ â® ¯ ã§ã ¨£­®à¨¬
BIT B_PAUSE,(HL)
JR NZ,.PAUSEON
; ¢ª«î祭¨¥ ०¨¬  ¯ ã§ 
SET B_PAUSE,(HL)
CALL RDSUBCHAN
LD HL,(RESULT + 9)
LD (CURRENT.PAUSE_POS),HL
LD HL,APCMD.PAUSE
JP SEND_PACKET
; ¢ëª«î祭¨¥ ०¨¬  ¯ ã§ 
.PAUSEON RES B_PAUSE,(HL)
RES B_VIEWNONE,(HL)
BIT B_PAUSENEW,(HL)
RES B_PAUSENEW,(HL)
JP Z,CDPLAY.L1
LD HL,(CURRENT.PAUSE_POS)
LD (APCMD.PLAY_MSF + 3),HL
JR CDPLAY.L1
; ¯®«­ ï ®áâ ­®¢ª 
CDSTOP: LD HL,FLAG
RES B_PLAY,(HL)
RES B_PAUSE,(HL)
RES B_VIEWNONE,(HL)
LD A,1
LD (CURRENT.TRACK),A
LD HL,0
LD (CURRENT.MINUTE),HL
CALL SETPOS_MSF
CALL UPDATE_CURRTRACK
CALL BIGDIGITSALL
; ª®¬ ­¤  á⮯
CD_APSTOP LD HL,APCMD.STOP
; ¯®á뫪  ATAPI ¯ ª¥â 
SEND_PACKET LD DE,RESULT
LD A,0
CDDRIVE EQU $-1
SPBIOS BIOSF.DRV_EXTENDED,DRV_EXTENDED.ATAPI_Custom_PCMD
RET
; ®âªàë⨥/§ ªàë⨥ âà¥ï
CDEJECT: CALL CDSTOP
LD HL,FLAG
BIT B_TRAY,(HL)
SET B_TRAY,(HL)
JP NZ,CDinit.CLOSETRAY ; § ªàë⨥ ¨ २­¨â
; ¨­ ç¥ ®âªàë⨥ âà¥ï
LD HL,APCMD.OPENTRAY
CALL SEND_PACKET
LD HL,BUF_TOC
LD DE,BUF_TOC + 1
LD BC,99 * 3
LD (HL),0
LDIR
RET
IF DEBUG
TXT
.D1 DZ "1"
.D2 DZ "2"
.D3 DZ "3"
.D4 DZ "4"
.D5 DZ "5"
.D6 DZ "6"
.D7 DZ "7"
.D8 DZ "8"
DEBUGTABLKEYS DW TXT.D1,363,95
DW TXT.D2,483,95
DW TXT.D3,523,95
DW TXT.D4,363,115
DW TXT.D5,403,115
DW TXT.D6,443,115
DW TXT.D7,483,115
DW TXT.D8,523,115
DW 0
ENDIF
; â ¡«¨æ  ¨ª®­®ª ¤«ï ª­®¯®ª
TABLBUTTONS DW cd_play,201,95
DW cd_paus,241,95
DW cd_stop,261,95
DW cd_ll,181,115
DW cd_l,201,115
DW cd_r,221,115
DW cd_rr,241,115
DW cd_ejec,261,115
DW 0
; å®âª¥¨
TABLHOTKEYS DB '1'
DW CDPLAY ; ¯«¥©
DB '2'
DW CDPAUSE ; ¯ ã§ 
DB '3'
DW CDSTOP ; á⮯
DB '4'
DW PREV_TRACK ; ¯à¥¤ë¤ã騩 â४
DB '5'
DW REWIND ; ¯¥à¥¬®âª  ­ § ¤
DB '6'
DW FORWARD ; ¯¥à¥¬®âª  ¢¯¥à¥¤
DB '7'
DW NEXT_TRACK ; á«¥¤ãî騩 â४
DB '8'
DW CDEJECT ; ®âªàë⨥/§ ªàë⨥ âà¥ï
DB 0
; ⥪ã騩 â४ ¨ ⥪ã饥 ¢à¥¬ï â४ 
Digits DB 0x00,0x00,0x0B
.MIN DB 0x00,0x00,0x0A
.SEC DB 0x00,0x00
; ¯ãá⮥ ¢à¥¬ï ¤«ï ¬®à£ ­¨ï ¢ ¯ ã§¥
DigitsNone DB 0x0B,0x0B,0x0B,0x0B,0x0B,0x0A,0x0B,0x0B
; â ¡«¨æ  ¤«ï ¬ëè¨
PluginMouseTab: dw 546,558, 81, 91,%0000000000100001,0,PluginExit,PluginExit
dw 360,476, 94,112,%0000000000000001,0,CDPLAY,0
dw 480,516, 94,112,%0000000000000001,0,CDPAUSE,0
dw 520,556, 94,112,%0000000000000001,0,CDSTOP,0
dw 360,396,114,132,%0000000000000001,0,PREV_TRACK,0
dw 400,436,114,132,%0000000000000001,0,REWIND,0
dw 440,476,114,132,%0000000000000001,0,FORWARD,0
dw 480,516,114,132,%0000000000000001,0,NEXT_TRACK,0
dw 520,556,114,132,%0000000000000001,0,CDEJECT,0
dw 0x8000 dw 0x8000
StringBuf: db 16,1 APCMD
db 0,0,0 ; 00 01 02 03 04 05 06 07 08 09 0A 0B
dw 0x00CC,0x0057,0x00E8 .STOP DB 0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0xF0 .PAUSE DB 0x4B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
; SM SS SF EM ES EF
.PLAY_MSF DB 0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 3-5 START MSF, 6-8 END MSF
.READTOC DB 0x43,0x02,0x00,0x00,0x00,0x00,0x01,0x03,0x24,0x00,0x00,0x00
.CLOSETRAY DB 0x1B,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.OPENTRAY DB 0x1B,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.RDSUBCHAN DB 0x42,0x02,0x40,0x01,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00
String: DB 16 DUP 0 include icons.a80
DB 13 DUP 0
include shaos.a80
include cd.a80
include digits.a80 include digits.a80
PluginEnd: FLAG DB 0
;// savebin 'Build/FN/Plugins/cdplayer.flx',PluginStart,PluginEnd-PluginStart BITMASK TRAY, 7 ; 1-â३ ®âªàëâ, 0-â३ § ªàëâ
BITMASK RDUPDATE, 6 ; 1-®¡­®¢«¥­¨¥ ¢à¥¬¥­¨,0-ç⥭¨¥ ¢à¥¬¥­¨
BITMASK PAUSE, 5 ; 1-०¨¬ ¯ ã§ë,0-­¥â
BITMASK PLAY, 4 ; 1-०¨¬ ¯«¥©  ªâ¨¢¥­,0-­¥â
BITMASK PAUSENEW, 3 ; 1-¢ ०¨¬¥ ¯ ã§  ­ ¦ â ¯¥à¥å®¤ ­  ¤à㣮© â४
BITMASK VIEWNONE, 2 ; 1-¯ãáâë¥ æ¨äàë,0-­®à¬ «ì­ë¥
CURRENT ; ­®¬¥à â४  ¨ ¢à¥¬ï ¤«ï ¢ë¢®¤  ­  íªà ­
.TRACK DB 0 ; ⥪ã騩 â४
.MINUTE DB 0 ; ⥪ãé ï ¬¨­ãâ 
.SECUND DB 0 ; ⥪ãé ï ᥪ㭤 
.PAUSE_POS DW 0 ; ⥪ãé ï ¯®§¨æ¨ï ­  ¬®¬¥­â ­ ¦ â¨ï ¯ ã§ë
TRACKS DB 0 ; ª®«¨ç¥á⢮ â४®¢ ­  ¤¨áª¥
; ­ ç «® ¡ãä¥à  ¯®«ã祭¨ï १ã«ìâ â ¢ë¯®«­¥­¨ï ATAPI ¯ ª¥â 
RESULT DB 0 ; १ã«ìâ â ¢ë¯®«­¥­¨ï ATAPI ª®¬ ­¤ë

View File

@ -0,0 +1,46 @@
<20>« £¨­ SHAOS CD-Player ¤«ï Flex Navigator ¯à¥¤­ §­ ç¥­ ¤«ï ã¯à ¢«¥­¨ï
¢®á¯à®¨§¢¥¤¥­¨¥¬ ¨ ­ ¢¨£ æ¨¨ Audio CD ¤¨áª®¢.
‘¨á⥬­ë¥ âॡ®¢ ­¨ï: FN ¢¥àᨨ 1.16 ¨ ¢ëè¥.
“¯à ¢«¥­¨¥ ¯«¥¥à®¬ ¯à®¨§¢®¤¨âáï ¯à¨ ¯®¬®é¨ ¬ëè¨ ¨«¨ £®àï稬¨ ª« ¢¨è ¬¨.
‘¯¨á®ª ã¯à ¢«¥­¨ï:
1 - ¯«¥©;
2 - ¯ ã§ , ¢ í⮬ ०¨¬¥ ­ ç¨­ ¥â ¬®à£ âì ¢à¥¬ï ¯à®¨£à뢠­¨ï;
3 - á⮯;
4 - ¯¥à¥©â¨ ­  ¯à¥¤ë¤ã騩 â४;
5 - ¯¥à¥¬®âª  ­ § ¤, ª ¦¤®¥ ­ ¦ â¨¥ ¯¥à¥áª ª¨¢ ¥â ­  10 ᥪ㭤
(⮫쪮 ¢ ०¨¬¥ ¯«¥©);
6 - ¯¥à¥¬®âª  ¢¯¥à¥¤, ª ¦¤®¥ ­ ¦ â¨¥ ¯¥à¥áª ª¨¢ ¥â ­  10 ᥪ㭤
(⮫쪮 ¢ ०¨¬¥ ¯«¥©);
7 - ¯¥à¥©â¨ ­  á«¥¤ãî騩 â४;
8 - § ªàëâì/®âªàëâì â३ ¯à¨¢®¤  CD ¤¨áª®¢. ‘®áâ®ï­¨¥ âà¥ï ­¥ ª®­â஫¨àã¥âáï.
ޤ­® ­ ¦ â¨¥ ¯®¤ ¥â ª®¬ ­¤ã ®âªàëâì, á«¥¤ãî饥 ­ ¦ â¨¥ ¯®¤ ¥â ª®¬ ­¤ã
§ ªàëâ¨ï.
"<22>â® ­¥ ¡ £, íâ® ä¨ç ":
- ­ ¦ â¨¥ á⮯ ¢á¥£¤  á¡à á뢠¥â ¢à¥¬ï ¨£à ­¨ï ¢ 0 ¨ ¯¥à¥å®¤¨â ­  ¯¥à¢ë© â४;
- ¯¥à¥¬®âª  à ¡®â ¥â ⮫쪮 ¢ ०¨¬¥ ¯«¥©;
- ¯à¨ ¢ë室¥ ¨§ ¯«¥¥à  ¢®á¯à®¨§¢¥¤¥­¨¥ ¯à®¤®«¦ ¥âáï. <20>® ¯à¨ á«¥¤ãî饬
§ ¯ã᪥ ¥á«¨ ¤¨áª ¥é¥ ¢®á¯à®¨§¢®¤¨âáï ¯«¥¥à ¡ã¤¥â ¯®ª §ë¢ âì ०¨¬ á⮯
¨ ¯®§¨æ¨î â४ 1, ¢à¥¬ï 00:00.
- ¢ ०¨¬¥ ¯ ã§  ¨ ¯¥à¥å®¤ ­  á«¥¤ãî騩/¯à¥¤ë¤ã騩 â४ ¢à¥¬ï á¡à á뢠¥âáï ¢ 00:00.
History:
‚¥àá¨ï 1.1
- ¯¥à¥à¨á®¢ ­ ¢áâ஥­­ë© ªàã¯­ë© èà¨äâ.
- ¢ ¯ à «¥«ì á ã¯à ¢«¥­¨¥¬ ¬ëèìî ᤥ« ­® ã¯à ¢«¥­¨¥ á ª« ¢¨ âãàë.
- ¢ ०¨¬¥ ¯ ã§  ᤥ« ­® ¬®à£ ­¨¥ ¢à¥¬¥­¥¬ ¨£à ­¨ï.
- ¯¥à¥¬®âª  ¯® ¤¨áªã ᤥ« ­  ­  10 ᥪ㭤 ¨ ⮫쪮 ¢ ०¨¬¥ ¯«¥©.
- ¤®¤¥« ­ë ¢á¥ ­¥¨á¯®«ì§®¢ ­­ë¥ ª­®¯ª¨, ¨á室­ ï ¢¥àá¨ï 㬥«  ⮫쪮 ¯«¥©
¨ ®âªàë⨥ âà¥ï.
- ¯¥à¢ë¥ 2 æ¨äàë ¯®ª §ë¢ îâ ­®¬¥à ⥪ã饣® â४ , ®áâ «ì­ë¥ ¯®ª §ë¢ îâ
¢à¥¬ï ¯à®¨£à뢠­¨ï â४ .
- ᤥ« ­ ¯®ª § ª®«¨ç¥á⢠ â४®¢ ­  ¤¨áª¥.
- ã¡à ­  áªàëâ ï ª­®¯ª  á ­¥¯®­ïâ­ë¬ ä㭪樮­ «®¬.
- ¨á¯à ¢«¥­ ¢ë¢®¤ ­®¬¥à â४  ¨ ¢à¥¬ï ¨£à ­¨ï, ç áâ® á¡®¨«®.
- ¢á¥ ã¯à ¢«¥­¨¥ CD ¯à¨¢®¤®¬ ᤥ« ­  ¯®á뫪®© ATAPI ¯ ª¥â ¬¨ ç¥à¥§ BIOS.
- ¨§ ¯« £¨­  ã¡à ­ ª®¤ à ¡®âë ç¥à¥§ ¯®àâë IDE, ¨á室­¨ª ®áâ ¢«¥­.
- ¨§ ¯« £¨­  ã¡à ­  «®£®  ¢â®à , ¨á室­¨ª ®áâ ¢«¥­.
- ¤®à ¡®âª  ¨á室­®© ¢¥àᨨ SHAOS CD-Player v1.0 beta1.

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 11.03.2025 savelij ; LAST UPDATE: 30.06.2025 savelij
; CDROM.A - Alexander Shabarshin 13.10.2002 ; CDROM.A - Alexander Shabarshin 13.10.2002
@ -106,14 +106,11 @@ CD_TRANS: ld d,(hl)
; HL - address of 12-bytes command ; HL - address of 12-bytes command
SEND_ATAPI: ld de,CD_BUF SEND_ATAPI: ld de,CD_BUF
di di
; ACC_SetBlockSize
ACCEL ACCELCMD.SET_BUFFER ACCEL ACCELCMD.SET_BUFFER
ld a,12 ld a,12
; ACC_CopyBlock
ACCEL ACCELCMD.COPY ACCEL ACCELCMD.COPY
ld a,(hl) ld a,(hl)
ld (de),a ld (de),a
; ACC_Off
ACCEL ACCELCMD.OFF ACCEL ACCELCMD.OFF
ei ei
SA0: call NO_BSY SA0: call NO_BSY
@ -191,21 +188,14 @@ NO_CDROM: pop hl
SAVE_BUF: push hl SAVE_BUF: push hl
ld hl,FNAME ld hl,FNAME
; ld c,Dss.Create
; ld a,0
; rst ToDSS
SPDSS DSSF.CREATE,,0 SPDSS DSSF.CREATE,,0
ld (FHAND),a ld (FHAND),a
; ld c,Dss.Write
ld a,(FHAND) ld a,(FHAND)
ld de,2048 ld de,2048
ld hl,CD_BUF ld hl,CD_BUF
; rst ToDSS
SPDSS DSSF.WRITE SPDSS DSSF.WRITE
; !FIXIT WRITE ERROR ; !FIXIT WRITE ERROR
; ld c,0x12
ld a,(FHAND) ld a,(FHAND)
; rst ToDSS
SPDSS DSSF.CLOSE SPDSS DSSF.CLOSE
pop hl pop hl
ret ret
@ -214,14 +204,12 @@ FNAME db "cd_buf.dat",0
FHAND db 0 FHAND db 0
AP_NOP: ld hl,AP_00 AP_NOP: ld hl,AP_00
call SEND_ATAPI JP SEND_ATAPI
ret
; ATAPI command ; ATAPI command
; HL - address of ATAPI command (AP_*) ; HL - address of ATAPI command (AP_*)
ATAPI: ATAPI:
AP_COM: call SEND_ATAPI AP_COM: JP SEND_ATAPI
ret
AP_00 db 0x00 AP_00 db 0x00
DB 11 DUP 0 DB 11 DUP 0

View File

@ -1,384 +1,402 @@
digit0 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; LAST UPDATE: 25.07.2025 savelij
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ii EQU COLORP.BLACK + COLORI.BLACK ; 䎭
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 HH EQU COLORP.YELLOW + COLORI.YELLOW ; ݍŞáĽŤě
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 ; 0 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 digit0 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 01
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 02
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 03
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii ; 04
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii ; 05
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii ; 06
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 07
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 08
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 09
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 0A
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 0B
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 0C
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii ; 0D
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii ; 0E
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 0F
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii ; 10
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii ; 11
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 12
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 13
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 14
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 15
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 16
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 17
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 18
digit1 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii ; 19
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii ; 1A
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii ; 1B
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1C
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1D
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1E
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1F
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 1
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 digit1 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
digit2 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 ; 2
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 digit2 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
digit3 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 ; 3
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 digit3 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
digit4 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 ; 4
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 digit4 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
digit5 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 5
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 digit5 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
digit6 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 6
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 digit6 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
digit7 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 ; 7
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 digit7 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
digit8 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 ; 8
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 digit8 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
digit9 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 ; 9
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 digit9 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
digi_sp db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; ¤˘ŽĽâŽç¨Ľ
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 digi_sp db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
digi_ss db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; ŻŕŽĄĽŤ
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 digi_ss db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii
db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii

View File

@ -1,30 +1,23 @@
; LAST UPDATE: 03.02.2025 savelij ; LAST UPDATE: 30.06.2025 savelij
; Shaos face ; Shaos face
shaos: ld hl,shaosraw shaos: ld hl,shaosraw
ld de,44 ld de,44
ld c,95 ld c,95
ld b,36 ld b,36
; in a,(82h)
GETPORT WINSP.CPU0 GETPORT WINSP.CPU0
ld (shaowin),a ld (shaowin),a
; ld a,50h
; out (82h),a
SETPORT WINSP.CPU0,0x50 SETPORT WINSP.CPU0,0x50
shaos1: ld a,c shaos1: ld a,c
; out (89h),a SETPORT WINSP.Y_PORT,,0
SETPORT WINSP.CPU0,,0
push de push de
di di
; ACC_SetBlockSize
ACCEL ACCELCMD.SET_BUFFER ACCEL ACCELCMD.SET_BUFFER
ld a,32 ld a,32
; ACC_CopyBlock
ACCEL ACCELCMD.COPY ACCEL ACCELCMD.COPY
ld a,(hl) ld a,(hl)
ld (de),a ld (de),a
; ACC_Off
ACCEL ACCELCMD.OFF ACCEL ACCELCMD.OFF
ei ei
ld de,32 ld de,32
@ -33,11 +26,8 @@ shaos1: ld a,c
inc c inc c
dec b dec b
jp nz,shaos1 jp nz,shaos1
; ld a,0xFF
; out (89h),a
SETPORT WINSP.Y_PORT,0xFF SETPORT WINSP.Y_PORT,0xFF
ld a,(shaowin) ld a,(shaowin)
; out (82h),a
SETPORT WINSP.CPU0,,0 SETPORT WINSP.CPU0,,0
ret ret

View File

@ -0,0 +1,7 @@
; LAST UPDATE: 11.07.2025 savelij
CDVERS EQU "1.1"
PAUSE EQU 10 ; è £ ¢ ᥪ㭤 å ¤«ï ¯¥à¥¬®âª¨
PAUSEDIGITS EQU 12 ; ¯ ã§  ¬®à£ ­¨ï æ¨äà ¢ ०¨¬¥ ¯ ã§ 

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 31.03.2025 savelij ; LAST UPDATE: 15.07.2025 savelij
include macros.a80 include macros.a80
include fn_const.a80 include fn_const.a80
@ -7,12 +7,9 @@
include macros_sp.a80 include macros_sp.a80
include dss_sp.a80 include dss_sp.a80
org PluginOrg HDR_FLX "-DATE"
PluginStart: db "FLX-PLUG"
dw 0 JP PluginEntry
dw PluginEntry
db 0
db 0,0,0
db "Date preferences plug-in for Flex Navigator",0 db "Date preferences plug-in for Flex Navigator",0
db "2003 (c) Mac Buster",0 db "2003 (c) Mac Buster",0

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 11.03.2025 savelij ; LAST UPDATE: 18.07.2025 savelij
INIT_VAR INIT_VAR
SETVAR CursorX ;EQU 0x00 SETVAR CursorX ;EQU 0x00
@ -307,7 +307,7 @@ SureLoop LD IX,SureTab
SCF SCF
JR Z,SureExit JR Z,SureExit
CP 0x0D CP 0x0D
JR Z,SureExit JR Z,SureOkey
RES 5,A RES 5,A
CP 'N' CP 'N'
JR Z,SureExit JR Z,SureExit
@ -704,7 +704,7 @@ FEAbout CALL FEResCursor
W_FILL 4,2,312,10,COLORI.BLACK W_FILL 4,2,312,10,COLORI.BLACK
W_TEXT 144,3,COLORI.WHITE,"About" W_TEXT 144,3,COLORI.WHITE,"About"
W_TEXT 96,18,COLORP.HIGHGRAY,"Flex Navigator File Editor" W_TEXT 96,18,COLORP.HIGHGRAY,"Flex Navigator File Editor"
W_TEXT 144,28,COLORP.HIGHGRAY,"v\{FLEX_VERS.EDITOR}" W_TEXT 96,28,COLORP.HIGHGRAY,"v\{FLEX_VERS.EDITOR} build \{BUILDDATE}"
W_TEXT 18,40,COLORP.HIGHGRAY,"Programming: (C)2000 Enin Anton" W_TEXT 18,40,COLORP.HIGHGRAY,"Programming: (C)2000 Enin Anton"
W_TEXT 92,50,COLORP.HIGHGRAY,"(C)2021 Mikhaltchenkov Dmitry" W_TEXT 92,50,COLORP.HIGHGRAY,"(C)2021 Mikhaltchenkov Dmitry"
W_BUTTON 124,66,72,14 W_BUTTON 124,66,72,14

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 20.03.2025 savelij ; LAST UPDATE: 18.07.2025 savelij
include macros.a80 include macros.a80
include fn_const.a80 include fn_const.a80
@ -13,12 +13,6 @@
include bios_sp.a80 include bios_sp.a80
include mouse_sp.a80 include mouse_sp.a80
org PluginOrg ; #C000 - Header lenght HDR_FLX "-EDIT",,,;FLXMODES.M_ADRORG
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: include feditor.a80 include feditor.a80

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 24.03.2025 savelij ; LAST UPDATE: 16.07.2025 savelij
FECSign: DB "FEC" FECSign: DB "FEC"
HomeKeyFlag: DB 0 HomeKeyFlag: DB 0
@ -28,7 +28,7 @@ ReadEditorIni: ld a,0
POP IY POP IY
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
LD A,(JUMPS.FNFUNCT) LD A,(JUMPS.FNREZ2)
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD HL,ADDR.FlexDIRECTORY LD HL,ADDR.FlexDIRECTORY
PUSH IY PUSH IY
@ -244,7 +244,7 @@ FESetupOkey: ld a,(ExitDlgFlag)
SPDSS DSSF.CURDIR SPDSS DSSF.CURDIR
GETPORT WINSP.CPU1 GETPORT WINSP.CPU1
PUSH AF PUSH AF
LD A,(JUMPS.FNFUNCT) LD A,(JUMPS.FNREZ2)
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD HL,ADDR.FlexDIRECTORY LD HL,ADDR.FlexDIRECTORY
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 30.05.2025 savelij ; LAST UPDATE: 18.07.2025 savelij
include macros.a80 include macros.a80
@ -15,12 +15,6 @@
include fat_dir_sp.a80 include fat_dir_sp.a80
include macros_sp.a80 include macros_sp.a80
org PluginOrg ; #C000 - Header lenght HDR_FLX "-VIEW",,,;FLXMODES.M_ADRORG
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: include fviewer.a80 include fviewer.a80

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 26.03.2025 savelij ; LAST UPDATE: 15.07.2025 savelij
include macros.a80 include macros.a80
include fn_const.a80 include fn_const.a80
@ -16,13 +16,7 @@
WINSP_CPU EQU WINSP.CPU1 WINSP_CPU EQU WINSP.CPU1
WINSP_ADR EQU 0x4000 WINSP_ADR EQU 0x4000
org PluginOrg ; #C000 - Header lenght HDR_FLX "-HELP"
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: include help.a80 PluginEntry: include help.a80

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 25.06.2025 savelij ; LAST UPDATE: 27.06.2025 savelij
DB 0,0 DB 0,0
DB " Flex Navigator",0,0 DB " Flex Navigator",0,0
@ -112,7 +112,7 @@
DB " Filtr... - 䨫ìâà ¤«ï ᯨ᪠ ä ©«®¢",0 DB " Filtr... - 䨫ìâà ¤«ï ᯨ᪠ ä ©«®¢",0
DB " Name - á®àâ¨à®¢ âì ¯® ¨¬¥­¨",0 DB " Name - á®àâ¨à®¢ âì ¯® ¨¬¥­¨",0
DB " Extention - á®àâ¨à®¢ âì ¯® à áè¨à¥­¨î",0 DB " Extention - á®àâ¨à®¢ âì ¯® à áè¨à¥­¨î",0
DB " Data - á®àâ¨à®¢ âì ¯® ¤ â¥",0 DB " Date - á®àâ¨à®¢ âì ¯® ¤ â¥",0
DB " Size - á®àâ¨à®¢ âì ¯® à §¬¥àã",0 DB " Size - á®àâ¨à®¢ âì ¯® à §¬¥àã",0
DB " Unsorted - ¡¥§ á®àâ¨à®¢ª¨",0,0,0," ",9 DB " Unsorted - ¡¥§ á®àâ¨à®¢ª¨",0,0,0," ",9
DB " Œ…<C592>ž - Config -",0,0 DB " Œ…<C592>ž - Config -",0,0

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 24.03.2025 savelij ; LAST UPDATE: 15.07.2025 savelij
;// DEVICE ZXSPECTRUM128 ;// DEVICE ZXSPECTRUM128
;[]=======================================================================[] ;[]=======================================================================[]
@ -24,13 +24,7 @@
include macros_sp.a80 include macros_sp.a80
include dss_sp.a80 include dss_sp.a80
org PluginOrg ; #C000 - Header lenght HDR_FLX "-TEST"
PluginStart: ; Flex Navigator plugin header
db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw PluginEntry ; EntryOffset
db 0x00 ; PluginMode
db 0x00, 0x00, 0x00 ; Reserved
PluginEntry: PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE MAKEWINDOW WINSUBOBJ.STORE

View File

@ -1,4 +1,4 @@
 
Flex Navigator для компьтера Sprinter Flex Navigator v1.16 для компьютера Sprinter
Собранные файлы забирать из папки fn Собранные файлы забирать из папки fn

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 24.03.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
PALITRA.RESERV EQU PALETTE + 0x34 PALITRA.RESERV EQU PALETTE + 0x34
@ -177,7 +177,7 @@ SaveSetup CALL SetClock
PUSH IY PUSH IY
SPDSS DSSF.CURDIR SPDSS DSSF.CURDIR
POP IY POP IY
LD HL,FlexDIRECTORY LD HL,BUF_REZ2.FlexDIRECTORY
PUSH IY PUSH IY
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
POP IY POP IY
@ -215,7 +215,7 @@ SaveSetup CALL SetClock
LDI LDI
LDI LDI
POP HL POP HL
LD BC,PANEL.FILEMASK LD BC,PANEL.FILE_MASK
ADD HL,BC ADD HL,BC
SUB A SUB A
.L1 LDI .L1 LDI
@ -229,7 +229,7 @@ SaveSetup CALL SetClock
LDI LDI
LDI LDI
POP HL POP HL
LD BC,PANEL.FILEMASK LD BC,PANEL.FILE_MASK
ADD HL,BC ADD HL,BC
SUB A SUB A
.L2 LDI .L2 LDI
@ -286,8 +286,8 @@ SetupExit LD A,(SaveFlag)
OR A OR A
RET Z RET Z
LD IX,LeftPanel LD IX,LeftPanel
LD HL,LeftPanel + PANEL.CURRPATH LD HL,LeftPanel + PANEL.CURR_PATH
LD DE,FlexDIRECTORY LD DE,BUF_REZ2.FlexDIRECTORY
LD A,(DE) LD A,(DE)
SetRef1 CP (HL) SetRef1 CP (HL)
JR NZ,SetRef2 JR NZ,SetRef2
@ -299,8 +299,8 @@ SetRef1 CP (HL)
CP (HL) CP (HL)
CALL Z,RefreshSetup CALL Z,RefreshSetup
SetRef2 LD IX,RightPanel SetRef2 LD IX,RightPanel
LD HL,RightPanel + PANEL.CURRPATH LD HL,RightPanel + PANEL.CURR_PATH
LD DE,FlexDIRECTORY LD DE,BUF_REZ2.FlexDIRECTORY
LD A,(DE) LD A,(DE)
SetRef3 CP (HL) SetRef3 CP (HL)
JR NZ,SetRef4 JR NZ,SetRef4
@ -313,7 +313,7 @@ SetRef3 CP (HL)
CALL Z,RefreshSetup CALL Z,RefreshSetup
SetRef4 PUSH IY SetRef4 PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
PUSH IY PUSH IY
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
@ -327,7 +327,7 @@ RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
POP IY POP IY
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
PUSH IY PUSH IY
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
@ -338,7 +338,7 @@ RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
LD A,(IY+PANEL.VIEWFLAG) LD A,(IY+PANEL.VIEWFLAG)

View File

@ -1,122 +1,161 @@
; LAST UPDATE: 25.03.2025 savelij ; LAST UPDATE: 18.07.2025 savelij
; !FIXIT ¯¥à¥¤¥« âì ®¤¨­ ª®¢ë¥ ®ª­  á à §­ë¬ ⥪á⮬ ¤«ï ®è¨¡®ª ¯®¤  ¢â®¬ â¨ç¥áªãî ¯à®æ¥¤ãàã ; !FIXIT ¯¥à¥¤¥« âì ®¤¨­ ª®¢ë¥ ®ª­  á à §­ë¬ ⥪á⮬ ¤«ï ®è¨¡®ª ¯®¤  ¢â®¬ â¨ç¥áªãî ¯à®æ¥¤ãàã
;[]===========================================================[] ;[]===========================================================[]
DOSErrorR ;[x] 30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª DOSErrorR ;[x] 30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª
CP (.error - .ErrorWins)/2 CP (.UNKerror - .ErrorWins) / 4
JR C,.calc_addr JR C,.calc_addr
LD HL,.error CP 0xF0
JR NC,.FNerror
LD HL,.UNKerror
JR .goto_addr JR .goto_addr
; ¤«ï ¢­ãâ७­¨å ®è¨¡®ª FN
.FNerror SUB FNinternal.PlugNotFound
LD HL,.PlugNotFound
JR .INT_ERR
.calc_addr: LD HL,.ErrorWins .calc_addr: LD HL,.ErrorWins
ADD A,A .INT_ERR ADD A,A ; *2
ADD A,A ; *4
ADD A,L ADD A,L
LD L,A LD L,A
JR NC,.goto_addr ADC A,H
INC H SUB L
.goto_addr: LD A,(HL) LD H,A
.goto_addr LD E,(HL)
INC HL
LD D,(HL) ;  ¤à¥á ⥪áâ  á • ¯®§¨æ¨¥©
INC HL
LD A,(DE)
INC DE
LD C,A ; X ¯®§¨æ¨ï ¬« ¤è¨© ¡ ©â
LD A,(DE)
INC DE
LD (.WINTYPE),A
RES 7,A
LD B,A ; X ¯®§¨æ¨ï áâ à訩 ¡ ©â
LD (.XPOSTXT),BC ; X ¯®§¨æ¨ï ¯¥ç â¨
LD (.XPOSTXT2),BC ; X ¯®§¨æ¨ï ¯¥ç â¨
LD (.ADRTXT),DE ;  ¤à¥á ⥪áâ 
LD (.ADRTXT2),DE ;  ¤à¥á ⥪áâ 
LD A,(HL)
INC HL INC HL
LD H,(HL) LD H,(HL)
LD L,A LD L,A ;  ¤à¥á ªã¤  ¯¥à¥å®¤¨âì ¯®á«¥ ®ª­ 
LD A,H OR H
OR L RET Z ; ¥á«¨  ¤à¥á ¯¥à¥å®¤  0, ¢ë室¨¬
RET Z LD (.ADRJUMP),HL
LD (.ADRJUMP2),HL
CALL SetMouse CALL SetMouse
JP (HL) LD A,0
.WINTYPE EQU $-1
BIT 7,A
JR NZ,.TYPE2
; ®ª­® á ⥪á⮬ ®è¨¡ª¨
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_ADRTEXT 0,18,COLORP.HIGHGRAY,0
.XPOSTXT EQU $-7 ; ¯®§¨æ¨ï ¯¥ç â¨
.ADRTXT EQU $-2 ;  ¤à¥á ⥪áâ 
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP 0
.ADRJUMP EQU $-2
.ErrorWins DEFW 0x0000 ; 00 ; ®ª­® á ⥪á⮬ ®è¨¡ª¨ ¨ ¢¢®¤®¬ ¡ãª¢ë ¤¨áª 
DEFW 0x0000 ; 01 .TYPE2
DEFW InvDrive ; 02 MAKEWINDOW WINSUBOBJ.STORE
DEFW FileNFound ; 03 W_MAIN 224,88,192,48
DEFW InvPath ; 04 W_FILL 4,2,184,10,COLORI.RED
DEFW 0x0000 ; 05 W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
DEFW FileNFound ; 06 W_ADRTEXT 0,18,COLORP.HIGHGRAY,0
DEFW FILEexists ; 07 .XPOSTXT2 EQU $-7 ; ¯®§¨æ¨ï ¯¥ç â¨
DEFW 0x0000 ; 08 .ADRTXT2 EQU $-2 ;  ¤à¥á ⥪áâ 
DEFW ROOToverflow ; 09 W_BUTTON 60,30,72,14
DEFW NoDiskSpace ; 0A W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
DEFW DIRnotEmpty ; 0B W_BORDER 120,15,16,12
DEFW 0x0000 ; 0C W_FILL 122,16,12,10,COLORI.WHITE
DEFW InvMedia ; 0D W_END
DEFW 0x0000 ; 0E JP 0
DEFW DIRexists ; 0F .ADRJUMP2 EQU $-2
DEFW InvName ; 10
DEFW InvEXEfile ; 11 ;  ¤à¥á ⥪áâ   ¤à¥á ªã¤  ¯¥à¥å®¤¨âì
DEFW InvEXEver ; 12 .ErrorWins DW 0, 0 ; 00
DEFW 0x0000 ; 13 DW 0, 0 ; 01
DEFW NotReady ; 14 DW TXTERR.InvDrive, InputDrive ;InvDrive ; 02
DEFW 0x0000 ; 15 DW TXTERR.FileNFound, ErrorLp ;FileNFound ; 03
DEFW 0x0000 ; 16 DW TXTERR.InvPath, ErrorLp0 ;InvPath ; 04
DEFW 0x0000 ; 17 DW 0, 0 ; 05
DEFW WriteProtect ; 18 ; [ ] 26/06/2024 DW TXTERR.FileNFound, ErrorLp ;FileNFound ; 06
DEFW 0x0000 ; 19 DW TXTERR.FILEexists, ErrorLp ;FILEexists ; 07
DEFW 0x0000 ; 1A DW 0, 0 ; 08
DEFW 0x0000 ; 1B DW TXTERR.ROOToverflow, ErrorLp ;ROOToverflow ; 09
DEFW NotReady ; 1C DW TXTERR.NoDiskSpace, ErrorLp ;NoDiskSpace ; 0A
DEFW 0x0000 ; 1D DW TXTERR.DIRnotEmpty, ErrorLp ;DIRnotEmpty ; 0B
DEFW NoMemory ; 1E DW 0, 0 ; 0C
DEFW 0x0000 ; 1F DW TXTERR.InvMedia, InputDrive ;InvMedia ; 0D
DEFW 0x0000 ; 20 DW 0, 0 ; 0E
DEFW 0x0000 ; 21 DW TXTERR.DIRexists, ErrorLp ;DIRexists ; 0F
DEFW 0x0000 ; 22 DW TXTERR.InvName, ErrorLp ;InvName ; 10
DEFW ToManyFilesInDir ; 23 DW TXTERR.InvEXEfile, ErrorLp ;InvEXEfile ; 11
DW TXTERR.InvEXEver, ErrorLp ;InvEXEver ; 12
DW 0, 0 ; 13
DW TXTERR.NotReady, InputDrive ;NotReady ; 14
DW 0, 0 ; 15
DW 0, 0 ; 16
DW 0, 0 ; 17
DW TXTERR.WriteProtect, ErrorLp ;WriteProtect ; 18 ; [ ] 26/06/2024
DW 0, 0 ; 19
DW 0, 0 ; 1A
DW 0, 0 ; 1B
DW TXTERR.NotReady, InputDrive ;NotReady ; 1C
DW 0, 0 ; 1D
DW TXTERR.NoMemory, ErrorLp ;NoMemory ; 1E
DW 0, 0 ; 1F
DW 0, 0 ; 20
DW 0, 0 ; 21
DW 0, 0 ; 22
DW TXTERR.ToManyFilesDir,ErrorLp ;ToManyFilesDir ; 23
; always last in the table: ; always last in the table:
.error: DW UnknownError ; if no ERROR in this table then will show this message .UNKerror: DW TXTERR.UnknownError, ErrorLp ;UnknownError ; if no ERROR in this table then will show this message
; ¤ «¥¥ ¢­ãâ७­¨¥ ®è¨¡ª¨ FN
.PlugNotFound DW TXTERR.PlugNotFound, ErrorLp
;-------------------------------------------------------------- ;--------------------------------------------------------------
WriteProtect: SETERRTEXT MACRO X,TEXT
MAKEWINDOW WINSUBOBJ.STORE DW X ; X ¯®§¨æ¨ï ¯¥ç â¨
W_MAIN 224,88,192,48 DB TEXT,0 ; áâப  ¡¥§ 0 ¢ ª®­æ¥
W_FILL 4,2,184,10,COLORI.RED ENDM
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 37,18,COLORP.HIGHGRAY,"Drive is write protected"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvDrive TXTERR
MAKEWINDOW WINSUBOBJ.STORE .PlugNotFound SETERRTEXT 56,"Plugin not found"
W_MAIN 224,88,192,48 .InvDrive SETERRTEXT 24 | 0x8000,"Invalid drive letter:"
W_FILL 4,2,184,10,COLORI.RED .FileNFound SETERRTEXT 60,"File not found"
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error" .InvPath SETERRTEXT 70,"Invalid path"
W_TEXT 24,18,COLORP.HIGHGRAY,"Invalid drive letter:" .FILEexists SETERRTEXT 72,"File exists"
W_BUTTON 60,30,72,14 .ROOToverflow SETERRTEXT 64,"ROOT overflow"
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok" .NoDiskSpace SETERRTEXT 62,"No disk space"
W_BORDER 120,15,16,12 .DIRnotEmpty SETERRTEXT 40,"Directory is not empty"
W_FILL 122,16,12,10,COLORI.WHITE .InvMedia SETERRTEXT 46 | 0x8000,"Invalid media:"
W_END .DIRexists SETERRTEXT 56,"Directory exists"
JP InputDrive .InvName SETERRTEXT 66,"Invalid name"
.InvEXEfile SETERRTEXT 60,"Invalid EXE file"
.InvEXEver SETERRTEXT 40,"Unsupport EXE version"
.NotReady SETERRTEXT 36 | 0x8000,"Drive not ready:"
.WriteProtect SETERRTEXT 37,"Drive is write protected"
.NoMemory SETERRTEXT 52,"No memory space"
.ToManyFilesDir SETERRTEXT 30,"Too many directory entries"
.UnknownError SETERRTEXT 60,"Unknown Error"
InvMedia
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 46,18,COLORP.HIGHGRAY,"Invalid media:"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_BORDER 120,15,16,12
W_FILL 122,16,12,10,COLORI.WHITE
W_END
JR InputDrive
NotReady
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 36,18,COLORP.HIGHGRAY,"Drive not ready:"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_BORDER 120,15,16,12
W_FILL 122,16,12,10,COLORI.WHITE
W_END
InputDrive PUSH IY InputDrive PUSH IY
SPDSS DSSF.CURDISK SPDSS DSSF.CURDISK
POP IY POP IY
ADD A,"A" ADD A,'A'
LD (CurDrv),A LD (CurDrv),A
LD IX,DriveStr LD IX,DriveStr
LD HL,ErrorTab1 LD HL,ErrorTab1
@ -125,7 +164,7 @@ InputDrive PUSH IY
CALL SetClock CALL SetClock
LD A,(CurDrv) LD A,(CurDrv)
RES 5,A RES 5,A
SUB "A" SUB 'A'
PUSH IY PUSH IY
SPDSS DSSF.CHDISK SPDSS DSSF.CHDISK
POP IY POP IY
@ -139,7 +178,7 @@ InputDrive PUSH IY
LD A,0x01 LD A,0x01
RET RET
ErrorTab1 DEFW 0x011C,0x0164,0x0076,0x0084,0x01,0x0000,InputLine.InpLnExtN,0x0000 ErrorTab1 DEFW 284,356,118,132,%0000000000000001,%0000000000000000,InputLine.InpLnExtN,0
DEFW 0x8000 DEFW 0x8000
DriveStr DEFB 0x01,0x00,0x00,0x00 DriveStr DEFB 0x01,0x00,0x00,0x00
@ -150,15 +189,6 @@ DriveStr DEFB 0x01,0x00,0x00,0x00
CurDrv DUPL 0x02,0x00 CurDrv DUPL 0x02,0x00
;-------------------------------------------------------------- ;--------------------------------------------------------------
InvPath
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 70,18,COLORP.HIGHGRAY,"Invalid path"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
ErrorLp0 LD IX,ErrorTab2 ErrorLp0 LD IX,ErrorTab2
CALL TestCoords CALL TestCoords
SPDSS DSSF.SCANKEY SPDSS DSSF.SCANKEY
@ -186,141 +216,10 @@ ErrorExt0
LD A,0x01 LD A,0x01
RET RET
ErrorTab2 DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt0,0x0000 ErrorTab2 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt0,0
DEFW 0x8000 DEFW 0x8000
;-------------------------------------------------------------- ;--------------------------------------------------------------
FileNFound
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 60,18,COLORP.HIGHGRAY,"File not found"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
ROOToverflow
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 64,18,COLORP.HIGHGRAY,"ROOT overflow"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
NoDiskSpace
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 62,18,COLORP.HIGHGRAY,"No disk space"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
DIRnotEmpty
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 40,18,COLORP.HIGHGRAY,"Directory is not empty"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
FILEexists
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 72,18,COLORP.HIGHGRAY,"File exists"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
DIRexists
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 56,18,COLORP.HIGHGRAY,"Directory exists"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvName
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 66,18,COLORP.HIGHGRAY,"Invalid name"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvEXEfile
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 60,18,COLORP.HIGHGRAY,"Invalid EXE file"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvEXEver
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 40,18,COLORP.HIGHGRAY,"Unsupport EXE version"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
NoMemory
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 52,18,COLORP.HIGHGRAY,"No memory space"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
ToManyFilesInDir:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 30,18,COLORP.HIGHGRAY,"Too many directory entries"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
UnknownError: ;[x] 30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 60,18,COLORP.HIGHGRAY,"Unknown Error"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
;JP ErrorLp
ErrorLp LD IX,ErrorTab3 ErrorLp LD IX,ErrorTab3
CALL TestCoords CALL TestCoords
@ -342,5 +241,5 @@ ErrorExt
SUB A SUB A
RET RET
ErrorTab3 DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt,0x0000 ErrorTab3 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt,0
DEFW 0x8000 DEFW 0x8000

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
; LAST UPDATE: 25.06.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
FileInfoR LD A,(IY+PANEL.EFL) FileInfoR LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
@ -16,10 +16,10 @@ FileInfoR LD A,(IY+PANEL.EFL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CFL) LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CFH) LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
@ -131,7 +131,7 @@ FName EQU $ - STRLEN(" ") - 1
FAttrib EQU $ - STRLEN(" ") - 1 FAttrib EQU $ - STRLEN(" ") - 1
W_TEXT 10,44,COLORP.HIGHGRAY,"Len: " W_TEXT 10,44,COLORP.HIGHGRAY,"Len: "
FLen EQU $ - STRLEN(" ") - 1 FLen EQU $ - STRLEN(" ") - 1
W_TEXT 10,56,COLORP.HIGHGRAY,"Data: " W_TEXT 10,56,COLORP.HIGHGRAY,"Date: "
FData EQU $ - STRLEN(" ") - 1 FData EQU $ - STRLEN(" ") - 1
FTime EQU $ - STRLEN(" ") - 1 FTime EQU $ - STRLEN(" ") - 1
W_TEXT 10,68,COLORP.HIGHGRAY,"First cluster: " W_TEXT 10,68,COLORP.HIGHGRAY,"First cluster: "
@ -162,8 +162,8 @@ FileInfoExt:
FAtributs: DEFB "--ad-shr" FAtributs: DEFB "--ad-shr"
;[]==========================================================[] ;[]==========================================================[]
PrintFileR LD A,(IY+PANEL.EFL) PrintFileR LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
@ -176,10 +176,10 @@ PrintFileR LD A,(IY+PANEL.EFL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CFL) LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CFH) LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
@ -236,7 +236,7 @@ PrintFileR LD A,(IY+PANEL.EFL)
W_END W_END
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURRPATH LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
LD DE,WorkBuffer LD DE,WorkBuffer
SUB A SUB A
@ -277,10 +277,10 @@ PrintFileR LD A,(IY+PANEL.EFL)
OR L OR L
JR NZ,InitPrn JR NZ,InitPrn
INC E INC E
InitPrn LD (IX+PROC.MAXL1),L InitPrn LD (IX + PROC.MAX_PAGES),L
LD (IX+PROC.MAXH1),H LD (IX + PROC.MAX_PAGES + 1),H
LD (IX+PROC.MAXL2),E LD (IX + PROC.MAX_PAGES + 2),E
LD (IX+PROC.MAXH2),0x00 LD (IX + PROC.MAX_PAGES + 3),0x00
CALL InitProcess CALL InitProcess
LD HL,PrnFileName LD HL,PrnFileName
SPDSS DSSF.OPEN,,1 SPDSS DSSF.OPEN,,1
@ -410,19 +410,19 @@ NxtPrnProc LD A,E
PUSH DE PUSH DE
PUSH BC PUSH BC
LD IX,ProcessFPrn LD IX,ProcessFPrn
LD L,(IX+PROC.CURL1) LD L,(IX + PROC.CURR_PAGE)
LD H,(IX+PROC.CURH1) LD H,(IX + PROC.CURR_PAGE + 1)
INC HL INC HL
LD (IX+PROC.CURL1),L LD (IX + PROC.CURR_PAGE),L
LD (IX+PROC.CURH1),H LD (IX + PROC.CURR_PAGE + 1),H
LD A,H LD A,H
OR L OR L
JR NZ,.L1 JR NZ,.L1
LD L,(IX+PROC.CURL2) LD L,(IX + PROC.CURR_PAGE + 2)
LD H,(IX+PROC.CURH2) LD H,(IX + PROC.CURR_PAGE + 3)
INC HL INC HL
LD (IX+PROC.CURL2),L LD (IX + PROC.CURR_PAGE + 2),L
LD (IX+PROC.CURH2),H LD (IX + PROC.CURR_PAGE + 3),H
.L1 CALL PrnProcess .L1 CALL PrnProcess
POP BC POP BC
POP DE POP DE

View File

@ -1,9 +1,9 @@
; LAST UPDATE: 27.03.2025 savelij ; LAST UPDATE: 24.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
QSearchR LD A,(IY+PANEL.EFL) QSearchR LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
SETPORT WINSP.Y_PORT,0xC0 SETPORT WINSP.Y_PORT,0xC0
LD HL,SearchN LD HL,SearchN
@ -13,8 +13,8 @@ QSearchR LD A,(IY+PANEL.EFL)
INC HL INC HL
DJNZ .L1 DJNZ .L1
LD (SrchLen),A LD (SrchLen),A
LD L,(IY+PANEL.XL) LD L,(IY+PANEL.X)
LD H,(IY+PANEL.XH) LD H,(IY+PANEL.X + 1)
LD DE,0x000A LD DE,0x000A
ADD HL,DE ADD HL,DE
LD (.SrchX1),HL LD (.SrchX1),HL
@ -144,10 +144,10 @@ FoundSFile PUSH HL
CALL PrintInpLn CALL PrintInpLn
POP HL POP HL
EX DE,HL EX DE,HL
LD L,(IY+PANEL.CFL) LD L,(IY+PANEL.CURR_FILE)
LD H,(IY+PANEL.CFH) LD H,(IY+PANEL.CURR_FILE + 1)
LD C,(IY+PANEL.FFL) LD C,(IY+PANEL.FIRST_FILE)
LD B,(IY+PANEL.FFH) LD B,(IY+PANEL.FIRST_FILE + 1)
ADD HL,BC ADD HL,BC
SBC HL,DE SBC HL,DE
EX DE,HL EX DE,HL
@ -155,8 +155,8 @@ FoundSFile PUSH HL
PUSH HL PUSH HL
CALL ResInvert CALL ResInvert
POP HL POP HL
LD C,(IY+PANEL.FPL) LD C,(IY+PANEL.FILES_PAGE)
LD B,(IY+PANEL.FPH) LD B,(IY+PANEL.FILES_PAGE + 1)
LD DE,0x0000 LD DE,0x0000
EX DE,HL EX DE,HL
OR A OR A
@ -169,12 +169,12 @@ FoundSFile PUSH HL
SBC HL,BC SBC HL,BC
JR NC,.L1 JR NC,.L1
ADD HL,BC ADD HL,BC
LD (IY+PANEL.CFL),L LD (IY+PANEL.CURR_FILE),L
LD (IY+PANEL.CFH),H LD (IY+PANEL.CURR_FILE + 1),H
LD C,(IY+PANEL.FFL) LD C,(IY+PANEL.FIRST_FILE)
LD B,(IY+PANEL.FFH) LD B,(IY+PANEL.FIRST_FILE + 1)
LD (IY+PANEL.FFL),E LD (IY+PANEL.FIRST_FILE),E
LD (IY+PANEL.FFH),D LD (IY+PANEL.FIRST_FILE + 1),D
EX DE,HL EX DE,HL
OR A OR A
SBC HL,BC SBC HL,BC
@ -183,7 +183,7 @@ FoundSFile PUSH HL
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
POP IX POP IX
LD DE,PANEL.BARXL LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
LD A,(IY+PANEL.VIEWFLAG) LD A,(IY+PANEL.VIEWFLAG)
AND VIEWFLAG.MASK AND VIEWFLAG.MASK

View File

@ -1,9 +1,9 @@
; LAST UPDATE: 02.06.2025 savelij ; LAST UPDATE: 25.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
MarkFileR LD A,(IY+PANEL.EFL) MarkFileR LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
@ -15,10 +15,10 @@ MarkFileR LD A,(IY+PANEL.EFL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CFL) LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CFH) LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
@ -64,10 +64,10 @@ UnSelectFile: LD IXL,0x00
.L2 .L2
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
SETPORT WINSP.Y_PORT,0xC0 SETPORT WINSP.Y_PORT,0xC0
LD L,(IY+PANEL.FFL) LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FFH) LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CFL) LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CFH) LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ADD HL,DE
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
@ -85,25 +85,29 @@ UnSelectFile: LD IXL,0x00
POP HL POP HL
BIT DIR.B_Dir,C ; íâ® ¤¨à ? BIT DIR.B_Dir,C ; íâ® ¤¨à ?
IF MARK_DIR IF MARK_DIR
CALL NZ,COUNTING_DIR CALL NZ,COUNTING_DIR ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨àë
ELSE ELSE
JR NZ,.MrFile1 JR NZ,.MrFile1 ; ¤¨à¥ª®à¨¨ ª®¯¨à®¢ âì ­¥ 㬥¥¬, ⮫쪮 ä ©«ë
ENDIF ENDIF
; íâ® ä ©« ; íâ® ä ©«
LD B,(HL) ; áâ à®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©«  LD B,(HL) ; áâ à®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©« 
LD A,IXL LD A,IXL
LD (HL),A ; ­®¢®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©«  LD (HL),A ; ­®¢®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©« 
LD A,C
LD DE,WorkBuffer LD DE,WorkBuffer
PUSH BC PUSH BC
LD BC,FileHDR.SIZE LD BC,FileHDR.SIZE
LDIR LDIR
BIT DIR.B_Dir,A ; ä ©« ¨«¨ ¤¨à 
JR Z,.L8
IF MARK_DIR IF MARK_DIR
; ª®¯¨à㥬 à §¬¥à ¢ ¡ ©â å ¨§ à §¬¥à  ¤¨àë
LD HL,COUNTING_DIR.FILES_SIZE LD HL,COUNTING_DIR.FILES_SIZE
LD DE,WorkBuffer + FileHDR.SizeBytes LD DE,WorkBuffer + FileHDR.SizeBytes
LD BC,DWORD LD BC,DWORD
LDIR LDIR
ENDIF ENDIF
POP BC .L8 POP BC
.MrFile1 POP AF .MrFile1 POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
IF MARK_DIR = 0 IF MARK_DIR = 0
@ -116,8 +120,8 @@ UnSelectFile: LD IXL,0x00
BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
JR NZ,.MarkFull JR NZ,.MarkFull
; ¯à¨ ªà âª®¬ ¯®ª §¥ ä ©«®¢ ; ¯à¨ ªà âª®¬ ¯®ª §¥ ä ©«®¢
LD L,(IY+PANEL.CFL) LD L,(IY+PANEL.CURR_FILE)
LD H,(IY+PANEL.CFH) LD H,(IY+PANEL.CURR_FILE + 1)
LD E,L LD E,L
LD D,H LD D,H
ADD HL,HL ADD HL,HL
@ -149,8 +153,8 @@ UnSelectFile: LD IXL,0x00
JR .MarkExit2 JR .MarkExit2
; ¯à¨ ¯®«­®¬ ¯®ª §¥ ä ©«®¢ ; ¯à¨ ¯®«­®¬ ¯®ª §¥ ä ©«®¢
.MarkFull LD L,(IY+PANEL.CFL) .MarkFull LD L,(IY+PANEL.CURR_FILE)
LD H,(IY+PANEL.CFH) LD H,(IY+PANEL.CURR_FILE + 1)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
@ -173,57 +177,57 @@ UnSelectFile: LD IXL,0x00
JR Z,.MarkExit2 JR Z,.MarkExit2
; ãáâ ­®¢ª  ¢ë¡®à ä ©«  ; ãáâ ­®¢ª  ¢ë¡®à ä ©« 
.MarkExit1 LD IX,WorkBuffer .MarkExit1 LD IX,WorkBuffer
LD L,(IY + PANEL.MFL) LD L,(IY + PANEL.FILES_MARK)
LD H,(IY + PANEL.MFH) LD H,(IY + PANEL.FILES_MARK + 1)
INC HL INC HL
LD (IY + PANEL.MFL),L LD (IY + PANEL.FILES_MARK),L
LD (IY + PANEL.MFH),H ; ®¡­®¢«¥­¨¥ ª®«¨ç¥á⢠ ¯®¬¥ç¥­­ëå ä ©«®¢ LD (IY + PANEL.FILES_MARK + 1),H ; ®¡­®¢«¥­¨¥ ª®«¨ç¥á⢠ ¯®¬¥ç¥­­ëå ä ©«®¢
LD L,(IX + FileHDR.SizeBytes) LD L,(IX + FileHDR.SizeBytes)
LD H,(IX + FileHDR.SizeBytes + 1) LD H,(IX + FileHDR.SizeBytes + 1)
LD E,(IY + PANEL.MBL1) LD E,(IY + PANEL.BYTES_MARK)
LD D,(IY + PANEL.MBH1) LD D,(IY + PANEL.BYTES_MARK + 1)
XOR A ; [ ] fat32 XOR A ; [ ] fat32
ADD HL,DE ADD HL,DE
LD (IY + PANEL.MBL1),L LD (IY + PANEL.BYTES_MARK),L
LD (IY + PANEL.MBH1),H ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 15-0 LD (IY + PANEL.BYTES_MARK + 1),H ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 15-0
LD L,(IX + FileHDR.SizeBytes + 2) LD L,(IX + FileHDR.SizeBytes + 2)
LD H,(IX + FileHDR.SizeBytes + 3) LD H,(IX + FileHDR.SizeBytes + 3)
; [ ] fat32 ; [ ] fat32
LD E,(IY + PANEL.MBL2) LD E,(IY + PANEL.BYTES_MARK + 2)
LD D,(IY + PANEL.MBH2) LD D,(IY + PANEL.BYTES_MARK + 3)
ADC HL,DE ADC HL,DE
; [ ] fat32 ; [ ] fat32
ADC A,(IY + PANEL.MBL3) ADC A,(IY + PANEL.BYTES_MARK_H)
LD (IY + PANEL.MBL3),A ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 32-39 LD (IY + PANEL.BYTES_MARK_H),A ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 32-39
LD (IY + PANEL.MBL2),L LD (IY + PANEL.BYTES_MARK + 2),L
LD (IY + PANEL.MBH2),H ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 31-15 LD (IY + PANEL.BYTES_MARK + 3),H ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 31-15
RET RET
; á­ï⨥ ¢ë¡®à  ä ©«  ; á­ï⨥ ¢ë¡®à  ä ©« 
.MarkExit2 LD IX,WorkBuffer .MarkExit2 LD IX,WorkBuffer
LD L,(IY + PANEL.MFL) LD L,(IY + PANEL.FILES_MARK)
LD H,(IY + PANEL.MFH) LD H,(IY + PANEL.FILES_MARK + 1)
DEC HL DEC HL
LD (IY + PANEL.MFL),L LD (IY + PANEL.FILES_MARK),L
LD (IY + PANEL.MFH),H LD (IY + PANEL.FILES_MARK + 1),H
LD L,(IY + PANEL.MBL1) LD L,(IY + PANEL.BYTES_MARK)
LD H,(IY + PANEL.MBH1) LD H,(IY + PANEL.BYTES_MARK + 1)
LD E,(IX + FileHDR.SizeBytes) LD E,(IX + FileHDR.SizeBytes)
LD D,(IX + FileHDR.SizeBytes + 1) LD D,(IX + FileHDR.SizeBytes + 1)
XOR A XOR A
SBC HL,DE SBC HL,DE
LD (IY + PANEL.MBL1),L LD (IY + PANEL.BYTES_MARK),L
LD (IY + PANEL.MBH1),H LD (IY + PANEL.BYTES_MARK + 1),H
LD L,(IY + PANEL.MBL2) LD L,(IY + PANEL.BYTES_MARK + 2)
LD H,(IY + PANEL.MBH2) LD H,(IY + PANEL.BYTES_MARK + 3)
LD E,(IX + FileHDR.SizeBytes + 2) LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3) LD D,(IX + FileHDR.SizeBytes + 3)
SBC HL,DE SBC HL,DE
; [ ] fat32 ; [ ] fat32
ADC A,(IY + PANEL.MBL3) ADC A,(IY + PANEL.BYTES_MARK_H)
LD (IY + PANEL.MBL3),A LD (IY + PANEL.BYTES_MARK_H),A
LD (IY + PANEL.MBL2),L LD (IY + PANEL.BYTES_MARK + 2),L
LD (IY + PANEL.MBH2),H LD (IY + PANEL.BYTES_MARK + 3),H
RET RET
;[]==========================================================[] ;[]==========================================================[]
@ -238,8 +242,8 @@ MarkGroupRN: LD HL,SetInvert
PUSH HL PUSH HL
LD A,0x01 LD A,0x01
SelectGroup: LD (SelMode),A SelectGroup: LD (SelMode),A
LD A,(IY+PANEL.EFL) LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
@ -301,13 +305,13 @@ MarkGNext
LD DE,SelMask LD DE,SelMask
EX AF,AF' ; [ ] fat32 EX AF,AF' ; [ ] fat32
EXX EXX
LD L,(IY+PANEL.MBL1) LD L,(IY+PANEL.BYTES_MARK)
LD H,(IY+PANEL.MBH1) LD H,(IY+PANEL.BYTES_MARK + 1)
LD E,(IY+PANEL.MBL2) LD E,(IY+PANEL.BYTES_MARK + 2)
LD D,(IY+PANEL.MBH2) LD D,(IY+PANEL.BYTES_MARK + 3)
LD A,(IY+PANEL.MBL3) ; [ ] FAT32 LD A,(IY+PANEL.BYTES_MARK_H) ; [ ] FAT32
LD C,(IY+PANEL.MFL) LD C,(IY+PANEL.FILES_MARK)
LD B,(IY+PANEL.MFH) LD B,(IY+PANEL.FILES_MARK + 1)
EXX EXX
EX AF,AF' ; [ ] fat32 EX AF,AF' ; [ ] fat32
PUSH IY PUSH IY
@ -360,13 +364,13 @@ Select8: LD DE,FileHDR.SIZE
EX AF,AF' EX AF,AF'
POP IY POP IY
EXX EXX
LD (IY+PANEL.MBL1),L LD (IY+PANEL.BYTES_MARK),L
LD (IY+PANEL.MBH1),H LD (IY+PANEL.BYTES_MARK + 1),H
LD (IY+PANEL.MBL2),E LD (IY+PANEL.BYTES_MARK + 2),E
LD (IY+PANEL.MBH2),D LD (IY+PANEL.BYTES_MARK + 3),D
LD (IY+PANEL.MBL3),A ; [ ] FAT32 LD (IY+PANEL.BYTES_MARK_H),A ; [ ] FAT32
LD (IY+PANEL.MFL),C LD (IY+PANEL.FILES_MARK),C
LD (IY+PANEL.MFH),B LD (IY+PANEL.FILES_MARK + 1),B
EXX EXX
POP AF POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
@ -463,8 +467,8 @@ SMask21 LD (DE),A
SelectAllR: CALL ResInvert SelectAllR: CALL ResInvert
SelectAllRN: LD HL,SetInvert SelectAllRN: LD HL,SetInvert
PUSH HL PUSH HL
LD A,(IY+PANEL.EFL) LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
@ -515,22 +519,22 @@ SelectAllRN: LD HL,SetInvert
POP AF POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
EXX EXX
LD E,(IY+PANEL.MFL) LD E,(IY+PANEL.FILES_MARK)
LD D,(IY+PANEL.MFH) LD D,(IY+PANEL.FILES_MARK + 1)
OR A OR A
SBC HL,DE SBC HL,DE
RET Z RET Z
ADD HL,DE ADD HL,DE
LD (IY+PANEL.MFL),L LD (IY+PANEL.FILES_MARK),L
LD (IY+PANEL.MFH),H LD (IY+PANEL.FILES_MARK + 1),H
EXX EXX
LD (IY+PANEL.MBL1),L LD (IY+PANEL.BYTES_MARK),L
LD (IY+PANEL.MBH1),H LD (IY+PANEL.BYTES_MARK + 1),H
LD (IY+PANEL.MBL2),E LD (IY+PANEL.BYTES_MARK + 2),E
LD (IY+PANEL.MBH2),D LD (IY+PANEL.BYTES_MARK + 3),D
; [ ] FAT32 ; [ ] FAT32
EX AF,AF' EX AF,AF'
LD (IY+PANEL.MBL3),A LD (IY+PANEL.BYTES_MARK_H),A
CALL PrintDIR CALL PrintDIR
JP PrnFileInfo JP PrnFileInfo
@ -538,19 +542,19 @@ SelectAllRN: LD HL,SetInvert
UnSelectAllR: CALL ResInvert UnSelectAllR: CALL ResInvert
UnSelectAllRN: LD HL,SetInvert UnSelectAllRN: LD HL,SetInvert
PUSH HL PUSH HL
LD A,(IY+PANEL.EFL) LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
LD A,(IY+PANEL.MFL) LD A,(IY+PANEL.FILES_MARK)
OR (IY+PANEL.MFH) OR (IY+PANEL.FILES_MARK + 1)
RET Z RET Z
PUSH IY PUSH IY
POP HL POP HL
LD BC,PANEL.MFL LD BC,PANEL.FILES_MARK
ADD HL,BC ADD HL,BC
LD B,PANEL.FILEMASK - PANEL.MFL LD B,PANEL.FILE_MASK - PANEL.FILES_MARK
.L2 LD (HL),0 .L2 LD (HL),0
INC HL INC HL
DJNZ .L2 DJNZ .L2
@ -580,8 +584,8 @@ UnSelA1: RES 0,(HL)
InvertSelectR: CALL ResInvert InvertSelectR: CALL ResInvert
InvertSelectRN: LD HL,SetInvert InvertSelectRN: LD HL,SetInvert
PUSH HL PUSH HL
LD A,(IY+PANEL.EFL) LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.EFH) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ RET NZ
@ -599,13 +603,13 @@ InvertSelectRN: LD HL,SetInvert
LD B,0x00 LD B,0x00
EX AF,AF' ; [ ] fat32 EX AF,AF' ; [ ] fat32
EXX EXX
LD L,(IY + PANEL.MBL1) LD L,(IY + PANEL.BYTES_MARK)
LD H,(IY + PANEL.MBH1) LD H,(IY + PANEL.BYTES_MARK + 1)
LD E,(IY + PANEL.MBL2) LD E,(IY + PANEL.BYTES_MARK + 2)
LD D,(IY + PANEL.MBH2) LD D,(IY + PANEL.BYTES_MARK + 3)
LD A,(IY + PANEL.MBL3) ; [ ] FAT32 LD A,(IY + PANEL.BYTES_MARK_H) ; [ ] FAT32
LD C,(IY + PANEL.MFL) LD C,(IY + PANEL.FILES_MARK)
LD B,(IY + PANEL.MFH) LD B,(IY + PANEL.FILES_MARK + 1)
EXX EXX
EX AF,AF' ; [ ] fat32 EX AF,AF' ; [ ] fat32
.loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE Dir .loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE Dir
@ -624,13 +628,13 @@ InvertSelectRN: LD HL,SetInvert
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
EX AF,AF' ; [ ] fat32 EX AF,AF' ; [ ] fat32
EXX EXX
LD (IY + PANEL.MBL1),L LD (IY + PANEL.BYTES_MARK),L
LD (IY + PANEL.MBH1),H LD (IY + PANEL.BYTES_MARK + 1),H
LD (IY + PANEL.MBL2),E LD (IY + PANEL.BYTES_MARK + 2),E
LD (IY + PANEL.MBH2),D LD (IY + PANEL.BYTES_MARK + 3),D
LD (IY + PANEL.MBL3),A ; [ ] FAT32 LD (IY + PANEL.BYTES_MARK_H),A ; [ ] FAT32
LD (IY + PANEL.MFL),C LD (IY + PANEL.FILES_MARK),C
LD (IY + PANEL.MFH),B LD (IY + PANEL.FILES_MARK + 1),B
EXX EXX
LD A,B LD A,B
OR A OR A
@ -677,13 +681,25 @@ SUB_SIZE: EX AF,AF' ; [ ] fat32
IF MARK_DIR IF MARK_DIR
; ¯®¤áç¥â ¢ ¡ ©â å à §¬¥à  ®â¬¥ç¥­­®© ¤¨à¥ªâ®à¨¨ ; ¯®¤áç¥â ¢ ¡ ©â å à §¬¥à  ®â¬¥ç¥­­®© ¤¨à¥ªâ®à¨¨
COUNTING_DIR PUSH IX ; HL -  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ¬¥àïâì
COUNTING_DIR
.OLDPATH EQU WorkBuffer + 0x300 ; á®åà ­¥­­ë© ⥪ã騩 ¯ãâì
.CURRPATH EQU WorkBuffer + 0x200 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì
PUSH IX
PUSH IY PUSH IY
PUSH HL PUSH HL
PUSH BC PUSH BC
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
PUSH AF PUSH AF
PUSH HL PUSH HL
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1 ; ¢ª«îç ¥¬ ¯ £ã á ¤¨à¥ªâ®à¨¥© ⥪ã饩 ¯ ­¥«¨
SETPORT WINSP.CPU3,,0
XOR A XOR A
LD H,A LD H,A
LD L,A LD L,A
@ -694,7 +710,7 @@ COUNTING_DIR PUSH IX
LD (.CURR_DIRNAME),HL LD (.CURR_DIRNAME),HL
; á®åà ­¥­¨¥ ⥪ã饣® ¯ã⨠¤«ï ¢®§¢à â  ; á®åà ­¥­¨¥ ⥪ã饣® ¯ã⨠¤«ï ¢®§¢à â 
SPDSS DSSF.CURDISK SPDSS DSSF.CURDISK
LD HL,WorkBuffer + 0x300 ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â  LD HL,.OLDPATH ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â 
ADD A,'A' ADD A,'A'
LD (HL),A LD (HL),A
INC HL INC HL
@ -702,7 +718,7 @@ COUNTING_DIR PUSH IX
INC HL INC HL
SPDSS DSSF.CURDIR SPDSS DSSF.CURDIR
POP DE POP DE
JR C,.END_COUNT JP C,.END_COUNT
; ¢å®¤ ¢ ¤¨à¥ªâ®à¨î ; ¢å®¤ ¢ ¤¨à¥ªâ®à¨î
LD HL,FileHDR.Name LD HL,FileHDR.Name
ADD HL,DE ADD HL,DE
@ -751,7 +767,7 @@ COUNTING_DIR PUSH IX
; ¢®§¢à â ⥪ã饣® ¯ã⨠; ¢®§¢à â ⥪ã饣® ¯ãâ¨
.END_COUNT POP AF .END_COUNT POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,WorkBuffer + 0x300 ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â  LD HL,.OLDPATH ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â 
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
POP BC POP BC
POP HL POP HL
@ -782,7 +798,7 @@ COUNTING_DIR PUSH IX
.SP1 PUSH IX .SP1 PUSH IX
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
SPDSS DSSF.CURDISK SPDSS DSSF.CURDISK
LD HL,WorkBuffer + 0x200 LD HL,.CURRPATH
ADD A,'A' ADD A,'A'
LD (HL),A LD (HL),A
INC HL INC HL
@ -846,7 +862,7 @@ COUNTING_DIR PUSH IX
DIR.M_ReadOnly + \ DIR.M_ReadOnly + \
DIR.M_Dir DIR.M_Dir
.FFF1 LD HL,.FILES_MASK .FFF1 LD HL,.FILES_MASK
LD DE,WorkBuffer + 0x300 LD DE,.OLDPATH
PUSH DE PUSH DE
PUSH IX PUSH IX
SPDSS DSSF.F_FIRST,0 SPDSS DSSF.F_FIRST,0
@ -855,7 +871,7 @@ COUNTING_DIR PUSH IX
RET RET
; ¯®¨áª á«¥¤ãî饣® ®¯¨á â¥«ï ; ¯®¨áª á«¥¤ãî饣® ®¯¨á â¥«ï
.F_NEXT LD DE,WorkBuffer + 0x300 .F_NEXT LD DE,.OLDPATH
PUSH DE PUSH DE
PUSH IX PUSH IX
SPDSS DSSF.F_NEXT SPDSS DSSF.F_NEXT
@ -869,7 +885,208 @@ COUNTING_DIR PUSH IX
.DIR_NAME DZ " " .DIR_NAME DZ " "
.CURR_DIRNAME DW 0 .CURR_DIRNAME DW 0
; ¯®¤áç¥â à §¬¥à  ¤¨à¥ªâ®à¨¨
; <20>  ¢å®¤¥:
; HL -  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ¬¥àïâì
; <20>  ¢ë室¥:
; BCDE' - à §¬¥à ¢ ¡ ©â å
GetDirSizeR CALL COUNTING_DIR GetDirSizeR CALL COUNTING_DIR
LD HL,COUNTING_DIR.FILES_SIZE LD HL,COUNTING_DIR.FILES_SIZE
JP GET_DWORD CALL GET_DWORD
EXX
RET
; á®§¤ ­¨¥ ¯ ¯®ª ­  ¯à¨¥¬­¨ª¥
; HL -  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ª®¯¨à®¢ âì
MkdirsDstR
.OLDPATH EQU WorkBuffer + 0x300 ; á®åà ­¥­­ë© ⥪ã騩 ¯ãâì
.CURRPATHSRC EQU WorkBuffer + 0x200 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¨áâ®ç­¨ª 
.CURRPATHDST EQU WorkBuffer + 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¯à¨¥¬­¨ª 
.FINDBUF EQU WorkBuffer
PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
LD (.OLDSP),SP
PUSH HL
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD DE,RightPanel ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
LD A,(RAMPAGES.LEFTPANEL) ; ¨§ ª ª®© áâà ­¨æë ¯ ­¥«¨ ¡à âì ¯ãâì
JR Z,.L1
LD DE,LeftPanel ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
LD A,(RAMPAGES.RIGHTPANEL) ; ¨§ ª ª®© áâà ­¨æë ¯ ­¥«¨ ¡à âì ¯ãâì
.L1 ; ¢ª«îç ¥¬ ¯ £ã á ¤¨à¥ªâ®à¨¥© ⥪ã饩 ¯ ­¥«¨
SETPORT WINSP.CPU3,,0
LD HL,PANEL.CURR_PATH
ADD HL,DE ; ®âªã¤  ¯ãâì ¯à¨¥¬­¨ª  ¢§ïâì
LD DE,.CURRPATHDST ; ¡ãä¥à ¯ã⨠¯à¨¥¬­¨ª 
CALL .COPYNAME2PATH
LD (.ENDPATHDST),DE ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
; á®åà ­¥­¨¥ ⥪ã饣® ¯ã⨠¤«ï ¢®§¢à â 
SPDSS DSSF.CURDISK
LD HL,.OLDPATH ; á®åà ­¥­­ë© ¯ãâì ¤«ï ¢®§¢à â 
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP DE ;  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ª®¯¨à®¢ âì
; JP C,ERROR ;COUNTING_DIR.END_COUNT
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ¤«ï ª®¯¨à®¢ ­¨ï
LD HL,FileHDR.Name
ADD HL,DE
LD DE,COUNTING_DIR.DIR_NAME
LD BC,FileHDR.Name_Size
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï
EX DE,HL
CALL .CUTOFFSPACES ; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢
; ¯¥à¥­®á ⥪ã饣® ¯ã⨠¨áâ®ç­¨ª 
LD HL,.OLDPATH
LD DE,.CURRPATHSRC
CALL .COPYNAME2PATH ; ᪮¯¨à®¢ «¨ ¯ãâì ¨áâ®ç­¨ª 
LD (.ENDPATHSRC),DE ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï ¢ ¯ãâì ¨áâ®ç­¨ª 
LD HL,(.ENDPATHSRC)
LD DE,COUNTING_DIR.DIR_NAME
CALL .ADDNAME2PATH
LD (.ENDPATHSRC),DE ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï ¢ ¯ãâì ¯à¨¥¬­¨ª 
LD HL,(.ENDPATHDST)
LD DE,COUNTING_DIR.DIR_NAME
CALL .ADDNAME2PATH
LD (.ENDPATHDST),DE
; á®§¤ ­¨¥ ¤¨àë ¢ ¯à¨¥¬­¨ª¥
LD HL,.CURRPATHDST
SPDSS DSSF.MKDIR ; á®§¤ «¨ ¤¨à㠯ਥ¬­¨ª 
JR NC,.L3
CP ERR_DSS.DIR_EXISTS ; ¥á«¨ ¤¨à  㦥 ¥áâì ¨£­®à¨¬ ®è¨¡ªã
; JP C,ERROR
.L3
; TODO 横«¨ç¥áª¨© ¯®¨áª ¤¨à¥ªâ®à¨© á á®§¤ ­¨¥¬ ­  ¯à¨¥¬­¨ª¥
LD HL,.CURRPATHSRC
SPDSS DSSF.CHDIR ; ¢å®¤ ¢ ¤¨àã ¨áâ®ç­¨ª 
CALL .FINDFIRSTSRCDIR ; ¯®¨áª ¯¥à¢®£® ®¯¨á â¥«ï
JP C,.ENDCOPY ; ¡®«ìè¥ ¤¨à¥ªâ®à¨© ­¥â, ¢ë室¨¬
; ¯®¨áª ¤¨à¥ªâ®à¨©
.L2 CALL .FINDNEXTSRCDIR ; ¯®¨áª á«¥¤ãî饣® ®¯¨á â¥«ï
JP C,.ENDFINDNEXT ; ¯®¨áª ®ª®­ç¥­?
LD HL,.FINDBUF + FFIRST.Name
LD A,(HL)
CP '.' ; ®¯¨á â¥«¨ "." ¨ ".." ¨£­®à¨¬
JR Z,.L2
LD DE,.TMPNAMEDIR
PUSH DE
CALL .COPYNAME2PATH
LD HL,(.ENDPATHDST)
POP DE
CALL .ADDNAME2PATH
LD HL,.CURRPATHDST
SPDSS DSSF.MKDIR ; á®§¤ ¥¬ ¤¨àã ­  ¯à¨¥¬­¨ª¥
; JP C,ERROR
LD HL,.CURRPATHSRC
SPDSS DSSF.CHDIR ; ¢®§¢à é ¥¬ ¯ãâì ­  ¨áâ®ç­¨ª
; JP C,ERROR
JR .L2 ; ¨é¥¬ á«¥¤ãî騩
; § ¢¥à襭¨¥ ¨ ¢ë室
JP COUNTING_DIR.END_COUNT;RestoreDIR
; LD A,(RAMPAGES.FLX)
; SETPORT WINSP.CPU3,,0
.ENDFINDNEXT
JR $
; ¯®¨áª ¯¥à¢®© ¤¨àë ¢ ⥪ã饩 ¯®¤¤¨à¥ªâ®à¨¨
.FINDFIRSTSRCDIR
LD HL,COUNTING_DIR.FILES_MASK
LD DE,.FINDBUF
SPDSS DSSF.F_FIRST,1,DIR.M_Dir
RET
.FINDNEXTSRCDIR
LD DE,.FINDBUF
SPDSS DSSF.F_NEXT
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¢ áâப㠯ãâ¨
; HL - ªã¤  ¤®¡ ¢«ïâì (墮áâ ⥪ã饣® ¯ãâ¨)
; DE - ®âªã¤  ¨¬ï ¡à âì
.ADDNAME2PATH CALL .CHECK_BSLASH
LD (HL),'\\'
INC HL
EX DE,HL
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¨§ ¡ãä¥à 
.COPYNAME2PATH XOR A
.CNP2 CP (HL)
JR Z,.CNP1
LDI
JR .CNP2
.CNP1 LD (DE),A
RET
.NAME2DIRNAME
; ¯à®¢¥àª  ­  BACKSLASH
.CHECK_BSLASH DEC HL
LD A,(HL)
CP '\\'
RET Z
INC HL
RET
; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢ ¢ ¨¬¥­¨
.CUTOFFSPACES LD A,' '
.COS2 DEC HL
CP (HL)
JR Z,.COS2
INC HL
LD (HL),0
RET
; ®âá¥ç¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ áâப¥ ¯ãâ¨
.DELNAME2PATH LD A,'\\'
.COB1 DEC HL
CP (HL)
JR NZ,.COB1
LD (HL),0
RET
; ¢ë室 ¨§ ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨©
.ENDCOPY LD SP,0
.OLDSP EQU $-2
LD HL,.OLDPATH
SPDSS DSSF.CHDIR
POP AF
SETPORT WINSP.CPU3,,0
POP IY
POP IX
RET
.ENDPATHSRC DW 0 ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
.ENDPATHDST DW 0 ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
.TMPNAMEDIR DB 8 DUP 0
ENDIF ENDIF
; C:/DEV/
; /CAMEL401
; /DEMON
; /MASM80
; /OASM028
; /SOLID
; /DOC
; /EXAMPLES
; /INCLUDE
; /SRC
; /CLIB
; /BUILD
; /SPFORTH
; /F83
; /F99
; /TASM

View File

@ -1,43 +1,28 @@
; LAST UPDATE: 11.03.2025 savelij ; LAST UPDATE: 18.07.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
InitExtention: ;[ ] 07/10/23 InitExtention: LD HL,INIFILES.ExtName1
; LD (InitExt.path),HL
; EX HL,DE
;
LD HL,.ExtName1
LD DE,fn_ext LD DE,fn_ext
CALL InitExt CALL InitExt
LD HL,.ExtName2 LD HL,INIFILES.ExtName2
LD DE,fnview_ext LD DE,fnview_ext
CALL InitExt CALL InitExt
LD HL,.ExtName3 LD HL,INIFILES.ExtName3
LD DE,fnedit_ext LD DE,fnedit_ext
CALL InitExt
RET
.ExtName1: DZ FILENAME.FN_EXT
.ExtName2: DZ FILENAME.FNVIEW_EXT
.ExtName3: DZ FILENAME.FNEDIT_EXT
.PathEnd: DW 0 ; not used
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
InitExt: LD (.EXTdata),DE InitExt: LD (.EXTdata),DE
;[ ] 07/10/23
; .path+1: LD DE,0
; CALL CopyString
; LD HL,FlexDIRECTORY
SPDSS DSSF.OPEN,,1 SPDSS DSSF.OPEN,,1
RET C RET C
LD (ExtHandle),A LD (.ExtHandle),A
LD HL,WorkBuffer LD HL,WorkBuffer
LD DE,WorkBuffer_Size LD DE,WorkBuffer_Size
SPDSS DSSF.READ SPDSS DSSF.READ
RET C RET C
OR A OR A
RET P RET P
LD A,(ExtHandle) LD A,0
.ExtHandle EQU $-1
PUSH DE PUSH DE
SPDSS DSSF.CLOSE SPDSS DSSF.CLOSE
POP BC POP BC
@ -51,8 +36,6 @@ InitExt: LD (.EXTdata),DE
JR NC,.loop JR NC,.loop
RET RET
ExtHandle: DEFB 0x00
InitExtLine: LD (.InExtSv),DE InitExtLine: LD (.InExtSv),DE
SUB A SUB A
LD (DE),A LD (DE),A
@ -217,3 +200,8 @@ InitExtLine: LD (.InExtSv),DE
LD (HL),D LD (HL),D
POP HL POP HL
JR .L5 JR .L5
INIFILES
.ExtName1: DZ FILENAME.FN_EXT
.ExtName2: DZ FILENAME.FNVIEW_EXT
.ExtName3: DZ FILENAME.FNEDIT_EXT