diff --git a/build.bat b/build.bat index b41fba7..5c74a2d 100644 --- a/build.bat +++ b/build.bat @@ -24,7 +24,9 @@ rem cd .. copy /Y /B tmp\fn.exe fn\fn.exe 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 # -= End Compile Ok =- # diff --git a/docs/FN.EXT b/docs/FN.EXT new file mode 100644 index 0000000..a3ccebe --- /dev/null +++ b/docs/FN.EXT @@ -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 !\!.! diff --git a/docs/FNEDIT.EXT b/docs/FNEDIT.EXT new file mode 100644 index 0000000..ef5ccf2 --- /dev/null +++ b/docs/FNEDIT.EXT @@ -0,0 +1,3 @@ +trd: C:\ZX\spectrum.exe sc256.zx !\!.! +scl: C:\ZX\spectrum.exe sc256.zx !\!.! + diff --git a/docs/FNVIEW.EXT b/docs/FNVIEW.EXT new file mode 100644 index 0000000..33577a7 --- /dev/null +++ b/docs/FNVIEW.EXT @@ -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 !\!.! diff --git a/docs/HELP.ENG b/docs/HELP.ENG deleted file mode 100644 index ea8d9f1..0000000 --- a/docs/HELP.ENG +++ /dev/null @@ -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 diff --git a/docs/HELP.RUS b/docs/HELP.RUS deleted file mode 100644 index 814b3ae..0000000 --- a/docs/HELP.RUS +++ /dev/null @@ -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 нет ошибки diff --git a/docs/flx_header.eng b/docs/flx_header.eng new file mode 100644 index 0000000..6f8f582 --- /dev/null +++ b/docs/flx_header.eng @@ -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). diff --git a/docs/flx_header.rus b/docs/flx_header.rus new file mode 100644 index 0000000..e8f7a83 --- /dev/null +++ b/docs/flx_header.rus @@ -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 + + !!! + 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). diff --git a/docs/fn_api_0.2.txt b/docs/fn_api_0.2.txt index 3d5628e..9e47e18 100644 --- a/docs/fn_api_0.2.txt +++ b/docs/fn_api_0.2.txt @@ -1,7 +1,7 @@ []========================================================================[] * * -* Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins * -* doc v0.2 от 07.07.2002 * +* ᠭ Flex Navigator API v1.xx ࠧࠡ稪 Flx-Plugins * +* 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 - ... ; описатель окна + ... ; ⥫ - описатель окна: - +00 (1) флаг вывода окна: 0 - без сохранения данных под окном - (используется для полноэкранных окон) - 1 - с сохранением данных под окном - (используется для небольших окон) - 0x7F - восстановить данные под окном - (флаг служит для закрытия - текущего окна) - +01 (2) координата x для вывода (0 - 639) - +03 (2) координата y для вывода (0 - 255) - +05 (2) длина окна по x (0 - 639) - +07 (2) длина окна по y (0 - 255) + ⥫ : + +00 (1) 䫠 뢮 : 0 - ࠭ + (ᯮ ࠭ ) + 1 - ࠭ + (ᯮ ) + 0x7F - ⠭ + (䫠 㦨 + ⥪饣 ) + +01 (2) न x 뢮 (0 - 639) + +03 (2) न y 뢮 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - далее идут об'екты окна в формате: - +00 (1) тип обекта - +01 ... описатели обекта + ' ଠ: + +00 (1) ⨯ + +01 ... ⥫ - об'екты окна: - 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная - функция возвращает управление. + ' : + 0. +00 (1) == 0 - ᯨ᪠ '⮢. ᫥ ⮣ + 㭪 頥 ࠢ. - 1. +00 (1) == 1 - текстовая строка - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +06 ... текстовая строка (конец строки - 0) + 1. +00 (1) == 1 - ⥪⮢ ப + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +06 ... ⥪⮢ ப ( ப - 0) - 2. +00 (1) == 2 - заполнение прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет заполнения - (d7-d4 цвет background, d3-d0 цвет foreground) + 2. +00 (1) == 2 - אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) - 3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 3. +00 (1) == 3 - ᮢ 㣫㡫񭭮 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 4. +00 (1) == 4 - ᮢ 㪫 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 5. +00 (1) == 5 - отрисовка кнопки с текстом - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +10 ... текстовая строка (конец строки - 0) + 5. +00 (1) == 5 - ᮢ ⥪⮬ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +10 ... ⥪⮢ ப ( ப - 0) - Внимание! печать текста осуществляется с позиций + ! ⥪ ⢫ 権 x + 4, y + 1 - 6. +00 (1) == 6 - отрисовка горизонтального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) + 6. +00 (1) == 6 - ᮢ ਧ⠫쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) - 7. +00 (1) == 7 - отрисовка вертикального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по y (0 - 255) + 7. +00 (1) == 7 - ᮢ ⨪쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) y (0 - 255) - 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <- - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 8. +00 (1) == 8 - ᮢ ஫ <- + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 9. +00 (1) == 9 - отрисовка правой кнопки скролбара -> - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 9. +00 (1) == 9 - ᮢ ࠢ ஫ -> + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^ - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 10. +00 (1) == 10 - ᮢ 孥 ஫ ^ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 11. +00 (1) == 11 - отрисовка нижней кнопки скролбара - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 11. +00 (1) == 11 - ᮢ ஫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) []------------------------------------------------------------------------[] - InvertRectan - процедура замены цвета прямоугольной плоскости + InvertRectan - 楤 梥 אַ㣮쭮 ᪮ - на вход: - HL - x координата - BC - y координата - HX - длина y - LX - длина x - D - текущий цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - E - нужный цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + HL - x न + BC - y न + HX - y + LX - x + D - ⥪騩 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + E - 㦭 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - к сожалению процедура не очень быстрая, поэтому большие - прямоугольники советую особо не инвертировать... ;) + ᮦ 楤 祭 , ⮬ 訥 + אַ㣮쭨 ᮢ ᮡ ஢... ;) []------------------------------------------------------------------------[] - PrnTxtLnIFF - процедура вывода текстовых строк на графический экран - 640x256 в режиме размерного по X шрифта - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + PrnTxtLnIFF - 楤 뢮 ⥪⮢ ப ᪨ ࠭ + 640x256 ० ࠧ୮ X + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - PrnTxtLnNorm - процедура вывода текстовых строк на графический экран + PrnTxtLnNorm - 楤 뢮 ⥪⮢ ப ᪨ ࠭ 640x256 - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - PrnTxtLnNormC - процедура вывода текстовых строк на графический экран - 640x256 с известным числом символов - на вход: - HL - адрес текстовой строки - DE - позиция вывода по X - C - позиция вывода по Y - B - кол-во печатаемых символов - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за последним символом + PrnTxtLnNormC - 楤 뢮 ⥪⮢ ப ᪨ ࠭ + 640x256 ᫮ ᨬ + 室: + HL - ⥪⮢ ப + DE - 뢮 X + C - 뢮 Y + B - - ⠥ ᨬ + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ᫥ ᨬ []------------------------------------------------------------------------[] - PrnRangPathL - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, прижатых к - левому краю ( |-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathL - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , ਦ + ( |-> ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - PrnRangPathR - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, прижатых к - правому краю ( <-| ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathR - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , ਦ + ࠢ ( <-| ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - PrnRangPathC - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, отцентрированных - относительно краёв ( <-|-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathC - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , 業஢ + ⭮⥫쭮 ( <-|-> ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - InputLine - процедура редактирования строки на графическом экране - 640x256 в режиме размерного по X шрифта + InputLine - 楤 ।஢ ப ᪮ ࠭ + 640x256 ० ࠧ୮ X - на вход: - IX - адрес описателя строки - HL - адрес описателя элементов экрана (для мышки) - на выход: + 室: + IX - ⥫ ப + HL - ⥫ ⮢ ࠭ ( 誨) + 室: - - описатель строки: - +00 (1) максимальная длина строки - +01 (1) флаг готовности - +02 (1) текущая X позиция курсора (инициализируется в InputLine) - +03 (1) текущая add_x (инициализируется в InputLine) - +04 (1) количество введенных символов / длина строки - +05 (2) X позиция строки на экране - +07 (2) Y позиция строки на экране - +09 (2) X длина строки на экране - +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground) - +0C ... сама строка + ⥫ ப: + +00 (1) ᨬ쭠 ப + +01 (1) 䫠 ⮢ + +02 (1) ⥪ X (樠 InputLine) + +03 (1) ⥪ add_x (樠 InputLine) + +04 (1) ⢮ ᨬ / ப + +05 (2) X ப ࠭ + +07 (2) Y ப ࠭ + +09 (2) X ப ࠭ + +0B (1) 梥 ப (d7-d4 梥 background, d3-d0 梥 foreground) + +0C ... ᠬ ப - процедуры для таблицы элементов экрана: - InpLnExtN - процедура нормального выхода из редакции - InpLnExtC - процедура выхода из редакции по cancel - (восстанавливает изначальную строку) + 楤 ⠡ ⮢ ࠭: + InpLnExtN - 楤 ଠ쭮 室 ।樨 + 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 координата элемента - +02 (2) правая x координата элемента - +04 (2) верхняя y координата элемента - +06 (2) нижняя y координата элемента - +08 (2) флаги элемента - +10 (2) адрес обработчика при не нажатом огне - +12 (2) адрес обработчика при нажатом огне (левая кнопка) - +14 (2) адрес обработчика при нажатом огне (правая кнопка) + ⠡ ⮢ ࠭: + +00 (2) x न + +02 (2) ࠢ x न + +04 (2) y न + +06 (2) y न + +08 (2) 䫠 + +10 (2) ࠡ稪 ⮬ + +12 (2) ࠡ稪 ⮬ ( ) + +14 (2) ࠡ稪 ⮬ (ࠢ ) - флаги элемента: - d00 - элемент кнопка - d01 - рабочая кнопка - d02 - инверт - d03 - статичный инверт - d04 - программа запускается без адреса возврата без огня - d05 - программа запускается без адреса возврата по левой кнопке - огня - d06 - программа запускается без адреса возврата по правой кнопке - огня - d07 - вызвать функцию закрытия окна перед запуском программы без - огня - d08 - вызвать функцию закрытия окна перед запуском программы по - левой кнопке - d09 - вызвать функцию закрытия окна перед запуском программы по - правой кнопке - d15 - это флаг: 1 - инверт при огне не убирать + 䫠 : + d00 - + d01 - ࠡ + d02 - + d03 - + d04 - ணࠬ ᪠ + d05 - ணࠬ ᪠ + + d06 - ணࠬ ᪠ ࠢ + + d07 - 맢 㭪 । ᪮ ணࠬ + + d08 - 맢 㭪 । ᪮ ணࠬ + + d09 - 맢 㭪 । ᪮ ணࠬ + ࠢ + d15 - 䫠: 1 - 㡨 - если +00 == 0x8000 это считается концом таблицы элементов зкрана + ᫨ +00 == 0x8000 ⠥ 殬 ⠡ ⮢ ࠭ []------------------------------------------------------------------------[] - SetCMOSPrint - процедура включения печати даты/время из CMOS + SetCMOSPrint - 楤 祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - ResCMOSPrint - процедура выключения печати даты/время из CMOS + ResCMOSPrint - 楤 몫祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - SetClock - процедура установки курсора мыши в часы + SetClock - 楤 ⠭ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - SetMouse - процедура установки курсора мыши в нормальный курсор + SetMouse - 楤 ⠭ ଠ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - MoveBytes - процедура быстрого копирования памяти с помощью - акселлератора с увеличением адресов - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда + сколько) - DE - (куда + сколько) + MoveBytes - 楤 ண ஢ + ᥫ 㢥祭 ᮢ + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 + ᪮쪮) + DE - (㤠 + ᪮쪮) []------------------------------------------------------------------------[] - MoveBytesUp - процедура быстрого копирования памяти с помощью - акселлератора с уменьшением адресов - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда - сколько) - DE - (куда - сколько) + MoveBytesUp - 楤 ண ஢ + ᥫ 㬥襭 ᮢ + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 - ᪮쪮) + DE - (㤠 - ᪮쪮) []------------------------------------------------------------------------[] - Mult8 - процедура умножения 8 * 8 bit = 16 bit + Mult8 - 楤 㬭 8 * 8 bit = 16 bit - на вход: + 室: E * C - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - Mult16X8 - процедура умножения 16 * 8 bit = 24 bit + Mult16X8 - 楤 㬭 16 * 8 bit = 24 bit - на вход: + 室: DE * C - на выход: - A, HL - результат + 室: + A, HL - १ []------------------------------------------------------------------------[] - Mult16 - процедура умножения 16 * 16 bit = 16 bit + Mult16 - 楤 㬭 16 * 16 bit = 16 bit - на вход: + 室: DE * BC - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - Mult16X16 - процедура умножения 16 * 16 bit = 32 bit + Mult16X16 - 楤 㬭 16 * 16 bit = 32 bit - на вход: + 室: DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - Mult32 - процедура умножения 32 * 16 bit = 32 bit + Mult32 - 楤 㬭 32 * 16 bit = 32 bit - на вход: + 室: HL, DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - Divis16X16 - процедура деления 16 / 16 bit = 16.16 bit + Divis16X16 - 楤 16 / 16 bit = 16.16 bit - на вход: + 室: BC / DE - на выход: - BC - результат - HL - остаток + 室: + BC - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis24X16 - процедура деления 24 / 16 bit = 8.16 bit + Divis24X16 - 楤 24 / 16 bit = 8.16 bit - на вход: + 室: HL, C / DE - на выход: - A - результат - HL - остаток + 室: + A - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis32X16 - процедура деления 32 / 16 bit = 16.16 bit + Divis32X16 - 楤 32 / 16 bit = 16.16 bit - на вход: + 室: HL, DE / BC - на выход: - DE - результат - HL - остаток + 室: + DE - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis32 - процедура деления 32 / 16 bit = 32.16 bit + Divis32 - 楤 32 / 16 bit = 32.16 bit - на вход: + 室: HL, DE / BC - на выход: - HL, DE - результат - BC - остаток + 室: + HL, DE - १ + BC - ⮪ []------------------------------------------------------------------------[] - ConvNumTxt32 - процедура конвертации числа 32 bit в текст + ConvNumTxt32 - 楤 樨 ᫠ 32 bit ⥪ - на вход: - BC, HL - число 32 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + BC, HL - ᫮ 32 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvNumTxt16 - процедура конвертации числа 16 bit в текст + ConvNumTxt16 - 楤 樨 ᫠ 16 bit ⥪ - на вход: - HL - число 16 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + HL - ᫮ 16 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvNumTxt8 - процедура конвертации числа 8 bit в текст + ConvNumTxt8 - 楤 樨 ᫠ 8 bit ⥪ - на вход: - A - число 8 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + A - ᫮ 8 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvTxtNum32 - процедура конвертации текста в число 32 bit + ConvTxtNum32 - 楤 樨 ⥪ ᫮ 32 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL, IX - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL, IX - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - ConvTxtNum16 - процедура конвертации текста в число 16 bit + ConvTxtNum16 - 楤 樨 ⥪ ᫮ 16 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - DOSError - процедура вывода окна ошибки (для дос ошибок) + DOSError - 楤 뢮 訡 ( 訡) - на вход: - A - номер ошибки - на выход: + 室: + A - 訡 + 室: - []------------------------------------------------------------------------[] @@ -569,4 +569,4 @@ 07 july 2002 Anton Enin (C) Copyright 2002 R-lab -если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме. \ No newline at end of file +᫨ e-mail: r-lab@mail.ru ਭ 㬥. \ No newline at end of file diff --git a/docs/fn_api_0.3.txt b/docs/fn_api_0.3.txt index 79ca775..a688359 100644 --- a/docs/fn_api_0.3.txt +++ b/docs/fn_api_0.3.txt @@ -1,7 +1,7 @@ []========================================================================[] * * -* Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins * -* doc v0.3 от 10.07.2002 * +* ᠭ Flex Navigator API v1.xx ࠧࠡ稪 Flx-Plugins * +* 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 - ... ; описатель окна + ... ; ⥫ - описатель окна: - +00 (1) флаг вывода окна: 0 - без сохранения данных под окном - (используется для полноэкранных окон) - 1 - с сохранением данных под окном - (используется для небольших окон) - 0x7F - восстановить данные под окном - (флаг служит для закрытия - текущего окна) - +01 (2) координата x для вывода (0 - 639) - +03 (2) координата y для вывода (0 - 255) - +05 (2) длина окна по x (0 - 639) - +07 (2) длина окна по y (0 - 255) + ⥫ : + +00 (1) 䫠 뢮 : 0 - ࠭ + (ᯮ ࠭ ) + 1 - ࠭ + (ᯮ ) + 0x7F - ⠭ + (䫠 㦨 + ⥪饣 ) + +01 (2) न x 뢮 (0 - 639) + +03 (2) न y 뢮 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - далее идут об'екты окна в формате: - +00 (1) тип обекта - +01 ... описатели обекта + ' ଠ: + +00 (1) ⨯ + +01 ... ⥫ - об'екты окна: - 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная - функция возвращает управление. + ' : + 0. +00 (1) == 0 - ᯨ᪠ '⮢. ᫥ ⮣ + 㭪 頥 ࠢ. - 1. +00 (1) == 1 - текстовая строка - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +06 ... текстовая строка (конец строки - 0) + 1. +00 (1) == 1 - ⥪⮢ ப + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +06 ... ⥪⮢ ப ( ப - 0) - 2. +00 (1) == 2 - заполнение прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет заполнения - (d7-d4 цвет background, d3-d0 цвет foreground) + 2. +00 (1) == 2 - אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) - 3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 3. +00 (1) == 3 - ᮢ 㣫㡫񭭮 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 4. +00 (1) == 4 - ᮢ 㪫 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 5. +00 (1) == 5 - отрисовка кнопки с текстом - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +10 ... текстовая строка (конец строки - 0) + 5. +00 (1) == 5 - ᮢ ⥪⮬ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +10 ... ⥪⮢ ப ( ப - 0) - Внимание! печать текста осуществляется с позиций + ! ⥪ ⢫ 権 x + 4, y + 1 - 6. +00 (1) == 6 - отрисовка горизонтального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) + 6. +00 (1) == 6 - ᮢ ਧ⠫쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) - 7. +00 (1) == 7 - отрисовка вертикального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по y (0 - 255) + 7. +00 (1) == 7 - ᮢ ⨪쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) y (0 - 255) - 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <- - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 8. +00 (1) == 8 - ᮢ ஫ <- + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 9. +00 (1) == 9 - отрисовка правой кнопки скролбара -> - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 9. +00 (1) == 9 - ᮢ ࠢ ஫ -> + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^ - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 10. +00 (1) == 10 - ᮢ 孥 ஫ ^ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 11. +00 (1) == 11 - отрисовка нижней кнопки скролбара - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 11. +00 (1) == 11 - ᮢ ஫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) []------------------------------------------------------------------------[] - InvertRectan - процедура замены цвета прямоугольной плоскости + InvertRectan - 楤 梥 אַ㣮쭮 ᪮ - на вход: - HL - x координата - BC - y координата - HX - длина y - LX - длина x - D - текущий цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - E - нужный цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + HL - x न + BC - y न + HX - y + LX - x + D - ⥪騩 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + E - 㦭 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - к сожалению процедура не очень быстрая, поэтому большие - прямоугольники советую особо не инвертировать... ;) + ᮦ 楤 祭 , ⮬ 訥 + אַ㣮쭨 ᮢ ᮡ ஢... ;) []------------------------------------------------------------------------[] - PrnTxtLnIFF - процедура вывода текстовых строк на графический экран - 640x256 в режиме размерного по X шрифта - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + PrnTxtLnIFF - 楤 뢮 ⥪⮢ ப ᪨ ࠭ + 640x256 ० ࠧ୮ X + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - PrnTxtLnNorm - процедура вывода текстовых строк на графический экран + PrnTxtLnNorm - 楤 뢮 ⥪⮢ ப ᪨ ࠭ 640x256 - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - PrnTxtLnNormC - процедура вывода текстовых строк на графический экран - 640x256 с известным числом символов - на вход: - HL - адрес текстовой строки - DE - позиция вывода по X - C - позиция вывода по Y - B - кол-во печатаемых символов - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за последним символом + PrnTxtLnNormC - 楤 뢮 ⥪⮢ ப ᪨ ࠭ + 640x256 ᫮ ᨬ + 室: + HL - ⥪⮢ ப + DE - 뢮 X + C - 뢮 Y + B - - ⠥ ᨬ + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ᫥ ᨬ []------------------------------------------------------------------------[] - PrnRangPathL - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, прижатых к - левому краю ( |-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathL - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , ਦ + ( |-> ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - PrnRangPathR - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, прижатых к - правому краю ( <-| ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathR - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , ਦ + ࠢ ( <-| ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - PrnRangPathC - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, отцентрированных - относительно краёв ( <-|-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathC - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , 業஢ + ⭮⥫쭮 ( <-|-> ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - InputLine - процедура редактирования строки на графическом экране - 640x256 в режиме размерного по X шрифта + InputLine - 楤 ।஢ ப ᪮ ࠭ + 640x256 ० ࠧ୮ X - на вход: - IX - адрес описателя строки - HL - адрес описателя элементов экрана (для мышки) - на выход: + 室: + IX - ⥫ ப + HL - ⥫ ⮢ ࠭ ( 誨) + 室: - - описатель строки: - +00 (1) максимальная длина строки - +01 (1) флаг готовности - +02 (1) текущая X позиция курсора (инициализируется в InputLine) - +03 (1) текущая add_x (инициализируется в InputLine) - +04 (1) количество введенных символов / длина строки - +05 (2) X позиция строки на экране - +07 (2) Y позиция строки на экране - +09 (2) X длина строки на экране - +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground) - +0C ... сама строка + ⥫ ப: + +00 (1) ᨬ쭠 ப + +01 (1) 䫠 ⮢ + +02 (1) ⥪ X (樠 InputLine) + +03 (1) ⥪ add_x (樠 InputLine) + +04 (1) ⢮ ᨬ / ப + +05 (2) X ப ࠭ + +07 (2) Y ப ࠭ + +09 (2) X ப ࠭ + +0B (1) 梥 ப (d7-d4 梥 background, d3-d0 梥 foreground) + +0C ... ᠬ ப - процедуры для таблицы элементов экрана: - InpLnExtN - процедура нормального выхода из редакции - InpLnExtC - процедура выхода из редакции по cancel - (восстанавливает изначальную строку) + 楤 ⠡ ⮢ ࠭: + InpLnExtN - 楤 ଠ쭮 室 ।樨 + InpLnExtC - 楤 室 ।樨 cancel + (⠭ 砫 ப) []------------------------------------------------------------------------[] - InitScrBar - процедура инициализации описателя скроллбара + InitScrBar - 楤 樠樨 ⥫ ஫ - на вход: - IX - адрес описателя скроллбара - на выход: + 室: + IX - ⥫ ஫ + 室: - - описатель скроллбара: - +00 (2) X позиция скролбара (0-639) - +02 (2) Y позиция скролбара (0-255) - +04 (2) длина скролбара - +06 (2) текущая длина скролбара (инициализируется в InitScrBar) - +08 (2) адрес ячейки, куда запишется начальная координата бара - если 0, то не используется - (используется для таблицы элементов экрана) - +10 (2) адрес ячейки, куда запишется конечная координата бара - если 0, то не используется - (используется для таблицы элементов экрана) - +12 (2) кол-во видимых элементов - +14 (2) общее кол-во элементов - +16 (2) первая видимый элемент + ⥫ ஫: + +00 (2) X ஫ (0-639) + +02 (2) Y ஫ (0-255) + +04 (2) ஫ + +06 (2) ⥪ ஫ (樠 InitScrBar) + +08 (2) 祩, 㤠 砫쭠 न + ᫨ 0, ᯮ + (ᯮ ⠡ ⮢ ࠭) + +10 (2) 祩, 㤠 筠 न + ᫨ 0, ᯮ + (ᯮ ⠡ ⮢ ࠭) + +12 (2) - ⮢ + +14 (2) 饥 - ⮢ + +16 (2) ࢠ []------------------------------------------------------------------------[] - PrnHScrBar - процедура печати горизонтального скроллбара + PrnHScrBar - 楤 ਧ⠫쭮 ஫ - на вход: - IX - адрес описателя скроллбара (см. выше) - на выход: + 室: + IX - ⥫ ஫ (. ) + 室: - []------------------------------------------------------------------------[] - PrnVScrBar - процедура печати вертикального скроллбара + PrnVScrBar - 楤 ⨪쭮 ஫ - на вход: - IX - адрес описателя скроллбара (см. выше) - на выход: + 室: + IX - ⥫ ஫ (. ) + 室: - []------------------------------------------------------------------------[] - InitProcess - процедура инициализации описателя процессбара + InitProcess - 楤 樠樨 ⥫ ᡠ - на вход: - IX - адрес описателя процессбара - на выход: + 室: + IX - ⥫ ᡠ + 室: - - описателя процессбара: - +00 (2) X позиция процессбара (0-639) - +02 (2) Y позиция процессбара (0-255) - +04 (2) длина процессбара - +06 (2) коэффициент для процесса (инициализируется в InitProcess) - +08 (2) коррекция коэфициента (инициализируется в InitProcess) - +10 (4) максимум (инициализируется в InitProcess) - +14 (4) текущее (инициализируется в InitProcess) - +18 (1) цвет процессбара - (d7-d4 цвет background, d3-d0 цвет foreground) + ⥫ ᡠ: + +00 (2) X ᡠ (0-639) + +02 (2) Y ᡠ (0-255) + +04 (2) ᡠ + +06 (2) 樥 (樠 InitProcess) + +08 (2) ४ 樥 (樠 InitProcess) + +10 (4) ᨬ (樠 InitProcess) + +14 (4) ⥪饥 (樠 InitProcess) + +18 (1) 梥 ᡠ + (d7-d4 梥 background, d3-d0 梥 foreground) []------------------------------------------------------------------------[] - PrnProcess - процедура печати процессбара + PrnProcess - 楤 ᡠ - на вход: - IX - адрес описателя процессбара (см. выше) - на выход: + 室: + IX - ⥫ ᡠ (. ) + 室: - []------------------------------------------------------------------------[] - ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены + ResFire - 楤 , 饭 - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - TestCoords - процедура проверки координат мыши по таблице элементов - зкрана + TestCoords - 楤 ஢ન न ⠡ ⮢ + ࠭ - на вход: - IX - адрес таблицы элементов зкрана - на выход: + 室: + IX - ⠡ ⮢ ࠭ + 室: - - таблица элементов зкрана: - +00 (2) левая x координата элемента - +02 (2) правая x координата элемента - +04 (2) верхняя y координата элемента - +06 (2) нижняя y координата элемента - +08 (2) флаги элемента - +10 (2) адрес обработчика при не нажатом огне - +12 (2) адрес обработчика при нажатом огне (левая кнопка) - +14 (2) адрес обработчика при нажатом огне (правая кнопка) + ⠡ ⮢ ࠭: + +00 (2) x न + +02 (2) ࠢ x न + +04 (2) y न + +06 (2) y न + +08 (2) 䫠 + +10 (2) ࠡ稪 ⮬ + +12 (2) ࠡ稪 ⮬ ( ) + +14 (2) ࠡ稪 ⮬ (ࠢ ) - если +00 == 0x8000 это считается концом таблицы элементов зкрана + ᫨ +00 == 0x8000 ⠥ 殬 ⠡ ⮢ ࠭ - флаги элемента: - d00 - элемент кнопка - d01 - рабочая кнопка - d02 - инверт - d03 - статичный инверт - d04 - программа запускается без адреса возврата без огня - d05 - программа запускается без адреса возврата по левой кнопке - огня - d06 - программа запускается без адреса возврата по правой кнопке - огня - d07 - вызвать функцию закрытия окна перед запуском программы без - огня - d08 - вызвать функцию закрытия окна перед запуском программы по - левой кнопке - d09 - вызвать функцию закрытия окна перед запуском программы по - правой кнопке - d15 - это флаг: 1 - инверт при огне не убирать + 䫠 : + d00 - + d01 - ࠡ + d02 - + d03 - + d04 - ணࠬ ᪠ + d05 - ணࠬ ᪠ + + d06 - ணࠬ ᪠ ࠢ + + d07 - 맢 㭪 । ᪮ ணࠬ + + d08 - 맢 㭪 । ᪮ ணࠬ + + d09 - 맢 㭪 । ᪮ ணࠬ + ࠢ + d15 - 䫠: 1 - 㡨 []------------------------------------------------------------------------[] - SetCMOSPrint - процедура включения печати даты/время из CMOS + SetCMOSPrint - 楤 祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - ResCMOSPrint - процедура выключения печати даты/время из CMOS + ResCMOSPrint - 楤 몫祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - SetClock - процедура установки курсора мыши в часы + SetClock - 楤 ⠭ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - SetMouse - процедура установки курсора мыши в нормальный курсор + SetMouse - 楤 ⠭ ଠ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - MoveBytes - процедура быстрого копирования памяти с помощью - акселлератора с увеличением адресов - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда + сколько) - DE - (куда + сколько) + MoveBytes - 楤 ண ஢ + ᥫ 㢥祭 ᮢ + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 + ᪮쪮) + DE - (㤠 + ᪮쪮) []------------------------------------------------------------------------[] - MoveBytesUp - процедура быстрого копирования памяти с помощью - акселлератора с уменьшением адресов - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда - сколько) - DE - (куда - сколько) + MoveBytesUp - 楤 ண ஢ + ᥫ 㬥襭 ᮢ + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 - ᪮쪮) + DE - (㤠 - ᪮쪮) []------------------------------------------------------------------------[] - Mult8 - процедура умножения 8 * 8 bit = 16 bit + Mult8 - 楤 㬭 8 * 8 bit = 16 bit - на вход: + 室: E * C - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - Mult16X8 - процедура умножения 16 * 8 bit = 24 bit + Mult16X8 - 楤 㬭 16 * 8 bit = 24 bit - на вход: + 室: DE * C - на выход: - A, HL - результат + 室: + A, HL - १ []------------------------------------------------------------------------[] - Mult16 - процедура умножения 16 * 16 bit = 16 bit + Mult16 - 楤 㬭 16 * 16 bit = 16 bit - на вход: + 室: DE * BC - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - Mult16X16 - процедура умножения 16 * 16 bit = 32 bit + Mult16X16 - 楤 㬭 16 * 16 bit = 32 bit - на вход: + 室: DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - Mult32 - процедура умножения 32 * 16 bit = 32 bit + Mult32 - 楤 㬭 32 * 16 bit = 32 bit - на вход: + 室: HL, DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - Divis16X16 - процедура деления 16 / 16 bit = 16.16 bit + Divis16X16 - 楤 16 / 16 bit = 16.16 bit - на вход: + 室: BC / DE - на выход: - BC - результат - HL - остаток + 室: + BC - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis24X16 - процедура деления 24 / 16 bit = 8.16 bit + Divis24X16 - 楤 24 / 16 bit = 8.16 bit - на вход: + 室: HL, C / DE - на выход: - A - результат - HL - остаток + 室: + A - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis32X16 - процедура деления 32 / 16 bit = 16.16 bit + Divis32X16 - 楤 32 / 16 bit = 16.16 bit - на вход: + 室: HL, DE / BC - на выход: - DE - результат - HL - остаток + 室: + DE - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis32 - процедура деления 32 / 16 bit = 32.16 bit + Divis32 - 楤 32 / 16 bit = 32.16 bit - на вход: + 室: HL, DE / BC - на выход: - HL, DE - результат - BC - остаток + 室: + HL, DE - १ + BC - ⮪ []------------------------------------------------------------------------[] - ConvNumTxt32 - процедура конвертации числа 32 bit в текст + ConvNumTxt32 - 楤 樨 ᫠ 32 bit ⥪ - на вход: - BC, HL - число 32 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + BC, HL - ᫮ 32 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvNumTxt16 - процедура конвертации числа 16 bit в текст + ConvNumTxt16 - 楤 樨 ᫠ 16 bit ⥪ - на вход: - HL - число 16 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + HL - ᫮ 16 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvNumTxt8 - процедура конвертации числа 8 bit в текст + ConvNumTxt8 - 楤 樨 ᫠ 8 bit ⥪ - на вход: - A - число 8 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + A - ᫮ 8 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvTxtNum32 - процедура конвертации текста в число 32 bit + ConvTxtNum32 - 楤 樨 ⥪ ᫮ 32 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL, IX - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL, IX - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - ConvTxtNum16 - процедура конвертации текста в число 16 bit + ConvTxtNum16 - 楤 樨 ⥪ ᫮ 16 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - DOSError - процедура вывода окна ошибки (для дос ошибок) + DOSError - 楤 뢮 訡 ( 訡) - на вход: - A - номер ошибки - на выход: + 室: + A - 訡 + 室: - []------------------------------------------------------------------------[] @@ -593,4 +593,4 @@ 10 july 2002 Anton Enin (C) Copyright 2002 R-lab -если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме. \ No newline at end of file +᫨ e-mail: r-lab@mail.ru ਭ 㬥. \ No newline at end of file diff --git a/docs/fn_api_0.4.txt b/docs/fn_api_0.4.txt index 41686a3..8047424 100644 --- a/docs/fn_api_0.4.txt +++ b/docs/fn_api_0.4.txt @@ -1,7 +1,7 @@ []========================================================================[] * * -* Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins * -* doc v0.4 от 13.07.2002 * +* ᠭ Flex Navigator API v1.xx ࠧࠡ稪 Flx-Plugins * +* 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 - ... ; описатель окна + ... ; ⥫ - описатель окна: - +00 (1) флаг вывода окна: 0 - без сохранения данных под окном - (используется для полноэкранных окон) - 1 - с сохранением данных под окном - (используется для небольших окон) - 0x7F - восстановить данные под окном - (флаг служит для закрытия - текущего окна) - +01 (2) координата x для вывода (0 - 639) - +03 (2) координата y для вывода (0 - 255) - +05 (2) длина окна по x (0 - 639) - +07 (2) длина окна по y (0 - 255) + ⥫ : + +00 (1) 䫠 뢮 : 0 - ࠭ + (ᯮ ࠭ ) + 1 - ࠭ + (ᯮ ) + 0x7F - ⠭ + (䫠 㦨 + ⥪饣 ) + +01 (2) न x 뢮 (0 - 639) + +03 (2) न y 뢮 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - далее идут об'екты окна в формате: - +00 (1) тип обекта - +01 ... описатели обекта + ' ଠ: + +00 (1) ⨯ + +01 ... ⥫ - об'екты окна: - 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная - функция возвращает управление. + ' : + 0. +00 (1) == 0 - ᯨ᪠ '⮢. ᫥ ⮣ + 㭪 頥 ࠢ. - 1. +00 (1) == 1 - текстовая строка - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +06 ... текстовая строка (конец строки - 0) + 1. +00 (1) == 1 - ⥪⮢ ப + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +06 ... ⥪⮢ ப ( ப - 0) - 2. +00 (1) == 2 - заполнение прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет заполнения - (d7-d4 цвет background, d3-d0 цвет foreground) + 2. +00 (1) == 2 - אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) - 3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 3. +00 (1) == 3 - ᮢ 㣫㡫񭭮 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 4. +00 (1) == 4 - ᮢ 㪫 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 5. +00 (1) == 5 - отрисовка кнопки с текстом - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +10 ... текстовая строка (конец строки - 0) + 5. +00 (1) == 5 - ᮢ ⥪⮬ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +10 ... ⥪⮢ ப ( ப - 0) - Внимание! печать текста осуществляется с позиций + ! ⥪ ⢫ 権 x + 4, y + 1 - 6. +00 (1) == 6 - отрисовка горизонтального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) + 6. +00 (1) == 6 - ᮢ ਧ⠫쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) - 7. +00 (1) == 7 - отрисовка вертикального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по y (0 - 255) + 7. +00 (1) == 7 - ᮢ ⨪쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) y (0 - 255) - 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <- - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 8. +00 (1) == 8 - ᮢ ஫ <- + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 9. +00 (1) == 9 - отрисовка правой кнопки скролбара -> - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 9. +00 (1) == 9 - ᮢ ࠢ ஫ -> + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^ - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 10. +00 (1) == 10 - ᮢ 孥 ஫ ^ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 11. +00 (1) == 11 - отрисовка нижней кнопки скролбара - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 11. +00 (1) == 11 - ᮢ ஫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) []------------------------------------------------------------------------[] - InvertRectan - процедура замены цвета прямоугольной плоскости + InvertRectan - 楤 梥 אַ㣮쭮 ᪮ - на вход: - HL - x координата - BC - y координата - HX - длина y - LX - длина x - D - текущий цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - E - нужный цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + HL - x न + BC - y न + HX - y + LX - x + D - ⥪騩 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + E - 㦭 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - к сожалению процедура не очень быстрая, поэтому большие - прямоугольники советую особо не инвертировать... ;) + ᮦ 楤 祭 , ⮬ 訥 + אַ㣮쭨 ᮢ ᮡ ஢... ;) []------------------------------------------------------------------------[] - PrnTxtLnIFF - процедура вывода текстовых строк на графический экран - 640x256 в режиме размерного по X шрифта - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + PrnTxtLnIFF - 楤 뢮 ⥪⮢ ப ᪨ ࠭ + 640x256 ० ࠧ୮ X + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - PrnTxtLnNorm - процедура вывода текстовых строк на графический экран + PrnTxtLnNorm - 楤 뢮 ⥪⮢ ப ᪨ ࠭ 640x256 - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - PrnTxtLnNormC - процедура вывода текстовых строк на графический экран - 640x256 с известным числом символов - на вход: - HL - адрес текстовой строки - DE - позиция вывода по X - C - позиция вывода по Y - B - кол-во печатаемых символов - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за последним символом + PrnTxtLnNormC - 楤 뢮 ⥪⮢ ப ᪨ ࠭ + 640x256 ᫮ ᨬ + 室: + HL - ⥪⮢ ப + DE - 뢮 X + C - 뢮 Y + B - - ⠥ ᨬ + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ᫥ ᨬ []------------------------------------------------------------------------[] - PrnRangPathL - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, прижатых к - левому краю ( |-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathL - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , ਦ + ( |-> ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - PrnRangPathR - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, прижатых к - правому краю ( <-| ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathR - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , ਦ + ࠢ ( <-| ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - PrnRangPathC - процедура вывода досовских путей на графический экран - 640x256 в режиме размерного по X шрифта, отцентрированных - относительно краёв ( <-|-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + PrnRangPathC - 楤 뢮 ᮢ᪨ ⥩ ᪨ ࠭ + 640x256 ० ࠧ୮ X , 業஢ + ⭮⥫쭮 ( <-|-> ) + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - InputLine - процедура редактирования строки на графическом экране - 640x256 в режиме размерного по X шрифта + InputLine - 楤 ।஢ ப ᪮ ࠭ + 640x256 ० ࠧ୮ X - на вход: - IX - адрес описателя строки - HL - адрес описателя элементов экрана (для мышки) - на выход: + 室: + IX - ⥫ ப + HL - ⥫ ⮢ ࠭ ( 誨) + 室: - - описатель строки: - +00 (1) максимальная длина строки - +01 (1) флаг готовности - +02 (1) текущая X позиция курсора (инициализируется в InputLine) - +03 (1) текущая add_x (инициализируется в InputLine) - +04 (1) количество введенных символов / длина строки - +05 (2) X позиция строки на экране - +07 (2) Y позиция строки на экране - +09 (2) X длина строки на экране - +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground) - +0C ... сама строка + ⥫ ப: + +00 (1) ᨬ쭠 ப + +01 (1) 䫠 ⮢ + +02 (1) ⥪ X (樠 InputLine) + +03 (1) ⥪ add_x (樠 InputLine) + +04 (1) ⢮ ᨬ / ப + +05 (2) X ப ࠭ + +07 (2) Y ப ࠭ + +09 (2) X ப ࠭ + +0B (1) 梥 ப (d7-d4 梥 background, d3-d0 梥 foreground) + +0C ... ᠬ ப - процедуры для таблицы элементов экрана: - InpLnExtN - процедура нормального выхода из редакции - InpLnExtC - процедура выхода из редакции по cancel - (восстанавливает изначальную строку) + 楤 ⠡ ⮢ ࠭: + InpLnExtN - 楤 ଠ쭮 室 ।樨 + InpLnExtC - 楤 室 ।樨 cancel + (⠭ 砫 ப) []------------------------------------------------------------------------[] - InitScrBar - процедура инициализации описателя скроллбара + InitScrBar - 楤 樠樨 ⥫ ஫ - на вход: - IX - адрес описателя скроллбара - на выход: + 室: + IX - ⥫ ஫ + 室: - - описатель скроллбара: - +00 (2) X позиция скролбара (0-639) - +02 (2) Y позиция скролбара (0-255) - +04 (2) длина скролбара - +06 (2) текущая длина скролбара (инициализируется в InitScrBar) - +08 (2) адрес ячейки, куда запишется начальная координата бара - если 0, то не используется - (используется для таблицы элементов экрана) - +10 (2) адрес ячейки, куда запишется конечная координата бара - если 0, то не используется - (используется для таблицы элементов экрана) - +12 (2) кол-во видимых элементов - +14 (2) общее кол-во элементов - +16 (2) первая видимый элемент + ⥫ ஫: + +00 (2) X ஫ (0-639) + +02 (2) Y ஫ (0-255) + +04 (2) ஫ + +06 (2) ⥪ ஫ (樠 InitScrBar) + +08 (2) 祩, 㤠 砫쭠 न + ᫨ 0, ᯮ + (ᯮ ⠡ ⮢ ࠭) + +10 (2) 祩, 㤠 筠 न + ᫨ 0, ᯮ + (ᯮ ⠡ ⮢ ࠭) + +12 (2) - ⮢ + +14 (2) 饥 - ⮢ + +16 (2) ࢠ []------------------------------------------------------------------------[] - PrnHScrBar - процедура печати горизонтального скроллбара + PrnHScrBar - 楤 ਧ⠫쭮 ஫ - на вход: - IX - адрес описателя скроллбара (см. выше) - на выход: + 室: + IX - ⥫ ஫ (. ) + 室: - []------------------------------------------------------------------------[] - PrnVScrBar - процедура печати вертикального скроллбара + PrnVScrBar - 楤 ⨪쭮 ஫ - на вход: - IX - адрес описателя скроллбара (см. выше) - на выход: + 室: + IX - ⥫ ஫ (. ) + 室: - []------------------------------------------------------------------------[] - InitProcess - процедура инициализации описателя процессбара + InitProcess - 楤 樠樨 ⥫ ᡠ - на вход: - IX - адрес описателя процессбара - на выход: + 室: + IX - ⥫ ᡠ + 室: - - описателя процессбара: - +00 (2) X позиция процессбара (0-639) - +02 (2) Y позиция процессбара (0-255) - +04 (2) длина процессбара - +06 (2) коэффициент для процесса (инициализируется в InitProcess) - +08 (2) коррекция коэфициента (инициализируется в InitProcess) - +10 (4) максимум (инициализируется в InitProcess) - +14 (4) текущее (инициализируется в InitProcess) - +18 (1) цвет процессбара - (d7-d4 цвет background, d3-d0 цвет foreground) + ⥫ ᡠ: + +00 (2) X ᡠ (0-639) + +02 (2) Y ᡠ (0-255) + +04 (2) ᡠ + +06 (2) 樥 (樠 InitProcess) + +08 (2) ४ 樥 (樠 InitProcess) + +10 (4) ᨬ (樠 InitProcess) + +14 (4) ⥪饥 (樠 InitProcess) + +18 (1) 梥 ᡠ + (d7-d4 梥 background, d3-d0 梥 foreground) []------------------------------------------------------------------------[] - PrnProcess - процедура печати процессбара + PrnProcess - 楤 ᡠ - на вход: - IX - адрес описателя процессбара (см. выше) - на выход: + 室: + IX - ⥫ ᡠ (. ) + 室: - []------------------------------------------------------------------------[] - ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены + ResFire - 楤 , 饭 - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - TestCoords - процедура проверки координат мыши по таблице элементов - зкрана + TestCoords - 楤 ஢ન न ⠡ ⮢ + ࠭ - на вход: - IX - адрес таблицы элементов зкрана - на выход: + 室: + IX - ⠡ ⮢ ࠭ + 室: - - таблица элементов зкрана: - +00 (2) левая x координата элемента - +02 (2) правая x координата элемента - +04 (2) верхняя y координата элемента - +06 (2) нижняя y координата элемента - +08 (2) флаги элемента - +10 (2) адрес обработчика при не нажатом огне - +12 (2) адрес обработчика при нажатом огне (левая кнопка) - +14 (2) адрес обработчика при нажатом огне (правая кнопка) + ⠡ ⮢ ࠭: + +00 (2) x न + +02 (2) ࠢ x न + +04 (2) y न + +06 (2) y न + +08 (2) 䫠 + +10 (2) ࠡ稪 ⮬ + +12 (2) ࠡ稪 ⮬ ( ) + +14 (2) ࠡ稪 ⮬ (ࠢ ) - если +00 == 0x8000 это считается концом таблицы элементов зкрана + ᫨ +00 == 0x8000 ⠥ 殬 ⠡ ⮢ ࠭ - флаги элемента: - d00 - элемент кнопка - d01 - рабочая кнопка - d02 - инверт - d03 - статичный инверт - d04 - программа запускается без адреса возврата без огня - (т.е. при попадании курсора мыши в эту прямоугольную - область удаляется адрес возрата со стека и осуществляется - переход на адрес, который находиться в +10) - d05 - программа запускается без адреса возврата по левой кнопке - огня - (т.е. при нажатии левой кнопки мыши над прямоугольной - областью удаляется адрес возрата со стека и осуществляется - переход на адрес, который находиться в +12) - d06 - программа запускается без адреса возврата по правой кнопке - огня - (т.е. при нажатии правой кнопки мыши над прямоугольной - областью удаляется адрес возрата со стека и осуществляется - переход на адрес, который находиться в +14) - d07 - вызвать функцию закрытия окна перед запуском программы без - огня - (т.е. при попадании курсора мыши в эту прямоугольную - область удаляется последнее окно с экрана) - d08 - вызвать функцию закрытия окна перед запуском программы по - левой кнопке - (т.е. при нажатии левой кнопки мыши над прямоугольной - областью удаляется последнее окно с экрана) - d09 - вызвать функцию закрытия окна перед запуском программы по - правой кнопке - (т.е. при нажатии правой кнопки мыши над прямоугольной - областью удаляется последнее окно с экрана) - d15 - это флаг: 1 - инверт при огне не убирать + 䫠 : + d00 - + d01 - ࠡ + d02 - + d03 - + d04 - ணࠬ ᪠ + (.. אַ㣮 + 㤠 ⥪ ⢫ + 室 , 室 +10) + d05 - ணࠬ ᪠ + + (.. ⨨ אַ㣮쭮 + 㤠 ⥪ ⢫ + 室 , 室 +12) + d06 - ணࠬ ᪠ ࠢ + + (.. ⨨ ࠢ אַ㣮쭮 + 㤠 ⥪ ⢫ + 室 , 室 +14) + d07 - 맢 㭪 । ᪮ ணࠬ + + (.. אַ㣮 + 㤠 ᫥ ࠭) + d08 - 맢 㭪 । ᪮ ணࠬ + + (.. ⨨ אַ㣮쭮 + 㤠 ᫥ ࠭) + d09 - 맢 㭪 । ᪮ ணࠬ + ࠢ + (.. ⨨ ࠢ אַ㣮쭮 + 㤠 ᫥ ࠭) + d15 - 䫠: 1 - 㡨 []------------------------------------------------------------------------[] - SetCMOSPrint - процедура включения печати даты/время из CMOS + SetCMOSPrint - 楤 祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - ResCMOSPrint - процедура выключения печати даты/время из CMOS + ResCMOSPrint - 楤 몫祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - SetClock - процедура установки курсора мыши в часы + SetClock - 楤 ⠭ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - SetMouse - процедура установки курсора мыши в нормальный курсор + SetMouse - 楤 ⠭ ଠ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - MoveBytes - процедура быстрого копирования памяти с помощью - акселлератора с увеличением адресов - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда + сколько) - DE - (куда + сколько) + MoveBytes - 楤 ண ஢ + ᥫ 㢥祭 ᮢ + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 + ᪮쪮) + DE - (㤠 + ᪮쪮) []------------------------------------------------------------------------[] - MoveBytesUp - процедура быстрого копирования памяти с помощью - акселлератора с уменьшением адресов - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда - сколько) - DE - (куда - сколько) + MoveBytesUp - 楤 ண ஢ + ᥫ 㬥襭 ᮢ + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 - ᪮쪮) + DE - (㤠 - ᪮쪮) []------------------------------------------------------------------------[] - Mult8 - процедура беззнакового умножения 8 * 8 bit = 16 bit + Mult8 - 楤 㬭 8 * 8 bit = 16 bit - на вход: + 室: E * C - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - Mult16X8 - процедура беззнакового умножения 16 * 8 bit = 24 bit + Mult16X8 - 楤 㬭 16 * 8 bit = 24 bit - на вход: + 室: DE * C - на выход: - A, HL - результат + 室: + A, HL - १ []------------------------------------------------------------------------[] - Mult16 - процедура беззнакового умножения 16 * 16 bit = 16 bit + Mult16 - 楤 㬭 16 * 16 bit = 16 bit - на вход: + 室: DE * BC - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - Mult16X16 - процедура беззнакового умножения 16 * 16 bit = 32 bit + Mult16X16 - 楤 㬭 16 * 16 bit = 32 bit - на вход: + 室: DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - Mult32 - процедура беззнакового умножения 32 * 16 bit = 32 bit + Mult32 - 楤 㬭 32 * 16 bit = 32 bit - на вход: + 室: HL, DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - Divis16X16 - процедура беззнакового деления 16 / 16 bit = 16.16 bit + Divis16X16 - 楤 16 / 16 bit = 16.16 bit - на вход: + 室: BC / DE - на выход: - BC - результат - HL - остаток + 室: + BC - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis24X16 - процедура беззнакового деления 24 / 16 bit = 8.16 bit + Divis24X16 - 楤 24 / 16 bit = 8.16 bit - на вход: + 室: HL, C / DE - на выход: - A - результат - HL - остаток + 室: + A - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis32X16 - процедура беззнакового деления 32 / 16 bit = 16.16 bit + Divis32X16 - 楤 32 / 16 bit = 16.16 bit - на вход: + 室: HL, DE / BC - на выход: - DE - результат - HL - остаток + 室: + DE - १ + HL - ⮪ []------------------------------------------------------------------------[] - Divis32 - процедура беззнакового деления 32 / 16 bit = 32.16 bit + Divis32 - 楤 32 / 16 bit = 32.16 bit - на вход: + 室: HL, DE / BC - на выход: - HL, DE - результат - BC - остаток + 室: + HL, DE - १ + BC - ⮪ []------------------------------------------------------------------------[] - ConvNumTxt32 - процедура конвертации беззнакового числа 32 bit в текст + ConvNumTxt32 - 楤 樨 ᫠ 32 bit ⥪ - на вход: - BC, HL - число 32 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + BC, HL - ᫮ 32 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvNumTxt16 - процедура конвертации беззнакового числа 16 bit в текст + ConvNumTxt16 - 楤 樨 ᫠ 16 bit ⥪ - на вход: - HL - число 16 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + HL - ᫮ 16 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvNumTxt8 - процедура конвертации беззнакового числа 8 bit в текст + ConvNumTxt8 - 楤 樨 ᫠ 8 bit ⥪ - на вход: - A - число 8 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + A - ᫮ 8 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - ConvTxtNum32 - процедура конвертации текста в беззнаковое число 32 bit + ConvTxtNum32 - 楤 樨 ⥪ ᫮ 32 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL, IX - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL, IX - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - ConvTxtNum16 - процедура конвертации текста в беззнаковое число 16 bit + ConvTxtNum16 - 楤 樨 ⥪ ᫮ 16 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - DOSError - процедура вывода окна ошибки (для дос ошибок) + DOSError - 楤 뢮 訡 ( 訡) - на вход: - A - номер ошибки - на выход: + 室: + A - 訡 + 室: - []------------------------------------------------------------------------[] @@ -608,4 +608,4 @@ 13 july 2002 Anton Enin (C) Copyright 2002 R-lab -если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме. \ No newline at end of file +᫨ e-mail: r-lab@mail.ru ਭ 㬥. \ No newline at end of file diff --git a/docs/fn_api_0.5.txt b/docs/fn_api_0.5.txt index a432f0f..db053bf 100644 --- a/docs/fn_api_0.5.txt +++ b/docs/fn_api_0.5.txt @@ -1,279 +1,279 @@ []========================================================================[] * * -* Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins * -* doc v0.5 от 31.03.2025 (в процессе) * +* ᠭ Flex Navigator API v1.xx ࠧࠡ稪 Flx-Plugins * +* doc v0.5 31.03.2025 ( ) * * * []========================================================================[] - Доступ к функциям осуществляется через набор переходов в начале ядра - Flex Navigator для сборки плагинов независимо от ядра. - Таблица переходов начинается с адреса JUMPS + 3 или она же с - BASE_ADDR + 3. Адрес начала таблицы выровнен по границе 256 байт. Первый - адрес переход занят для запуска самого навигатора. - Размер таблицы переходов 192 байта, после таблицы расположены некоторые - переменные Flex Navigator для доступа к ним из плагинов. - Для правильной работы при сборке плагина предлагается инклудить - файл fn_const.a80 + 㭪 ⢫ १ 室 砫 + Flex Navigator ᡮન ᨬ . + 室 稭 JUMPS + 3 + BASE_ADDR + 3. 砫 ⠡ ஢ ࠭ 256 . + 室 ᪠ ᠬ . + ⠡ 室 192 , ᫥ ⠡ ᯮ + ६ Flex Navigator 㯠 . + ࠢ쭮 ࠡ ᡮથ । 㤨 + 䠩 fn_const.a80 []------------------------------------------------------------------------[] - JUMPS.ClearScreen - процедура отчистки 0-го экрана нужным цветом. + JUMPS.ClearScreen - 楤 ⪨ 0- ࠭ 㦭 梥⮬. - на вход: - A - цвет отчистки (00-0Fh) - на выход: + 室: + A - 梥 ⪨ (00-0Fh) + 室: - []------------------------------------------------------------------------[] - JUMPS.MakeWindow - процедура создания графического окна + JUMPS.MakeWindow - 楤 ᮧ ᪮ - на вход: - (SP) - описатель окна - на выход: + 室: + (SP) - ⥫ + 室: - - сразу за вызовом этой процедуры в программе следует описатель окна. - возврат из процедуры происходит по адресу, следующему за описателем. + ࠧ 맮 ⮩ 楤 ணࠬ ᫥ ⥫ . + 楤 ந室 , ᫥饬 ⥫. - например: + ਬ: call MakeWindow - ... ; описатель окна + ... ; ⥫ - описатель окна: - +00 (1) флаг вывода окна: 0 - без сохранения данных под окном - (используется для полноэкранных окон) - 1 - с сохранением данных под окном - (используется для небольших окон) - 0x7F - восстановить данные под окном - (флаг служит для закрытия - текущего окна) - 0x8x - без привязки к описателю окна - +01 (2) координата x для вывода (0 - 639) - +03 (2) координата y для вывода (0 - 255) - +05 (2) ширина (0 - 639) - +07 (2) высота (0 - 255) + ⥫ : + +00 (1) 䫠 뢮 : 0 - ࠭ + (ᯮ ࠭ ) + 1 - ࠭ + (ᯮ ) + 0x7F - ⠭ + (䫠 㦨 + ⥪饣 ) + 0x8x - ਢ離 ⥫ + +01 (2) न x 뢮 (0 - 639) + +03 (2) न y 뢮 (0 - 255) + +05 (2) ਭ (0 - 639) + +07 (2) (0 - 255) - далее идут об'екты окна в формате: - +00 (1) тип объекта - +01 ... описатели обекта + ' ଠ: + +00 (1) ⨯ ꥪ + +01 ... ⥫ - об'екты окна: - 0. +00 (1) == 0 - конец списка об'ектов. после этого оконная - функция возвращает управление. + ' : + 0. +00 (1) == 0 - ᯨ᪠ '⮢. ᫥ ⮣ + 㭪 頥 ࠢ. - 1. +00 (1) == 1 - текстовая строка - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +06 ... текстовая строка (конец строки - 0) + 1. +00 (1) == 1 - ⥪⮢ ப + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +06 ... ⥪⮢ ப ( ப - 0) - 2. +00 (1) == 2 - заполнение прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет заполнения - (d7-d4 цвет background, d3-d0 цвет foreground) + 2. +00 (1) == 2 - אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) - 3. +00 (1) == 3 - отрисовка углублённой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 3. +00 (1) == 3 - ᮢ 㣫㡫񭭮 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 4. +00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) + 4. +00 (1) == 4 - ᮢ 㪫 אַ㣮쭮 ᪮ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) - 5. +00 (1) == 5 - отрисовка кнопки с текстом - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) - +07 (2) длина по y (0 - 255) - +09 (1) цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - +10 ... текстовая строка (конец строки - 0) + 5. +00 (1) == 5 - ᮢ ⥪⮬ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) + +07 (2) y (0 - 255) + +09 (1) 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + +10 ... ⥪⮢ ப ( ப - 0) - Внимание! печать текста осуществляется с позиций + ! ⥪ ⢫ 権 x + 4, y + 1 - 6. +00 (1) == 6 - отрисовка горизонтального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по x (0 - 639) + 6. +00 (1) == 6 - ᮢ ਧ⠫쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) x (0 - 639) - 7. +00 (1) == 7 - отрисовка вертикального разделителя - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) - +05 (2) длина по y (0 - 255) + 7. +00 (1) == 7 - ᮢ ⨪쭮 ࠧ⥫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) + +05 (2) y (0 - 255) - 8. +00 (1) == 8 - отрисовка левой кнопки скролбара <- - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 8. +00 (1) == 8 - ᮢ ஫ <- + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 9. +00 (1) == 9 - отрисовка правой кнопки скролбара -> - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 9. +00 (1) == 9 - ᮢ ࠢ ஫ -> + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 10. +00 (1) == 10 - отрисовка верхней кнопки скролбара ^ - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 10. +00 (1) == 10 - ᮢ 孥 ஫ ^ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) - 11. +00 (1) == 11 - отрисовка нижней кнопки скролбара - +01 (2) смещение x от начала окна (0 - 639) - +03 (2) смещение y от начала окна (0 - 255) + 11. +00 (1) == 11 - ᮢ ஫ + +01 (2) ᬥ饭 x 砫 (0 - 639) + +03 (2) ᬥ饭 y 砫 (0 - 255) []------------------------------------------------------------------------[] - JUMPS.InvertRectan - процедура замены цвета прямоугольной плоскости + JUMPS.InvertRectan - 楤 梥 אַ㣮쭮 ᪮ - на вход: - HL - x координата - BC - y координата - HX - длина y - LX - длина x - D - текущий цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - E - нужный цвет - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + HL - x न + BC - y न + HX - y + LX - x + D - ⥪騩 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + E - 㦭 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - к сожалению процедура не очень быстрая, поэтому большие - прямоугольники советую особо не инвертировать... ;) + ᮦ 楤 祭 , ⮬ 訥 + אַ㣮쭨 ᮢ ᮡ ஢... ;) []------------------------------------------------------------------------[] - JUMPS.PrnTxtLnIFF - процедура вывода текстовых строк на графический - экран 640x256 в режиме размерного по X шрифта + JUMPS.PrnTxtLnIFF - 楤 뢮 ⥪⮢ ப ᪨ + ࠭ 640x256 ० ࠧ୮ X - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - JUMPS.PrnTxtLnNorm - процедура вывода текстовых строк на графический - экран 640x256 + JUMPS.PrnTxtLnNorm - 楤 뢮 ⥪⮢ ப ᪨ + ࠭ 640x256 - на вход: - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за строкой + 室: + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ப []------------------------------------------------------------------------[] - JUMPS.PrnTxtLnNormC - процедура вывода текстовых строк на графический - экран 640x256 с известным числом символов + JUMPS.PrnTxtLnNormC - 楤 뢮 ⥪⮢ ப ᪨ + ࠭ 640x256 ᫮ ᨬ - на вход: - HL - адрес текстовой строки - DE - позиция вывода по X - C - позиция вывода по Y - B - кол-во печатаемых символов - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: - HL - адрес байта, следующего за последним символом + 室: + HL - ⥪⮢ ப + DE - 뢮 X + C - 뢮 Y + B - - ⠥ ᨬ + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: + HL - , ᫥饣 ᫥ ᨬ []------------------------------------------------------------------------[] - JUMPS.PrnRangPathL - процедура вывода досовских путей на графический - экран 640x256 в режиме размерного по X шрифта, прижатых к - левому краю ( |-> ) + JUMPS.PrnRangPathL - 楤 뢮 ᮢ᪨ ⥩ ᪨ + ࠭ 640x256 ० ࠧ୮ X , ਦ + ( |-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - JUMPS.PrnRangPathR - процедура вывода досовских путей на графический - экран 640x256 в режиме размерного по X шрифта, прижатых к - правому краю ( <-| ) + JUMPS.PrnRangPathR - 楤 뢮 ᮢ᪨ ⥩ ᪨ + ࠭ 640x256 ० ࠧ୮ X , ਦ + ࠢ ( <-| ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - JUMPS.PrnRangPathC - процедура вывода досовских путей на графический - экран 640x256 в режиме размерного по X шрифта, отцентрированных - относительно краёв ( <-|-> ) + JUMPS.PrnRangPathC - 楤 뢮 ᮢ᪨ ⥩ ᪨ + ࠭ 640x256 ० ࠧ୮ X , 業஢ + ⭮⥫쭮 ( <-|-> ) - на вход: - IX - кол-во пикселей под вывод строки - HL - адрес текстовой строки (конец строки - 0) - DE - позиция вывода по X - BC - позиция вывода по Y - A - цвет печати - (d7-d4 цвет background, d3-d0 цвет foreground) - на выход: + 室: + IX - - ᥫ 뢮 ப + HL - ⥪⮢ ப ( ப - 0) + DE - 뢮 X + BC - 뢮 Y + A - 梥 + (d7-d4 梥 background, d3-d0 梥 foreground) + 室: - - процедура грамотно укорачивает досовский путь до нужного - размера путём замещения невлезающих директорий на ..\ + 楤 ࠬ⭮ 㪮稢 ᮢ᪨ 㦭 + ࠧ 饭 ४਩ ..\ []------------------------------------------------------------------------[] - JUMPS.InputLine - процедура редактирования строки на графическом - экране 640x256 в режиме размерного по X шрифта + JUMPS.InputLine - 楤 ।஢ ப ᪮ + ࠭ 640x256 ० ࠧ୮ X - на вход: - IX - адрес описателя строки - HL - адрес описателя элементов экрана (для мышки) - на выход: + 室: + IX - ⥫ ப + HL - ⥫ ⮢ ࠭ ( 誨) + 室: - - описатель строки: - +00 (1) максимальная длина строки - +01 (1) флаг готовности - +02 (1) текущая X позиция курсора (инициализируется в InputLine) - +03 (1) текущая add_x (инициализируется в InputLine) - +04 (1) количество введенных символов / длина строки - +05 (2) X позиция строки на экране - +07 (2) Y позиция строки на экране - +09 (2) X длина строки на экране - +0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground) - +0C ... сама строка + ⥫ ப: + +00 (1) ᨬ쭠 ப + +01 (1) 䫠 ⮢ + +02 (1) ⥪ X (樠 InputLine) + +03 (1) ⥪ add_x (樠 InputLine) + +04 (1) ⢮ ᨬ / ப + +05 (2) X ப ࠭ + +07 (2) Y ப ࠭ + +09 (2) X ப ࠭ + +0B (1) 梥 ப (d7-d4 梥 background, d3-d0 梥 foreground) + +0C ... ᠬ ப - процедуры для таблицы элементов экрана: - InpLnExtN - процедура нормального выхода из редакции - InpLnExtC - процедура выхода из редакции по cancel - (восстанавливает изначальную строку) + 楤 ⠡ ⮢ ࠭: + InpLnExtN - 楤 ଠ쭮 室 ।樨 + InpLnExtC - 楤 室 ।樨 cancel + (⠭ 砫 ப) []------------------------------------------------------------------------[] @@ -285,82 +285,82 @@ []------------------------------------------------------------------------[] - JUMPS.DOSError - процедура вывода окна ошибки (для DOS ошибок) + JUMPS.DOSError - 楤 뢮 訡 ( DOS 訡) - на вход: - A - номер ошибки - на выход: + 室: + A - 訡 + 室: - []------------------------------------------------------------------------[] - JUMPS.InitScrBar - процедура инициализации описателя скроллбара + JUMPS.InitScrBar - 楤 樠樨 ⥫ ஫ - на вход: - IX - адрес описателя скроллбара - на выход: + 室: + IX - ⥫ ஫ + 室: - - описатель скроллбара: - +00 (2) X позиция скролбара (0-639) - +02 (2) Y позиция скролбара (0-255) - +04 (2) длина скролбара - +06 (2) текущая длина скролбара (инициализируется в InitScrBar) - +08 (2) адрес ячейки, куда запишется начальная координата бара - если 0, то не используется - (используется для таблицы элементов экрана) - +10 (2) адрес ячейки, куда запишется конечная координата бара - если 0, то не используется - (используется для таблицы элементов экрана) - +12 (2) кол-во видимых элементов - +14 (2) общее кол-во элементов - +16 (2) первая видимый элемент + ⥫ ஫: + +00 (2) X ஫ (0-639) + +02 (2) Y ஫ (0-255) + +04 (2) ஫ + +06 (2) ⥪ ஫ (樠 InitScrBar) + +08 (2) 祩, 㤠 砫쭠 न + ᫨ 0, ᯮ + (ᯮ ⠡ ⮢ ࠭) + +10 (2) 祩, 㤠 筠 न + ᫨ 0, ᯮ + (ᯮ ⠡ ⮢ ࠭) + +12 (2) - ⮢ + +14 (2) 饥 - ⮢ + +16 (2) ࢠ []------------------------------------------------------------------------[] - JUMPS.PrnHScrBar - процедура печати горизонтального скроллбара + JUMPS.PrnHScrBar - 楤 ਧ⠫쭮 ஫ - на вход: - IX - адрес описателя скроллбара (см. выше) - на выход: + 室: + IX - ⥫ ஫ (. ) + 室: - []------------------------------------------------------------------------[] - JUMPS.PrnVScrBar - процедура печати вертикального скроллбара + JUMPS.PrnVScrBar - 楤 ⨪쭮 ஫ - на вход: - IX - адрес описателя скроллбара (см. выше) - на выход: + 室: + IX - ⥫ ஫ (. ) + 室: - []------------------------------------------------------------------------[] - JUMPS.InitProcess - процедура инициализации описателя процессбара + JUMPS.InitProcess - 楤 樠樨 ⥫ ᡠ - на вход: - IX - адрес описателя процессбара - на выход: + 室: + IX - ⥫ ᡠ + 室: - - описателя процессбара: - +00 (2) X позиция процессбара (0-639) - +02 (2) Y позиция процессбара (0-255) - +04 (2) длина процессбара - +06 (2) коэффициент для процесса (инициализируется в InitProcess) - +08 (2) коррекция коэфициента (инициализируется в InitProcess) - +10 (4) максимум (инициализируется в InitProcess) - +14 (4) текущее (инициализируется в InitProcess) - +18 (1) цвет процессбара - (d7-d4 цвет background, d3-d0 цвет foreground) + ⥫ ᡠ: + +00 (2) X ᡠ (0-639) + +02 (2) Y ᡠ (0-255) + +04 (2) ᡠ + +06 (2) 樥 (樠 InitProcess) + +08 (2) ४ 樥 (樠 InitProcess) + +10 (4) ᨬ (樠 InitProcess) + +14 (4) ⥪饥 (樠 InitProcess) + +18 (1) 梥 ᡠ + (d7-d4 梥 background, d3-d0 梥 foreground) []------------------------------------------------------------------------[] - JUMPS.PrnProcess - процедура печати процессбара + JUMPS.PrnProcess - 楤 ᡠ - на вход: - IX - адрес описателя процессбара (см. выше) - на выход: + 室: + IX - ⥫ ᡠ (. ) + 室: - []------------------------------------------------------------------------[] @@ -373,113 +373,113 @@ []------------------------------------------------------------------------[] - 3 команд перехода (12 байт) зарезервированы и заполнены - командой RET (12 байт 0xC9) + 3 室 (12 ) १ࢨ஢ + RET (12 0xC9) []------------------------------------------------------------------------[] - JUMPS.ResFire - процедура ожидания, пока все кнопки мыши не будут - отпущены + JUMPS.ResFire - 楤 , + 饭 - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - JUMPS.TestCoords - процедура проверки координат мыши по таблице - элементов экрана + JUMPS.TestCoords - 楤 ஢ન न ⠡ + ⮢ ࠭ - на вход: - IX - адрес таблицы элементов зкрана - на выход: + 室: + IX - ⠡ ⮢ ࠭ + 室: - - таблица элементов зкрана: - +00 (2) левая x координата элемента - +02 (2) правая x координата элемента - +04 (2) верхняя y координата элемента - +06 (2) нижняя y координата элемента - +08 (2) флаги элемента - +10 (2) адрес обработчика при не нажатом огне - +12 (2) адрес обработчика при нажатом огне (левая кнопка) - +14 (2) адрес обработчика при нажатом огне (правая кнопка) + ⠡ ⮢ ࠭: + +00 (2) x न + +02 (2) ࠢ x न + +04 (2) y न + +06 (2) y न + +08 (2) 䫠 + +10 (2) ࠡ稪 ⮬ + +12 (2) ࠡ稪 ⮬ ( ) + +14 (2) ࠡ稪 ⮬ (ࠢ ) - если +00 == 0x8000 это считается концом таблицы элементов зкрана + ᫨ +00 == 0x8000 ⠥ 殬 ⠡ ⮢ ࠭ - флаги элемента: - d00 - элемент кнопка - d01 - рабочая кнопка - d02 - инверт - d03 - статичный инверт - d04 - программа запускается без адреса возврата без огня - (т.е. при попадании курсора мыши в эту прямоугольную - область удаляется адрес возрата со стека и осуществляется - переход на адрес, который находиться в +10) - d05 - программа запускается без адреса возврата по левой кнопке - огня - (т.е. при нажатии левой кнопки мыши над прямоугольной - областью удаляется адрес возрата со стека и осуществляется - переход на адрес, который находиться в +12) - d06 - программа запускается без адреса возврата по правой кнопке - огня - (т.е. при нажатии правой кнопки мыши над прямоугольной - областью удаляется адрес возрата со стека и осуществляется - переход на адрес, который находиться в +14) - d07 - вызвать функцию закрытия окна перед запуском программы без - огня - (т.е. при попадании курсора мыши в эту прямоугольную - область удаляется последнее окно с экрана) - d08 - вызвать функцию закрытия окна перед запуском программы по - левой кнопке - (т.е. при нажатии левой кнопки мыши над прямоугольной - областью удаляется последнее окно с экрана) - d09 - вызвать функцию закрытия окна перед запуском программы по - правой кнопке - (т.е. при нажатии правой кнопки мыши над прямоугольной - областью удаляется последнее окно с экрана) - d15 - это флаг: 1 - инверт при огне не убирать + 䫠 : + d00 - + d01 - ࠡ + d02 - + d03 - + d04 - ணࠬ ᪠ + (.. אַ㣮 + 㤠 ⥪ ⢫ + 室 , 室 +10) + d05 - ணࠬ ᪠ + + (.. ⨨ אַ㣮쭮 + 㤠 ⥪ ⢫ + 室 , 室 +12) + d06 - ணࠬ ᪠ ࠢ + + (.. ⨨ ࠢ אַ㣮쭮 + 㤠 ⥪ ⢫ + 室 , 室 +14) + d07 - 맢 㭪 । ᪮ ணࠬ + + (.. אַ㣮 + 㤠 ᫥ ࠭) + d08 - 맢 㭪 । ᪮ ணࠬ + + (.. ⨨ אַ㣮쭮 + 㤠 ᫥ ࠭) + d09 - 맢 㭪 । ᪮ ணࠬ + ࠢ + (.. ⨨ ࠢ אַ㣮쭮 + 㤠 ᫥ ࠭) + d15 - 䫠: 1 - 㡨 []------------------------------------------------------------------------[] - JUMPS.SetCMOSPrint - процедура включения печати даты/время из CMOS + JUMPS.SetCMOSPrint - 楤 祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - JUMPS.ResCMOSPrint - процедура выключения печати даты/время из CMOS + JUMPS.ResCMOSPrint - 楤 몫祭 /६ CMOS - на вход: - - будет описано позднее - на выход: + 室: + - 㤥 ᠭ + 室: - []------------------------------------------------------------------------[] - JUMPS.SetClock - процедура установки курсора мыши в часы + JUMPS.SetClock - 楤 ⠭ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - JUMPS.SetMouse - процедура установки курсора мыши в нормальный курсор + JUMPS.SetMouse - 楤 ⠭ ଠ - на вход: + 室: - - на выход: + 室: - []------------------------------------------------------------------------[] - 4 команды перехода (12 байт) зарезервированы и заполнены - командой RET (12 байт 0xC9) + 4 室 (12 ) १ࢨ஢ + RET (12 0xC9) []------------------------------------------------------------------------[] @@ -487,178 +487,178 @@ []------------------------------------------------------------------------[] - JUMPS.MoveBytes - процедура быстрого копирования памяти с помощью - акселлератора с увеличением адресов + JUMPS.MoveBytes - 楤 ண ஢ + ᥫ 㢥祭 ᮢ - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда + сколько) - DE - (куда + сколько) + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 + ᪮쪮) + DE - (㤠 + ᪮쪮) []------------------------------------------------------------------------[] - JUMPS.MoveBytesUp - процедура быстрого копирования памяти с помощью - акселлератора с уменьшением адресов + JUMPS.MoveBytesUp - 楤 ண ஢ + ᥫ 㬥襭 ᮢ - на вход: - HL - откуда - DE - куда - BC - сколько - на выход: - HL - (откуда - сколько) - DE - (куда - сколько) + 室: + HL - 㤠 + DE - 㤠 + BC - ᪮쪮 + 室: + HL - (㤠 - ᪮쪮) + DE - (㤠 - ᪮쪮) []------------------------------------------------------------------------[] - JUMPS.Mult8 - процедура беззнакового умножения + JUMPS.Mult8 - 楤 㬭 8 * 8 bit = 16 bit - на вход: + 室: E * C - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - JUMPS.Mult16X8 - процедура беззнакового умножения + JUMPS.Mult16X8 - 楤 㬭 16 * 8 bit = 24 bit - на вход: + 室: DE * C - на выход: - A, HL - результат + 室: + A, HL - १ []------------------------------------------------------------------------[] - JUMPS.Mult16 - процедура беззнакового умножения + JUMPS.Mult16 - 楤 㬭 16 * 16 bit = 16 bit - на вход: + 室: DE * BC - на выход: - HL - результат + 室: + HL - १ []------------------------------------------------------------------------[] - JUMPS.Mult16X16 - процедура беззнакового умножения + JUMPS.Mult16X16 - 楤 㬭 16 * 16 bit = 32 bit - на вход: + 室: DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - JUMPS.Mult32 - процедура беззнакового умножения + JUMPS.Mult32 - 楤 㬭 32 * 16 bit = 32 bit - на вход: + 室: HL, DE * BC - на выход: - HL, DE - результат + 室: + HL, DE - १ []------------------------------------------------------------------------[] - JUMPS.Divis16X16 - процедура беззнакового деления + JUMPS.Divis16X16 - 楤 16 / 16 bit = 16.16 bit - на вход: + 室: BC / DE - на выход: - BC - результат - HL - остаток + 室: + BC - १ + HL - ⮪ []------------------------------------------------------------------------[] - JUMPS.Divis24X16 - процедура беззнакового деления + JUMPS.Divis24X16 - 楤 24 / 16 bit = 8.16 bit - на вход: + 室: HL, C / DE - на выход: - A - результат - HL - остаток + 室: + A - १ + HL - ⮪ []------------------------------------------------------------------------[] - JUMPS.Divis32X16 - процедура беззнакового деления + JUMPS.Divis32X16 - 楤 32 / 16 bit = 16.16 bit - на вход: + 室: HL, DE / BC - на выход: - DE - результат - HL - остаток + 室: + DE - १ + HL - ⮪ []------------------------------------------------------------------------[] - JUMPS.Divis32 - процедура беззнакового деления + JUMPS.Divis32 - 楤 32 / 16 bit = 32.16 bit - на вход: + 室: HL, DE / BC - на выход: - HL, DE - результат - BC - остаток + 室: + HL, DE - १ + BC - ⮪ []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt32 - процедура конвертации беззнакового числа - 32 bit в текст + JUMPS.ConvNumTxt32 - 楤 樨 ᫠ + 32 bit ⥪ - на вход: - BC, HL - число 32 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + BC, HL - ᫮ 32 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt16 - процедура конвертации беззнакового числа - 16 bit в текст + JUMPS.ConvNumTxt16 - 楤 樨 ᫠ + 16 bit ⥪ - на вход: - HL - число 16 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + HL - ᫮ 16 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt8 - процедура конвертации беззнакового числа - 8 bit в текст + JUMPS.ConvNumTxt8 - 楤 樨 ᫠ + 8 bit ⥪ - на вход: - A - число 8 bit - DE - адрес буфера - на выход: - DE - адрес следующего байта за числом + 室: + A - ᫮ 8 bit + DE - + 室: + DE - ᫥饣 ᫮ []------------------------------------------------------------------------[] - JUMPS.ConvTxtNum32 - процедура конвертации текста в беззнаковое - число 32 bit + JUMPS.ConvTxtNum32 - 楤 樨 ⥪ + ᫮ 32 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL, IX - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL, IX - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] - JUMPS.ConvTxtNum16 - процедура конвертации текста в беззнаковое - число 16 bit + JUMPS.ConvTxtNum16 - 楤 樨 ⥪ + ᫮ 16 bit - на вход: - DE - адрес текста (конец строки - 0) - на выход: - HL - число - C flag - ошибка + 室: + DE - ⥪ ( ப - 0) + 室: + HL - ᫮ + C flag - 訡 []------------------------------------------------------------------------[] @@ -668,4 +668,4 @@ 13 july 2002 Anton Enin (C) Copyright 2002 R-lab -если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме. +᫨ e-mail: r-lab@mail.ru ਭ 㬥. diff --git a/docs/hist866.txt b/docs/hist866.txt deleted file mode 100644 index c4b5e2f..0000000 --- a/docs/hist866.txt +++ /dev/null @@ -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 -প Current Dir, ⮡ࠦ ⥪ ४ ᪠. - - -07/09/23 -⢥ ࠢ. - - -01/08/23 -ᠥ FN ᫥ १㧪 让 (titd, ldconf). -࠭ ஢ઠ Sp97. - ଠ쭮 யᠭ, 譨 ࠩ ᪥ ࠭. - - -29/07/23 - 訡 訢襣 ਫ - 32 . -DSS ࠭ 頫 䫠 CF 室 訡, FN ᥣ ஢ ᫥ ਫ 䫠 CF. -DSS ⥯ , FN 訡 ஢, ⠬ FF, ⠡ 32... - disttest.exe, 室 祬- ⠭ 訡 #FF, ⠪ . -㦭 㫥 室 訡. - - -17/07/23 - 2.55  㭪 - । ࠢ ࠡ稪 뢠 㫥 . -C ஢ઠ . - - -10/05/22 -Viewer: -* ࠢ ᬥ᪨ ப ᬥ 㭪樮 . -* ࠢ ᠭ ਭ ⠩ . -* ந᪨ ⠪⮢ ⠬, ))). -+ ७ᥭ F7, ⮡ 룭 ))). -+ ⠭ CTRL+P . -? ࠢ Wrap, ⠫ 孥 ப. , 祬 祣. - -Editor: -+ "F7 Print" -+ ⠭ CTRL+P ० HEX -* ࠢ ᬥ᪨ ப ᬥ 㭪樮 -* ࠢ ᠭ ਭ ⠩ - -------------------------------------------------------------------------------- - -FE v.1.06 05.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ 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 ᨬ) -+ ७ ப 砫 ப ⠪ 砫, - ।饩 ப -* ࠡ⠭ 楤 樮஢ - -FN v.1.12+ 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ , ன Alt+F1/F2 ⠭ ⨢ - -FE v.1.01 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ ᮬ ⢥ত 室 । -+ 祭 ப ப 頥 - ࠭ 뫮  - ப 樨 ப -* ࠡ⠭ 楤 樮஢ 樨 ப - (࠭) / - ᨬ ⠡஢ ப, - ᪠ ᪮쪮 権 ஭ -+ 㤠 楫 ப Ctrl+Y -+ ࠭ Ctrl+S -+ ० ࠡ Home - ᫨ ⠡ 砫 ப, - ࢮ ⨨ ६頥 -஡ - ᨬ, ୮ ⨨ - ६頥 - -FN v.1.12 02.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ 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 diff --git a/docs/history.txt b/docs/history.txt index dfed099..d80ef70 100644 --- a/docs/history.txt +++ b/docs/history.txt @@ -3,155 +3,177 @@ FN - FlexNavigator FV - FileViewer 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 FN 1.15 -- год копирайта во встроенном help вставляется при сборке. -- в окне "About" теперь показывает дату сборки. -- поправлен встроенный help. -- добавлена копия этого хистори в кодировке 866 с копированием в папку fn. -- доки переведены на UTF8 кодировку. -- поправлена CorrBigChar. -- небольшие переделки в bat файлах. -- исправлен "attribut" на "attribute". -- исправлен в 2х местах "claster" на "cluster". +- ࠩ ஥ 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 вместо автопоказа (пока спрятана). -- поправлена генерация дерева файлов. +- ࠢ ᠭ ப ⨨ ALT+F1/F2. +- ᤥ ய ४ਨ ".." ஢騪 ࠢ쭮 ஢. +- ࠢ ⨯ ஢. +- ᤥ ⥫ ࠧ ४ਨ ஢ ४ﬨ ( ⠭). +- ᮤন ४ਨ ॢ ᤥ ENTER ⮯ ( ⠭). +- ࠢ ॢ 䠩. ------------------------------------------------------------------------------- 25/06/24 -Добавлено отображение сообщения о защите от записи. + ⮡ࠦ ᮮ饭 . 13/05/24 -Исправлена ошибка инициализации страницы help. -Добавлена поддержка больших файлов для FAT32 - +ࠢ 訡 樠樨 ࠭ help. + প 䠩 FAT32 11/05/24 -Теперь выводится сообщение о том, что слишком много файлов в директории. Те файлы, которые "не влезли" - не отображаются. + 뢮 ᮮ饭 ⮬, ᫨誮 䠩 ४ਨ. 䠩, " " - ⮡ࠦ. 12/12/23 -Поддержка Current Dir, при старте отображается текущая директория диска. +প Current Dir, ⮡ࠦ ⥪ ४ ᪠. 07/09/23 -Множественные мелкие правки. +⢥ ࠢ. 01/08/23 -Повисает FN после перезагрузки большой альтеры (titd, ldconf). -Убрана проверка на Sp97. -Версия нормально прописана, лишние копирайты при запуске убраны. +ᠥ FN ᫥ १㧪 让 (titd, ldconf). +࠭ ஢ઠ Sp97. + ଠ쭮 யᠭ, 譨 ࠩ ᪥ ࠭. 29/07/23 -Таблица ошибок от завершившегося приложения - 32 записи. -DSS раньше не возвращал флаг CF при выходе с ошибкой, но FN всегда проверял после возврата из приложения флаг CF. -DSS теперь вернул, FN полез ошибку проверять, а там FF, а таблица на 32... -Найдено на disttest.exe, он выходит зачем-то установив код ошибки #FF, а такого кода нет. -Нужно с нулем выходить без ошибок. + 訡 訢襣 ਫ - 32 . +DSS ࠭ 頫 䫠 CF 室 訡, FN ᥣ ஢ ᫥ ਫ 䫠 CF. +DSS ⥯ , FN 訡 ஢, ⠬ FF, ⠡ 32... + disttest.exe, 室 祬- ⠭ 訡 #FF, ⠪ . +㦭 㫥 室 訡. 17/07/23 -В биосе 2.55 появилась функция - передавать управление из ПЗУ обработчику прерывания в нулевой банке ОЗУ. -Cделана проверка на версию биоса. + 2.55  㭪 - । ࠢ ࠡ稪 뢠 㫥 . +C ஢ઠ . 10/05/22 Viewer: -* Поправлен косметический баг в нижней строке при смене функциональных клавиш. -* Исправлено зависание принтера до таймаута при печати. -* Героически сэкономлено немного тактов там, где никто не заметит))). -+ Печать перенесена на клавишу F7, чтоб выгнать вас из зоны комфорта))). -+ Добавлено сочетание CTRL+P для печати. -? Почти исправлен Wrap, остался баг с верхней строкой. Лучше, чем ничего. +* ࠢ ᬥ᪨ ப ᬥ 㭪樮 . +* ࠢ ᠭ ਭ ⠩ . +* ந᪨ ⠪⮢ ⠬, ))). ++ ७ᥭ F7, ⮡ 룭 ))). ++ ⠭ CTRL+P . +? ࠢ Wrap, ⠫ 孥 ப. , 祬 祣. Editor: -+ Добавлена кнопка "F7 Print" -+ Добавлено сочетание CTRL+P для печати в режиме HEX -* Поправлен косметический баг в нижней строке при смене функциональных клавиш -* Исправлено зависание принтера до таймаута при печати ++ "F7 Print" ++ ⠭ CTRL+P ० HEX +* ࠢ ᬥ᪨ ப ᬥ 㭪樮 +* ࠢ ᠭ ਭ ⠩ ------------------------------------------------------------------------------- FE v.1.06 05.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ По кнопке F9 вызываются настройки редактора с возможностью сохранить настройки - в файл ++ 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, который включает/отключает диалог - подтверждения закрытия редактора ++ ࠬ 䨣-䠩 fnedit.ini, 砥/⪫砥 + ⢥ত । FE v.1.05 07.06.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -* исправлен глюк, который приводил к зависанию или сбросу после 7-го открытия - редактора -+ Добавлено автозакрытие символов скобок и кавычек -+ У редактора появился конфиг-файл fnedit.ini, через который можно отключить - некоторые фичи +* ࠢ , ਢ ᠭ ᫥ 7- + । ++ ⮧⨥ ᨬ ᪮ 祪 ++ ।  䨣-䠩 fnedit.ini, १ ⪫ + FE v.1.04 18.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ Добавлена кнопка Ctrl+P для печати (затем F9 будет переназначена на другой - функционал) -+ Добавлен функционал отмены по Ctrl+Z (это не пошаговый Undo, не полноценный, - просто сбрасывает буфер текущей редактируемой строки, на момент перехода - на эту строку) ++ 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, аналогично - на пустой строке могла зациклиться -* Исправлена подпрограмма заполнения буфера текущей строки (при нулевой длине - строки он не очищался) ++ ࠢ Alt+CursorLeft(Home) Alt+CursorRight(End) +* ࠢ ணࠬ THomeString - ⮩ ப 横 +* ࠢ TEndString, 筮 - ⮩ ப 横 +* ࠢ ணࠬ ⥪饩 ப ( 㫥 + ப 頫) 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) -+ Добавлена горячая кнопка Ctrl+D для дублирования строки (работает - только для строк до 127 символов) -+ При переносе строки в начале строки делается такой же отступ от начала, как и - на предыдущей строке -* Переработаны процедуры позиционирования курсора ++ Ctrl+D 㡫஢ ப (ࠡ⠥ + ⮫쪮 ப 127 ᨬ) ++ ७ ப 砫 ப ⠪ 砫, + ।饩 ப +* ࠡ⠭ 楤 樮஢ FN v.1.12+ 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ Панель, в которой меняется диск по Alt+F1/F2 становится активной ++ , ன Alt+F1/F2 ⠭ ⨢ FE v.1.01 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ Добавлен диалог с запросом подтверждения выхода из редактора -+ При извлечении строки буфер строки очищается - ранее можно было наблюдать - некоторый мусор в конце строки при навигации между строками -* Доработана процедура позиционирования курсора при навигации на строку - (страницу) выше/ниже - в зависимости от наличия табуляторов в строке, курсор - мог отскакивать на несколько позиций в сторону -+ Добавлена возможность удаления целой строки по Ctrl+Y -+ Добавлена горячая кнопка для сохранения Ctrl+S -+ Реализация нового режима работы Home - если есть табуляторы в начале строки, - то при первом нажатии курсор перемещается в позицию с первым не-пробельным - символом, при повторном нажатии - перемещается в первую позицию ++ ᮬ ⢥ত 室 । ++ 祭 ப ப 頥 - ࠭ 뫮  + ப 樨 ப +* ࠡ⠭ 楤 樮஢ 樨 ப + (࠭) / - ᨬ ⠡஢ ப, + ᪠ ᪮쪮 権 ஭ ++ 㤠 楫 ப Ctrl+Y ++ ࠭ Ctrl+S ++ ० ࠡ Home - ᫨ ⠡ 砫 ப, + ࢮ ⨨ ६頥 -஡ + ᨬ, ୮ ⨨ - ६頥 FN v.1.12 02.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG) -+ Реализован запуск BAT-файлов, как из панели, так и из командной строки с - передачей параметров. ++ BAT-䠩, , ⠪ ப + ।祩 ࠬ஢. 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) -+ Добавлено переключение кодировки текста WIN/DOS/KOI ++ ४祭 ஢ ⥪ WIN/DOS/KOI diff --git a/docs/todo.txt b/docs/todo.txt index 08b1587..19e122e 100644 --- a/docs/todo.txt +++ b/docs/todo.txt @@ -1,19 +1,19 @@ Flex navigator TODO: -[] добавить в настройки автопоказ или по ENTER при перемещении по дереву каталогов -[] добавить в настройки выбор менять ли активную панель при смене диска на не активной панели -[] при выводе дерева каталогов сделать скролл влево/вправо если дерево не влезает по горизонтали -[] по кнопке F6 только переименование, а должно быть переименование/перемещение файла если на панелях разные пути -[] переделать захордкоженные координаты, переделать на привязку к координатам окна -[] разобраться как работает строка ввода при поиске файла по имени -[] плагин редактирования шрифта -[] плагин для создания форм окон -[] загрузка FLX плагина по имени без запуска -[?] вызов и взаимодействие плагина с плагином +[] ன ⮯ ENTER ६饭 ॢ ⠫ +[] ன 롮 ⨢ ᬥ ᪠ ⨢ +[] 뢮 ॢ ⠫ ᤥ ஫ /ࠢ ᫨ ॢ ਧ⠫ +[] F6 ⮫쪮 २, २/६饭 䠩 ᫨ ࠧ +[] । प न, । ਢ離 न⠬ +[] ࠧ ࠡ⠥ ப ᪥ 䠩 +[] ।஢ +[] ᮧ +[?] 맮 ⢨ -[x] ввод в командную строку и нажатие ALT+F1/F2 (выбор драйва) подвисает -[x] сортировщик сортирует "..", а не должен -[x] вьювер при получении имени файла делает его конверсию и при наличии русских символов портит имя и "File not found" -[x] в Disk Info окне показывает имя диска имя файла (npl.exe) -[x] построитель дерева каталогов не работает +[x] 㧪 FLX ᪠ +[x] ப ⨥ ALT+F1/F2 (롮 ࠩ) ᠥ +[x] ஢騪 "..", +[x]  祭 䠩 稨 ᪨ ᨬ "File not found" +[x] Disk Info 뢠 ᪠ 䠩 (npl.exe) +[x] ந⥫ ॢ ⠫ ࠡ⠥ diff --git a/fn/flx/calc.flx b/fn/flx/calc.flx index 01b0a97..a2a85c0 100644 Binary files a/fn/flx/calc.flx and b/fn/flx/calc.flx differ diff --git a/fn/flx/cdplayer.flx b/fn/flx/cdplayer.flx index 1357ff9..217a0e3 100644 Binary files a/fn/flx/cdplayer.flx and b/fn/flx/cdplayer.flx differ diff --git a/fn/flx/cdplayer.txt b/fn/flx/cdplayer.txt new file mode 100644 index 0000000..259f25a --- /dev/null +++ b/fn/flx/cdplayer.txt @@ -0,0 +1,46 @@ + + SHAOS CD-Player Flex Navigator ।祭 ࠢ +ந 樨 Audio CD ᪮. + ⥬ ॡ: FN ᨨ 1.16 . + + ࠢ ஬ ந 稬 蠬. +᮪ ࠢ: +1 - ; +2 - 㧠, ⮬ ० 稭 ࣠ ६ ந뢠; +3 - ⮯; +4 - ३ ।騩 ४; +5 - ६⪠ , ⨥ ᪠ 10 ᥪ㭤 + (⮫쪮 ० ); +6 - ६⪠ ।, ⨥ ᪠ 10 ᥪ㭤 + (⮫쪮 ० ); +7 - ३ ᫥騩 ४; +8 - / ३ ਢ CD ᪮. ﭨ ஫. + ⨥ , ᫥饥 ⨥ + . + +" , ": +- ⨥ ⮯ ᥣ 뢠 ६ ࠭ 0 室 ४; +- ६⪠ ࠡ⠥ ⮫쪮 ० ; +- 室 ந த. ᫥饬 + ᪥ ᫨ ந 㤥 뢠 ० ⮯ + ४ 1, ६ 00:00. +- ० 㧠 室 ᫥騩/।騩 ४ ६ 뢠 00:00. + +History: + 1.1 +- ᮢ ஥ 㯭 . +- ࠫ ࠢ ᤥ ࠢ . +- ० 㧠 ᤥ ࣠ ६ ࠭. +- ६⪠ ᤥ 10 ᥪ㭤 ⮫쪮 ० . +- ᯮ짮 , 室 㬥 ⮫쪮 + ⨥ . +- 2 뢠 ⥪饣 ४, ⠫ 뢠 + ६ ந뢠 ४. +- ᤥ ⢠ ४ ᪥. +- ࠭ 㭪樮. +- ࠢ 뢮 ४ ६ ࠭, ᡮ. +- ࠢ CD ਢ ᤥ 뫪 ATAPI ⠬ १ BIOS. +- ࠭ ࠡ १ IDE, 室 ⠢. +- ࠭ , 室 ⠢. +- ࠡ⪠ 室 ᨨ SHAOS CD-Player v1.0 beta1. + diff --git a/fn/flx/date.flx b/fn/flx/date.flx index 5bf18d5..80d760e 100644 Binary files a/fn/flx/date.flx and b/fn/flx/date.flx differ diff --git a/fn/flx/fneditor.flx b/fn/flx/fneditor.flx index 31f54d0..2a81c37 100644 Binary files a/fn/flx/fneditor.flx and b/fn/flx/fneditor.flx differ diff --git a/fn/flx/fnviewer.flx b/fn/flx/fnviewer.flx index b998093..73e93fd 100644 Binary files a/fn/flx/fnviewer.flx and b/fn/flx/fnviewer.flx differ diff --git a/fn/flx/help.flx b/fn/flx/help.flx index 49d36f3..59d4ee3 100644 Binary files a/fn/flx/help.flx and b/fn/flx/help.flx differ diff --git a/fn/flx/test.flx b/fn/flx/test.flx index f64aae5..92ddc15 100644 Binary files a/fn/flx/test.flx and b/fn/flx/test.flx differ diff --git a/fn/fn.exe b/fn/fn.exe index f2f707e..70a4272 100644 Binary files a/fn/fn.exe and b/fn/fn.exe differ diff --git a/fn/history.txt b/fn/history.txt index c4b5e2f..658df8d 100644 --- a/fn/history.txt +++ b/fn/history.txt @@ -3,6 +3,27 @@ FN - FlexNavigator FV - FileViewer 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 FN 1.15 - ࠩ ஥ help ⠢ ᡮથ. @@ -37,7 +58,6 @@ FN v1.14 ࠢ 訡 樠樨 ࠭ help. প 䠩 FAT32 - 11/05/24 뢮 ᮮ饭 ⮬, ᫨誮 䠩 ४ਨ. 䠩, " " - ⮡ࠦ. diff --git a/fn_const.a80 b/fn_const.a80 index 7a5b357..f8a3656 100644 --- a/fn_const.a80 +++ b/fn_const.a80 @@ -1,23 +1,34 @@ -; LAST UPDATE: 25.06.2025 savelij - -DOShistory_Size EQU 0x200 ; ࠧ DOS ਨ +; LAST UPDATE: 25.07.2025 savelij INIT_VAR 0x8000 SETVAR WorkBuffer, 0x400 ; ࠡ稩 SETVAR StackTree, 0x100 ; 砫 ⥪ ࠡ ॢ ४਩ SETVAR STACKTREE, 0 ; 㪠⥫ (⥪ ) - SETVAR PagesList, 0x100 ; ᯨ᮪ ࠭ SETVAR Stack, 0x100 ; 砫 ࠡ祣 ⥪ SETVAR STACK, 0 ; 㪠⥫ (⥪ ) + SETVAR PagesList, 0x100 ; ᯨ᮪ ࠭ SETVAR BASE_ADDR, 0x100 ; 砫 ( 室 ६ 㯠 ) SETVAR PALETTE, 0 ; ࠧ ⠡楩 室 ६ -ADDR - _INIT_VAR 0x4000 - _SETVAR .FlexDIRECTORY +; ஢ +BUF_REZ2 + _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 CursTimer EQU 6 ; "" ࣠ ⥪⮢ @@ -105,50 +116,35 @@ WINSUBOBJ ;[]----------------------------------------------------------[] PANEL _INIT_VAR - _SETVAR .PANELFLAG ; 7 - 뤥 - ; 0 - - _SETVAR .VIEWFLAG ; 0 - ⪠ - ; 0 - ஡ - ; 1 - ॢ - ; 2 - 㦠⮥ ॢ - _SETVAR .SORTFLAG ; ஢ - ; 0 - - ; 1 - ७ - ; 2 - ࠧ - ; 3 - - ; 4 - execute file - ; 5 - file mask - _SETVAR .XL ; X LOW - _SETVAR .XH ; X HIGH - _SETVAR .BARXL ; X ஫ LOW - _SETVAR .BARXH ; X ஫ HIGH - _SETVAR .BARYL ; Y ஫ LOW - _SETVAR .BARYH ; Y ஫ HIGH - _SETVAR .BARMLL ; Max ஫ LOW - _SETVAR .BARMLH ; Max ஫ HIGH - _SETVAR .BARCLL ; ⥪. ஫ LOW - _SETVAR .BARCLH ; ⥪. ஫ HIGH - _SETVAR .BARLFL ; 祩 BarLeft LOW - _SETVAR .BARLFH ; 祩 BarLeft HIGH - _SETVAR .BARRTL ; 祩 BarRight LOW - _SETVAR .BARRTH ; 祩 BarRight HIGH - _SETVAR .FPL ; - 䠩 ࠭ LOW - _SETVAR .FPH ; - 䠩 ࠭ HIGH - _SETVAR .EFL ; 饥 - 䠩 LOW - _SETVAR .EFH ; 饥 - 䠩 HIGH - _SETVAR .FFL ; 䠩 ࠭ LOW - _SETVAR .FFH ; 䠩 ࠭ 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 ; 騩 + _SETVAR .PANELFLAG, BYTE ; 7 - 뤥 + ; 0 - + _SETVAR .VIEWFLAG, BYTE ; 0 - ⪠ + ; 0 - ஡ + ; 1 - ॢ + ; 2 - 㦠⮥ ॢ + _SETVAR .SORTFLAG, BYTE ; ஢ + ; 0 - + ; 1 - ७ + ; 2 - ࠧ + ; 3 - + ; 4 - execute file + ; 5 - file mask + _SETVAR .X, WORD ; X + _SETVAR .BAR_X, WORD ; X ஫ + _SETVAR .BAR_Y, WORD ; Y ஫ + _SETVAR .BAR_MAX, WORD ; Max ஫ + _SETVAR .BAR_CURR, WORD ; ⥪. ஫ ??? + _SETVAR .BAR_ADR_LEFT, WORD ; 祩 BarLeft + _SETVAR .BAR_ADR_RIGHT, WORD ; 祩 BarRight + _SETVAR .FILES_PAGE, WORD ; - 䠩 ࠭ + _SETVAR .FILES_ALL, WORD ; 饥 - 䠩 + _SETVAR .FIRST_FILE, WORD ; 䠩 ࠭ + _SETVAR .CURR_FILE, WORD ; T騩 䠩 ࠭ + _SETVAR .FILES_MARK, WORD ; - ન஢ 䠩 + _SETVAR .BYTES_MARK, DWORD ; - ન஢ ⮢ + _SETVAR .BYTES_MARK_H, BYTE ; - ન஢ ⮢ FAT32 + _SETVAR .FILE_MASK, MASK_SIZE ; ᪠ 䠩 + _SETVAR .CURR_PATH, 0x100 ; 騩 PANELFLAG _BITMASK PRNDOSPATH, 7 ; =1- DOS @@ -176,47 +172,28 @@ SORTFLAG ;[]----------------------------------------------------------[] BAR _INIT_VAR - _SETVAR .XL - _SETVAR .XH - _SETVAR .YL - _SETVAR .YH - _SETVAR .MAXLL - _SETVAR .MAXLH - _SETVAR .LENL - _SETVAR .LENH - _SETVAR .LEFTL - _SETVAR .LEFTH - _SETVAR .RIGHTL - _SETVAR .RIGHTH - _SETVAR .PAGEL - _SETVAR .PAGEH - _SETVAR .MAXL - _SETVAR .MAXH - _SETVAR .FIRSTL - _SETVAR .FIRSTH + _SETVAR .X, WORD + _SETVAR .Y, WORD + _SETVAR .MAX_LEN, WORD ; ࠧ + _SETVAR .LEN_FILES, WORD ; ⢮ 䠩 + _SETVAR .LEFT_FILES, WORD + _SETVAR .RIGHT_FILES, WORD + _SETVAR .PAGE_FILES, WORD ; ⢮ 䠩 ࠭ + _SETVAR .MAX_FILES, WORD ; ᨬ쭮 ⢮ 䠩 + _SETVAR .FIRST_FILE, WORD ; 䠩 ;[]----------------------------------------------------------[] +; ண PROC _INIT_VAR - _SETVAR .XL - _SETVAR .XH - _SETVAR .YL - _SETVAR .YH - _SETVAR .MAXLL - _SETVAR .MAXLH - _SETVAR .COEFL - _SETVAR .COEFH - _SETVAR .CORRL - _SETVAR .CORRH - _SETVAR .MAXL1 - _SETVAR .MAXH1 - _SETVAR .MAXL2 - _SETVAR .MAXH2 - _SETVAR .CURL1 - _SETVAR .CURH1 - _SETVAR .CURL2 - _SETVAR .CURH2 - _SETVAR .COLOR + _SETVAR .X, WORD + _SETVAR .Y, WORD + _SETVAR .MAX_LEN, WORD ; ᨬ쭠 + _SETVAR .INDEX, WORD ; 樥 + _SETVAR .CORR_INDEX, WORD ; ४ 樥 + _SETVAR .MAX_PAGES, DWORD ; ᨬ ࠭ + _SETVAR .CURR_PAGE, DWORD ; ࠭ + _SETVAR .COLOR, BYTE ; ண ; ଠ ⠡ ; +00 2 Xmin @@ -247,22 +224,14 @@ PROC ; +0E 2 ࠡ稪 ⮬ (ࠢ) FORMTABL _INIT_VAR - _SETVAR .XMINL - _SETVAR .XMINH - _SETVAR .XMAXL - _SETVAR .XMAXH - _SETVAR .YMINL - _SETVAR .YMINH - _SETVAR .YMAXL - _SETVAR .YMAXH - _SETVAR .FLAGL - _SETVAR .FLAGH - _SETVAR .FIRENOL - _SETVAR .FIRENOH - _SETVAR .FIRELEFTL - _SETVAR .FIRELEFTH - _SETVAR .FIRERIGHTL - _SETVAR .FIRERIGHTH + _SETVAR .X_MIN, WORD ; Xmin + _SETVAR .X_MAX, WORD ; Xmax + _SETVAR .Y_MIN, WORD ; Ymin + _SETVAR .Y_MAX, WORD ; Ymax + _SETVAR .FLAG, WORD ; ⮢ 䫠 + _SETVAR .FIRE_NOFIRE, WORD ; ࠡ稪 ⮬ + _SETVAR .FIRE_LEFT, WORD ; ࠡ稪 ⮬ () + _SETVAR .FIRE_RIGHT, WORD ; ࠡ稪 ⮬ (ࠢ) _SETVAR .SIZE, 0 ;FLAGS ; 7-0 @@ -276,6 +245,7 @@ FORMTABL _BITMASK BUTTON, 0 ; ; ; 15-8 _BITMASK FIRENOINV, 7 ; ४⥫ ( 㡨) + _BITMASK HZ, 6 ; ???? _BITMASK CLOSEANDRUN, 1 ; 맢 㭪 । ᪮ ணࠬ _BITMASK CLOSEWIN, 0 ; 맢 㭪 । ᪮ ணࠬ _BITMASK ENDTABL, 7 ; .XMINH 㪠⥫ ᯨ᪠ @@ -340,11 +310,15 @@ JUMPS ; 1 - _SETVAR .CMOSPrint, BYTE _SETVAR .FNPAGESID, BYTE ; . FN - _SETVAR .FNFUNCT, BYTE ; ࠭ 㭪ﬨ FN - _SETVAR .FNVIEW, BYTE ; ࠭ FileViewer - _SETVAR .FNEDIT, BYTE ; ࠭ FileEditor - _SETVAR .FNHELP, BYTE ; ࠭ FN HELP + _SETVAR .FNREZ2, BYTE ; ࠭ 㭪ﬨ FN _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 .FLX, BYTE ; ࠭ 㧪 FLX ᬮ. FLX ⨫ _SETVAR .LEFTPANEL, BYTE ; ࠭ ⠫ @@ -378,11 +352,17 @@ FILENAME .FNEDIT_EXT EQU "fnedit.ext" .FNTREE_FLN EQU "treeinfo.fln" .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 MARK_DIR EQU 0 ; 롮 ४ਨ ⮬ ࠧ 䠩 TREE_DIR_ENTER EQU 0 ; ᮤন ४ਨ ॢ ENTER CORR_FILENAME EQU 1 ; ८ࠧ ᨬ 䠩 - diff --git a/fn_exe_boot.a80 b/fn_exe_boot.a80 index ae1b3ef..d68f477 100644 --- a/fn_exe_boot.a80 +++ b/fn_exe_boot.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 05.06.2025 savelij +; LAST UPDATE: 19.07.2025 savelij include macros.a80 @@ -14,6 +14,19 @@ include fat_dir_sp.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 SETVAR FONT_RAW, 6888;IFFFONT_RAW_PACK - FONT_RAW_PACK SETVAR_ALIGN @@ -37,7 +50,7 @@ EntryExec: DI SPDSS DSSF.EXIT,0x26 ; exit .next1 - SPDSS DSSF.GETMEM,6 ; 6 ࠭ + SPDSS DSSF.GETMEM,PAGES_MEM ; ࠭ JR NC,.next2 ; CY - not enough memory LD HL,MAIN.no_memory_str SPDSS DSSF.PCHARS ; print text @@ -46,6 +59,7 @@ EntryExec: DI .next2 LD (MAIN.hMem),A ; memory handle LD HL,MAIN.FNMAIN SPBIOS BIOSF.GETMEMBLKPAGES ; get memory pages list +; 㧪 ୠ LD A,(MAIN.FNMAIN) ; set pages from 0xC000 SETPORT WINSP.CPU3,,0 LD HL,BASE_ADDR ; FNMAIN @@ -53,35 +67,15 @@ EntryExec: DI LD A,(MAIN.hFile) SPDSS DSSF.READ JP C,disk_error - LD A,(MAIN.FNFUNCT) +; 㧪 ⥫ 㭪権 + LD A,(MAIN.FNREZ2) SETPORT WINSP.CPU3,,0 - LD HL,0xC000 ; FNFUNCT + LD HL,0xC000 ; FNREZ2 LD DE,END_BLOCK_2 - START_BLOCK_2 LD A,(MAIN.hFile) SPDSS DSSF.READ 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 SETPORT WINSP.CPU3,,0 LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK) @@ -89,8 +83,6 @@ EntryExec: DI LD A,(MAIN.hFile) SPDSS DSSF.READ JP C,disk_error - LD A,(MAIN.hFile) - SPDSS DSSF.CLOSE ; close file ; ᯠ ⮢ LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK) LD DE,0xC000 @@ -103,8 +95,39 @@ EntryExec: DI LD DE,CLOCK_BMP LD BC,CLOCK_BMP_Size + MOUSE_BMP_Size 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 - SETPORT WINSP.CPU3,PAGE.SYSTEM;0xFE + SETPORT WINSP.CPU3,PAGE.SYSTEM LD HL,0x0124 + CPU3 ; !HARDCODE LD (HL),0x38 ; interrupt routine address Low byte INC HL @@ -117,9 +140,9 @@ EntryExec: DI SETPORT WINSP.CPU3,,0 LD A,(MAIN.hMem) LD (RAMPAGES.FNPAGESID),A - LD HL,MAIN.FNFUNCT - LD DE,RAMPAGES.FNFUNCT - LD BC,0x0005 + LD HL,MAIN.FNREZ2 + LD DE,RAMPAGES.FNREZ2 + LD BC,PAGES_MEM LDIR JP BASE_ADDR @@ -135,42 +158,62 @@ disk_error: PUSH AF UNPACK include dec40.a80 -; 14 x 9 = 126 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D -Clock_BMP: DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE ; 00 - DB 0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF ; 01 - DB 0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0x00 ; 02 - 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 - DB 0xFE,0xFE,0x00,0xFE,0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00 ; 06 - DB 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE ; 07 - DB 0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 08 +oo EQU COLORP.BLACK + COLORI.BLACK +WW EQU COLORP.WHITE + COLORI.WHITE +HH EQU COLORP.WHITE + COLORI.WHITE0E +BB EQU COLORP.WHITE + COLORI.BLACK + +; ᨪ +; 9 x 14 = 126 00 01 02 03 04 05 06 07 08 +Clock_BMP: DB oo,oo,oo,oo,oo,oo,oo,oo,oo ; 00 + DB oo,HH,HH,HH,HH,HH,HH,HH,oo ; 01 + 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 -; 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 - DB 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF ; 01 - DB 0xFF,0x00,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE ; 02 - DB 0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00 ; 03 - DB 0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0x00,0xFE ; 04 - DB 0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0xFE,0x00 ; 05 - DB 0xFF,0xFF,0xFF,0x00,0xFE,0x00,0x00,0xFE,0xFE,0x00,0xFF,0xFF,0x00 ; 06 - DB 0x00,0xFF,0xFF,0x00,0xFE,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00 ; 07 - DB 0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF ; 08 +; +; 9 x 13 = 117 00 01 02 03 04 05 06 07 08 +Mouse_BMP: DB oo,oo,WW,WW,WW,WW,WW,WW,WW ; 00 + DB oo,HH,oo,WW,WW,WW,WW,WW,WW ; 01 + DB oo,HH,HH,oo,WW,WW,WW,WW,WW ; 02 + DB oo,HH,HH,HH,oo,WW,WW,WW,WW ; 03 + DB oo,HH,HH,HH,HH,oo,WW,WW,WW ; 04 + DB oo,HH,HH,HH,HH,HH,oo,WW,WW ; 05 + DB oo,HH,HH,HH,HH,HH,HH,oo,WW ; 06 + 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 MAIN .hFile db 0x00 .hMem db 0x00 .FNMAIN db 0x00 -.FNFUNCT db 0x00 ; 00 -.FNVIEW db 0x00 ; 01 -.FNEDIT db 0x00 ; 02 -.FNHELP db 0x00 ; 03 -.FNFONT db 0x00 ; 04 +.FNREZ2 db 0x00 ; 00 +.FNFONT db 0x00 ; 01 +.FNREZ3 db 0x00 ; 02 + IFDEF ENABLE.VIEW +.FNVIEW db 0x00 ; 03 + ENDIF + IFDEF ENABLE.EDIT +.FNEDIT db 0x00 ; 04 + ENDIF 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" .no_memory_str: DZ "Not enough memory to load program.\r\n" .load_err_str: DZ "Disk loading error.\r\n" diff --git a/fn_macros.a80 b/fn_macros.a80 index 49b04c9..3ee5006 100644 --- a/fn_macros.a80 +++ b/fn_macros.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 25.06.2025 savelij +; LAST UPDATE: 06.07.2025 savelij MAKEWINDOW MACRO TYPE CALL JUMPS.MakeWindow @@ -103,4 +103,49 @@ WINDOWCLOSE MACRO W_END 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 diff --git a/fn_version.a80 b/fn_version.a80 index 68ab762..8f8b787 100644 --- a/fn_version.a80 +++ b/fn_version.a80 @@ -1,7 +1,7 @@ -; LAST UPDATE: 24.06.2025 savelij +; LAST UPDATE: 18.07.2025 savelij FLEX_VERS -.NAVIGATOR EQU "1.15" -.EDITOR EQU "1.08" +.NAVIGATOR EQU "1.16" +.EDITOR EQU "1.09" .VIEWER EQU "1.05" diff --git a/fnbar.a80 b/fnbar.a80 index a146343..bc399e7 100644 --- a/fnbar.a80 +++ b/fnbar.a80 @@ -1,13 +1,13 @@ -; LAST UPDATE: 07.03.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]-----------------------------------------------------------[] -InitScrollBar LD C,(IX + BAR.PAGEL) - LD B,(IX + BAR.PAGEH) ; - . . +InitScrollBar LD C,(IX + BAR.PAGE_FILES) + LD B,(IX + BAR.PAGE_FILES + 1) ; - . . LD L,C LD H,B - LD E,(IX + BAR.MAXL) - LD D,(IX + BAR.MAXH) ; .⮢ + LD E,(IX + BAR.MAX_FILES) + LD D,(IX + BAR.MAX_FILES + 1) ; .⮢ LD A,D OR E JR NZ,.L1 @@ -18,8 +18,8 @@ InitScrollBar LD C,(IX + BAR.PAGEL) ADD HL,DE EX DE,HL .L2 PUSH DE - LD E,(IX + BAR.MAXLL) - LD D,(IX + BAR.MAXLH) ; - . . * ࠧ + LD E,(IX + BAR.MAX_LEN) + LD D,(IX + BAR.MAX_LEN + 1) ; - . . * ࠧ CALL Mult16X16 ; DE * BC = HL + DE POP BC ; /.⮢ CALL Divis32X16 ; HL + DE / BC = DE (HL-) @@ -31,8 +31,8 @@ InitScrollBar LD C,(IX + BAR.PAGEL) SBC HL,DE JR C,.L4 LD DE,0x0003 -.L4 LD (IX + BAR.LENL),E ; = - LD (IX + BAR.LENH),D ; = +.L4 LD (IX + BAR.LEN_FILES),E ; = + LD (IX + BAR.LEN_FILES + 1),D ; = RET PrnHScrBar PUSH IY @@ -40,12 +40,12 @@ PrnHScrBar PUSH IY PUSH AF GETPORT WINSP.CPU1 LD IYL,A - LD L,(IX + BAR.FIRSTL) ; FirstFile - LD H,(IX + BAR.FIRSTH) - LD E,(IX + BAR.PAGEL) - LD D,(IX + BAR.PAGEH) - LD C,(IX + BAR.MAXL) ; EquipFiles - LD B,(IX + BAR.MAXH) + LD L,(IX + BAR.FIRST_FILE) ; FirstFile + LD H,(IX + BAR.FIRST_FILE + 1) + LD E,(IX + BAR.PAGE_FILES) + LD D,(IX + BAR.PAGE_FILES + 1) + LD C,(IX + BAR.MAX_FILES) ; EquipFiles + LD B,(IX + BAR.MAX_FILES + 1) LD A,B OR C JR NZ,.L1 @@ -63,8 +63,8 @@ PrnHScrBar PUSH IY JR NC,.L2 LD HL,0x0000 .L2 EX DE,HL - LD C,(IX + BAR.MAXLL) - LD B,(IX + BAR.MAXLH) + LD C,(IX + BAR.MAX_LEN) + LD B,(IX + BAR.MAX_LEN + 1) CALL Mult16X16 POP BC CALL Divis32X16 @@ -76,12 +76,12 @@ PrnHScrBar PUSH IY RR E JR NC,.L4 INC DE -.L4 LD L,(IX + BAR.XL) - LD H,(IX + BAR.XH) +.L4 LD L,(IX + BAR.X) + LD H,(IX + BAR.X + 1) SRL H RR L SET 6,H - LD A,(IX + BAR.YL) + LD A,(IX + BAR.Y) LD C,A LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88 SETPORT WINSP.CPU1,0x50 @@ -104,11 +104,11 @@ PrnHScrBar PUSH IY EI POP DE .L3 PUSH DE - LD L,(IX + BAR.XL) - LD H,(IX + BAR.XH) + LD L,(IX + BAR.X) + LD H,(IX + BAR.X + 1) ADD HL,DE - LD E,(IX + BAR.LEFTL) - LD D,(IX + BAR.LEFTH) + LD E,(IX + BAR.LEFT_FILES) + LD D,(IX + BAR.LEFT_FILES + 1) LD A,D OR E JR Z,.L6 @@ -122,10 +122,10 @@ PrnHScrBar PUSH IY SRL H RR L SET 6,H - LD A,(IX + BAR.YL) + LD A,(IX + BAR.Y) LD C,A - LD E,(IX + BAR.LENL) - LD D,(IX + BAR.LENH) + LD E,(IX + BAR.LEN_FILES) + LD D,(IX + BAR.LEN_FILES + 1) LD A,D OR A JR NZ,.L7 @@ -185,12 +185,12 @@ PrnHScrBar PUSH IY SETPORT WINSP.CPU1,,0 EI POP HL - LD C,(IX + BAR.LENL) - LD B,(IX + BAR.LENH) + LD C,(IX + BAR.LEN_FILES) + LD B,(IX + BAR.LEN_FILES + 1) PUSH BC ADD HL,BC - LD C,(IX+BAR.RIGHTL) - LD B,(IX+BAR.RIGHTH) + LD C,(IX + BAR.RIGHT_FILES) + LD B,(IX + BAR.RIGHT_FILES + 1) LD A,B OR C JR Z,.L10 @@ -201,8 +201,8 @@ PrnHScrBar PUSH IY LD A,H LD (BC),A .L10 POP BC - LD L,(IX + BAR.MAXLL) - LD H,(IX + BAR.MAXLH) + LD L,(IX + BAR.MAX_LEN) + LD H,(IX + BAR.MAX_LEN + 1) OR A SBC HL,BC POP BC @@ -216,7 +216,7 @@ PrnHScrBar PUSH IY SRL D RR E JR Z,.L11 - LD A,(IX + BAR.YL) + LD A,(IX + BAR.Y) LD C,A LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88 SETPORT WINSP.CPU1,0x50 @@ -247,12 +247,12 @@ PrnVScrBar PUSH IY PUSH AF GETPORT WINSP.CPU1 LD IYH,A - LD L,(IX + BAR.FIRSTL) ; FirstFile - LD H,(IX + BAR.FIRSTH) - LD E,(IX + BAR.PAGEL) - LD D,(IX + BAR.PAGEH) - LD C,(IX + BAR.MAXL) ; EquipFiles - LD B,(IX + BAR.MAXH) + LD L,(IX + BAR.FIRST_FILE) ; FirstFile + LD H,(IX + BAR.FIRST_FILE + 1) + LD E,(IX + BAR.PAGE_FILES) + LD D,(IX + BAR.PAGE_FILES + 1) + LD C,(IX + BAR.MAX_FILES) ; EquipFiles + LD B,(IX + BAR.MAX_FILES + 1) LD A,B OR C JR NZ,.L1 @@ -270,12 +270,12 @@ PrnVScrBar PUSH IY JR NC,.L2 LD HL,0x0000 .L2 EX DE,HL - LD C,(IX + BAR.MAXLL) - LD B,(IX + BAR.MAXLH) + LD C,(IX + BAR.MAX_LEN) + LD B,(IX + BAR.MAX_LEN + 1) CALL Mult16X16 POP BC CALL Divis32X16 - LD A,(IX + BAR.YL) + LD A,(IX + BAR.Y) LD IYL,A LD A,D OR E @@ -283,8 +283,8 @@ PrnVScrBar PUSH IY PUSH DE LD A,E LD (.L4),A - LD L,(IX + BAR.XL) - LD H,(IX + BAR.XH) + LD L,(IX + BAR.X) + LD H,(IX + BAR.X + 1) SRL H RR L SET 6,H @@ -311,11 +311,11 @@ PrnVScrBar PUSH IY EI POP DE .L3 PUSH DE - LD L,(IX + BAR.YL) - LD H,(IX + BAR.YH) + LD L,(IX + BAR.Y) + LD H,(IX + BAR.Y + 1) ADD HL,DE - LD E,(IX + BAR.LEFTL) - LD D,(IX + BAR.LEFTH) + LD E,(IX + BAR.LEFT_FILES) + LD D,(IX + BAR.LEFT_FILES + 1) LD A,D OR E JR Z,.L6 @@ -326,12 +326,12 @@ PrnVScrBar PUSH IY LD (HL),D EX DE,HL .L6 PUSH HL - LD L,(IX + BAR.XL) - LD H,(IX + BAR.XH) + LD L,(IX + BAR.X) + LD H,(IX + BAR.X + 1) SRL H RR L SET 6,H - LD A,(IX + BAR.LENL) + LD A,(IX + BAR.LEN_FILES) LD C,A SUB 0x02 LD (.L7),A @@ -382,12 +382,12 @@ PrnVScrBar PUSH IY SETPORT WINSP.CPU1,,0 EI POP HL - LD C,(IX + BAR.LENL) - LD B,(IX + BAR.LENH) + LD C,(IX + BAR.LEN_FILES) + LD B,(IX + BAR.LEN_FILES + 1) PUSH BC ADD HL,BC - LD C,(IX + BAR.RIGHTL) - LD B,(IX + BAR.RIGHTH) + LD C,(IX + BAR.RIGHT_FILES) + LD B,(IX + BAR.RIGHT_FILES + 1) LD A,B OR C JR Z,.L9 @@ -398,8 +398,8 @@ PrnVScrBar PUSH IY LD A,H LD (BC),A .L9 POP BC - LD L,(IX + BAR.MAXLL) - LD H,(IX + BAR.MAXLH) + LD L,(IX + BAR.MAX_LEN) + LD H,(IX + BAR.MAX_LEN + 1) OR A SBC HL,BC POP BC @@ -411,8 +411,8 @@ PrnVScrBar PUSH IY JR C,.L10 LD A,L LD (.L11),A - LD L,(IX+BAR.XL) - LD H,(IX+BAR.XH) + LD L,(IX + BAR.X) + LD H,(IX + BAR.X + 1) SRL H RR L SET 6,H @@ -441,18 +441,18 @@ PrnVScrBar PUSH IY ;[]-----------------------------------------------------------[] InitProcess SUB A - LD (IX + PROC.CURL1),A - LD (IX + PROC.CURH1),A - LD (IX + PROC.CURL2),A - LD (IX + PROC.CURH2),A - LD (IX + PROC.CORRL),A - LD (IX + PROC.CORRH),A - LD C,(IX + PROC.MAXLL) ; /. - LD B,(IX + PROC.MAXLH) - LD E,(IX + PROC.MAXL1) - LD D,(IX + PROC.MAXH1) - LD L,(IX + PROC.MAXL2) - LD H,(IX + PROC.MAXH2) + LD (IX + PROC.CURR_PAGE),A + LD (IX + PROC.CURR_PAGE + 1),A + LD (IX + PROC.CURR_PAGE + 2),A + LD (IX + PROC.CURR_PAGE + 3),A + LD (IX + PROC.CORR_INDEX),A + LD (IX + PROC.CORR_INDEX + 1),A + LD C,(IX + PROC.MAX_LEN) ; /. + LD B,(IX + PROC.MAX_LEN + 1) + LD E,(IX + PROC.MAX_PAGES) + LD D,(IX + PROC.MAX_PAGES + 1) + LD L,(IX + PROC.MAX_PAGES + 2) + LD H,(IX + PROC.MAX_PAGES + 3) CALL Divis32X16 ; HL + DE / BC = DE (HL-) LD A,H OR L @@ -462,20 +462,20 @@ InitProcess SUB A OR A SBC HL,DE JR C,.L1 - LD A,(IX + PROC.MAXL2) - OR (IX + PROC.MAXH2) + LD A,(IX + PROC.MAX_PAGES + 2) + OR (IX + PROC.MAX_PAGES + 3) JR NZ,.L1 - LD E,(IX + PROC.MAXL1) - LD D,(IX + PROC.MAXH1) + LD E,(IX + PROC.MAX_PAGES) + LD D,(IX + PROC.MAX_PAGES + 1) LD BC,1000 - LD (IX + PROC.CORRL),C - LD (IX + PROC.CORRH),B + LD (IX + PROC.CORR_INDEX),C + LD (IX + PROC.CORR_INDEX + 1),B CALL Mult16X16 - LD C,(IX + PROC.MAXLL) ; /. - LD B,(IX + PROC.MAXLH) + LD C,(IX + PROC.MAX_LEN) ; /. + LD B,(IX + PROC.MAX_LEN + 1) CALL Divis32X16 ; HL + DE / BC = DE (HL-) -.L1 LD (IX + PROC.COEFL),E - LD (IX + PROC.COEFH),D +.L1 LD (IX + PROC.INDEX),E + LD (IX + PROC.INDEX + 1),D RET PrnProcess PUSH IY @@ -483,21 +483,21 @@ PrnProcess PUSH IY PUSH AF GETPORT WINSP.CPU1 LD IYL,A - LD E,(IX + PROC.CURL1) - LD D,(IX + PROC.CURH1) - LD L,(IX + PROC.CURL2) - LD H,(IX + PROC.CURH2) - LD A,(IX + PROC.CORRL) - OR (IX + PROC.CORRH) + LD E,(IX + PROC.CURR_PAGE) + LD D,(IX + PROC.CURR_PAGE + 1) + LD L,(IX + PROC.CURR_PAGE + 2) + LD H,(IX + PROC.CURR_PAGE + 3) + LD A,(IX + PROC.CORR_INDEX) + OR (IX + PROC.CORR_INDEX + 1) JR Z,.L1 - LD C,(IX + PROC.CORRL) - LD B,(IX + PROC.CORRH) + LD C,(IX + PROC.CORR_INDEX) + LD B,(IX + PROC.CORR_INDEX + 1) CALL Mult16X16 -.L1 LD C,(IX + PROC.COEFL) - LD B,(IX + PROC.COEFH) +.L1 LD C,(IX + PROC.INDEX) + LD B,(IX + PROC.INDEX + 1) CALL Divis32X16 - LD L,(IX + PROC.XL) - LD H,(IX + PROC.XH) + LD L,(IX + PROC.X) + LD H,(IX + PROC.X + 1) SRL H RR L SET 6,H @@ -506,8 +506,8 @@ PrnProcess PUSH IY JR Z,.L2 PUSH DE PUSH HL - LD L,(IX + PROC.MAXLL) - LD H,(IX + PROC.MAXLH) + LD L,(IX + PROC.MAX_LEN) + LD H,(IX + PROC.MAX_LEN + 1) OR A SBC HL,DE JR NC,.L3 @@ -518,7 +518,7 @@ PrnProcess PUSH IY RR E JR NC,.L4 INC DE -.L4 LD A,(IX + PROC.YL) +.L4 LD A,(IX + PROC.Y) LD C,A LD A,(IX + PROC.COLOR) AND 0xF0 @@ -549,8 +549,8 @@ PrnProcess PUSH IY EI POP DE .L2 PUSH HL - LD L,(IX + PROC.MAXLL) - LD H,(IX + PROC.MAXLH) + LD L,(IX + PROC.MAX_LEN) + LD H,(IX + PROC.MAX_LEN + 1) OR A SBC HL,DE EX DE,HL @@ -561,7 +561,7 @@ PrnProcess PUSH IY RR E JR NC,.L7 INC DE -.L7 LD A,(IX + PROC.YL) +.L7 LD A,(IX + PROC.Y) LD C,A LD A,(IX + PROC.COLOR) AND 0x0F diff --git a/fndos.a80 b/fndos.a80 index e9617b0..d87eca6 100644 --- a/fndos.a80 +++ b/fndos.a80 @@ -16,7 +16,7 @@ NewDIRECTORY PUSH HL POP IY PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE ADD A,'A' CP (HL) @@ -36,11 +36,11 @@ NewDIRECTORY PUSH HL BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JP NZ,InitPanel BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) - LD HL,LeftPanel + PANEL.CURRPATH - LD DE,RightPanel + PANEL.CURRPATH + LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,RightPanel + PANEL.CURR_PATH JR Z,NewDIR0 - LD HL,RightPanel + PANEL.CURRPATH - LD DE,LeftPanel + PANEL.CURRPATH + LD HL,RightPanel + PANEL.CURR_PATH + LD DE,LeftPanel + PANEL.CURR_PATH NewDIR0 SUB A .L1 LDI CP (HL) @@ -61,7 +61,7 @@ NewDIRECT1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -74,7 +74,7 @@ NewDIRECT1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) NewDIRTree PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -102,7 +102,7 @@ RefreshDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -111,8 +111,8 @@ RefreshDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) CALL Z,PrnHScrBar POP AF CALL NZ,PrnVScrBar -RfDIRn1 LD HL,LeftPanel + PANEL.CURRPATH - LD DE,RightPanel + PANEL.CURRPATH +RfDIRn1 LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,RightPanel + PANEL.CURR_PATH RefrDIR LD A,(DE) CP (HL) RET NZ @@ -136,7 +136,7 @@ RefrDIR LD A,(DE) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -149,8 +149,8 @@ RefrDex POP IY RET ;[]----------------------------------------------------------[] -FindPrevFile LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +FindPrevFile LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) RET Z @@ -202,8 +202,8 @@ FndPrFileE LD A,(HL) PrevFile DB 13 DUP 0 ;[]----------------------------------------------------------[] -FindPrevDIR LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +FindPrevDIR LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) RET Z @@ -254,8 +254,8 @@ FndTree INC SP INC SP LD L,C LD H,B - LD C,(IY + PANEL.FPL) - LD B,(IY + PANEL.FPH) + LD C,(IY + PANEL.FILES_PAGE) + LD B,(IY + PANEL.FILES_PAGE + 1) LD DE,0x0000 EX DE,HL OR A @@ -268,10 +268,10 @@ FndTree INC SP SBC HL,BC JR NC,.L1 ADD HL,BC - LD (IY + PANEL.CFL),L - LD (IY + PANEL.CFH),H - LD (IY + PANEL.FFL),E - LD (IY + PANEL.FFH),D + LD (IY + PANEL.CURR_FILE),L + LD (IY + PANEL.CURR_FILE + 1),H + LD (IY + PANEL.FIRST_FILE),E + LD (IY + PANEL.FIRST_FILE + 1),D FndTreeExt POP AF SETPORT WINSP.CPU1,,0 RET diff --git a/fndosline.a80 b/fndosline.a80 index e35ada5..45d1a30 100644 --- a/fndosline.a80 +++ b/fndosline.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 28.05.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]==========================================================[] DOSline SUB A @@ -108,12 +108,12 @@ RunDOSline CALL SaveDOSline LD HL,DOSinp LD A,(HL) - CP 0x20 + CP ' ' JP Z,ClearDOSline LD A,(DOSstr.slen) LD B,A LD C,0x00 - LD A,0x20 + LD A,' ' RunDLn0 CP (HL) JR Z,RunDLine INC HL @@ -135,7 +135,7 @@ RunDLine DEC HL LD A,(DOSinp + 1) CP ':' JR NZ,.L1 - LD (IY + PANEL.CURRPATH),0x00 + LD (IY + PANEL.CURR_PATH),0x00 .L1 CALL NewDIRECTORY LD A,(TreeFlag) OR A @@ -149,7 +149,7 @@ RunDLine DEC HL JR NZ,.L2 LD IY,RightPanel LD HL,LeftPanel -.L2 LD DE,PANEL.CURRPATH +.L2 LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -162,7 +162,7 @@ RunDLine DEC HL CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL PrnVScrBar POP IY @@ -217,7 +217,7 @@ RunDOSexe1 ld hl,WorkBuffer jr z,.endOfLine dec hl ld de,WorkBuffer - call ConcatString + call STRCAT .endOfLine: ld hl,WorkBuffer ld de,WorkBuffer + 0x0100 SPDSS DSSF.EX_PATH,4 @@ -242,9 +242,9 @@ RunDOSexe1 ld hl,WorkBuffer .noExe: ld hl,ShellFile ;㥬 襫 ld de,WorkBuffer + 0x0100 - call CopyString + call STRCPY ld hl,WorkBuffer - call ConcatString + call STRCAT .noBatch: CALL ResDrivers SUB A CALL ClearScreen @@ -282,11 +282,11 @@ GetFileName: LD A,(DOSinp + 1) ; .panelSearch: ex hl,de ld (.str),hl bit PANELFLAG.B_SIDE,(iy + PANEL.PANELFLAG) - ld hl,RightPanel + PANEL.CURRPATH + ld hl,RightPanel + PANEL.CURR_PATH jr nz,.next - ld hl,LeftPanel + PANEL.CURRPATH + ld hl,LeftPanel + PANEL.CURR_PATH .next: ld de,WorkBuffer + 0x0100 - call CopyString + call STRCPY ld a,'\\' ld (de),a inc de @@ -310,16 +310,16 @@ GetFileName: LD A,(DOSinp + 1) ; .str EQU $-2 jr c,.notFound ld hl,WorkBuffer + 0200h - jp CopyString + jp STRCPY ;⮢ 䠩 ᪠ PrepareFilename: ld de,WorkBuffer + 0200h push hl ld hl,WorkBuffer + 0x0100 - call CopyString + call STRCPY pop hl - jp ConcatString + jp STRCAT ; 䠩 SearchFilename: ld hl,WorkBuffer + 0200h ; 䠩 ⠫ ⥪饩 @@ -331,7 +331,7 @@ SearchFilename: ld hl,WorkBuffer + 0200h ; SaveDOSline GETPORT WINSP.CPU1 PUSH AF - LD A,(RAMPAGES.FNHELP) + LD A,(RAMPAGES.FNREZ3) SETPORT WINSP.CPU1,,0 SETPORT WINSP.Y_PORT,0xC0 LD IX,DOSstr @@ -404,7 +404,7 @@ GetDOShistory LD IX,DOSstr EX AF,AF' GETPORT WINSP.CPU1 PUSH AF - LD A,(RAMPAGES.FNHELP) + LD A,(RAMPAGES.FNREZ3) SETPORT WINSP.CPU1,,0 EX AF,AF' PUSH AF @@ -562,10 +562,10 @@ InsFileName LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR Z,InsFN1 @@ -616,10 +616,10 @@ InsFN2 POP AF TempName DB 14 DUP 0 -InsLeftPath LD HL,LeftPanel + PANEL.CURRPATH +InsLeftPath LD HL,LeftPanel + PANEL.CURR_PATH JR InsPath -InsRightPath LD HL,RightPanel + PANEL.CURRPATH +InsRightPath LD HL,RightPanel + PANEL.CURR_PATH InsPath LD DE,WorkBuffer + 0x100 PUSH DE SUB A diff --git a/fninit.a80 b/fninit.a80 index 7e25c25..2fbfb0d 100644 --- a/fninit.a80 +++ b/fninit.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 27.04.2025 savelij +; LAST UPDATE: 24.07.2025 savelij ;[]==========================================================[] InitVideoMode @@ -137,7 +137,7 @@ FirstInit ADD A,'A' LD (ShellFile),a ; fndosln.z80 SPDSS DSSF.CURDISK - LD HL,LeftPanel + PANEL.CURRPATH + LD HL,LeftPanel + PANEL.CURR_PATH PUSH HL ADD A,'A' LD (HL),A @@ -146,17 +146,30 @@ FirstInit INC HL SPDSS DSSF.CURDIR POP HL - LD DE,RightPanel + PANEL.CURRPATH + LD DE,RightPanel + PANEL.CURR_PATH LD BC,0x0100 LDIR GETPORT WINSP.CPU1 PUSH AF - LD A,(RAMPAGES.FNFUNCT) + LD A,(RAMPAGES.FNREZ2) SETPORT WINSP.CPU1,,0 - LD HL,FlexDIRECTORY + LD HL,BUF_REZ2.FlexDIRECTORY SPDSS DSSF.APPINFO,1 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 JP C,.L5 LD HL,SetupName @@ -203,7 +216,7 @@ FirstInit LDI POP DE EX DE,HL - LD BC,PANEL.FILEMASK + LD BC,PANEL.FILE_MASK ADD HL,BC EX DE,HL SUB A @@ -219,7 +232,7 @@ FirstInit LDI POP DE EX DE,HL - LD BC,PANEL.FILEMASK + LD BC,PANEL.FILE_MASK ADD HL,BC EX DE,HL SUB A @@ -235,15 +248,18 @@ FirstInit .L5 POP AF SETPORT WINSP.CPU1,,0 LD DE,InitExtention - LD A,(RAMPAGES.FNHELP) + LD A,(RAMPAGES.FNREZ3) LD C,WINSP.CPU1 CALL Resident - LD HL,LeftPanel + PANEL.CURRPATH + LD HL,LeftPanel + PANEL.CURR_PATH SPDSS DSSF.CHDIR LD A,0x01 LD (InitFlg),A RET +.DIRFLX DB "FLX\\" +.EDIRFLX + ; ⠡ 롮 ᪮ SETUP_DISKS LD HL,BgDISKl ; ᪨ LD DE,BgDISKr ; ᪨ ࠢ @@ -352,7 +368,7 @@ InitPanTree LD IY,LeftPanel LD IY,RightPanel .L1 CALL InitPanelE InitPanExit LD HL,LeftPanel - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH BIT 7,(HL) JR NZ,.L2 LD HL,RightPanel @@ -374,8 +390,8 @@ InitPanelE LD A,(InitPanFlg) LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK JP NZ,InitPPanel - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD (PanelN1),HL INC HL INC HL @@ -389,23 +405,23 @@ InitPanelE LD A,(InitPanFlg) LD (PanelN4),HL LD (Nbut1+2),HL LD (Nbar1),HL - LD (IY+PANEL.BARXL),L - LD (IY+PANEL.BARXH),H - LD (IY+PANEL.BARYL),0xC9 - LD (IY+PANEL.BARYH),0x00 + LD (IY+PANEL.BAR_X),L + LD (IY+PANEL.BAR_X + 1),H + LD (IY+PANEL.BAR_Y),0xC9 + LD (IY+PANEL.BAR_Y + 1),0x00 LD DE,0x0114 ADD HL,DE LD (PanelN5),HL LD (Nbar2+2),HL LD (Nbut2),HL - LD (IY+PANEL.BARMLL),E - LD (IY+PANEL.BARMLH),D + LD (IY+PANEL.BAR_MAX),E + LD (IY+PANEL.BAR_MAX + 1),D LD DE,0x0010 ADD HL,DE LD (Nbut2+2),HL LD (Nfile+2),HL - LD (IY+PANEL.FPL),0x33 - LD (IY+PANEL.FPH),0x00 + LD (IY+PANEL.FILES_PAGE),0x33 + LD (IY+PANEL.FILES_PAGE + 1),0x00 ; ⪠ MAKEWINDOW WINSUBOBJ.WOBIND PanelN1 EQU $+1 @@ -433,12 +449,12 @@ PanelN6 EQU $+1 POP HL LD C,0x32 ADD HL,BC - LD (IY+PANEL.BARLFL),L - LD (IY+PANEL.BARLFH),H + LD (IY+PANEL.BAR_ADR_LEFT),L + LD (IY+PANEL.BAR_ADR_LEFT + 1),H LD C,0x0E ADD HL,BC - LD (IY+PANEL.BARRTL),L - LD (IY+PANEL.BARRTH),H + LD (IY+PANEL.BAR_ADR_RIGHT),L + LD (IY+PANEL.BAR_ADR_RIGHT + 1),H JP InitPanEx 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 ; ஡ ॢ -InitPPanel LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) +InitPPanel LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD (PanelP1),HL INC HL INC HL @@ -467,20 +483,20 @@ InitPPanel LD L,(IY+PANEL.XL) LD (Pbar1),HL LD (Pbar2),HL LD (Pfile+2),HL - LD (IY+PANEL.BARXL),L - LD (IY+PANEL.BARXH),H + LD (IY+PANEL.BAR_X),L + LD (IY+PANEL.BAR_X + 1),H LD DE,0x0010 ADD HL,DE LD (Pbut1+2),HL LD (Pbut2+2),HL LD (Pbar1+2),HL LD (Pbar2+2),HL - LD (IY+PANEL.BARYL),0x44 - LD (IY+PANEL.BARYH),0x00 - LD (IY+PANEL.BARMLL),0x85 - LD (IY+PANEL.BARMLH),0x00 - LD (IY+PANEL.FPL),0x12 - LD (IY+PANEL.FPH),0x00 + LD (IY+PANEL.BAR_Y),0x44 + LD (IY+PANEL.BAR_Y + 1),0x00 + LD (IY+PANEL.BAR_MAX),0x85 + LD (IY+PANEL.BAR_MAX + 1),0x00 + LD (IY+PANEL.FILES_PAGE),0x12 + LD (IY+PANEL.FILES_PAGE + 1),0x00 MAKEWINDOW WINSUBOBJ.WOBIND PanelP1 EQU $+1 W_BORDER 0,59,312,151 @@ -507,12 +523,12 @@ PanelP6 EQU $+1 POP HL LD BC,0x0036 ADD HL,BC - LD (IY+PANEL.BARLFL),L - LD (IY+PANEL.BARLFH),H + LD (IY+PANEL.BAR_ADR_LEFT),L + LD (IY+PANEL.BAR_ADR_LEFT + 1),H LD BC,0x000E ADD HL,BC - LD (IY+PANEL.BARRTL),L - LD (IY+PANEL.BARRTH),H + LD (IY+PANEL.BAR_ADR_RIGHT),L + LD (IY+PANEL.BAR_ADR_RIGHT + 1),H JP InitPanEx PodrMouse @@ -528,7 +544,7 @@ InitPanEx LD A,(InitPanFlg) PUSH IY PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE SPDSS DSSF.CHDIR POP IY @@ -539,7 +555,7 @@ InitPanEx LD A,(InitPanFlg) POP IY PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE ADD A,'A' LD (HL),A @@ -560,7 +576,7 @@ InitPanEx LD A,(InitPanFlg) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY+PANEL.VIEWFLAG) @@ -584,12 +600,12 @@ InitPanEx LD A,(InitPanFlg) PUSH IY BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) LD IY,RightPanel - LD HL,LeftPanel + PANEL.CURRPATH - LD DE,RightPanel + PANEL.CURRPATH + LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,RightPanel + PANEL.CURR_PATH JR Z,.L3 LD IY,LeftPanel - LD HL,RightPanel + PANEL.CURRPATH - LD DE,LeftPanel + PANEL.CURRPATH + LD HL,RightPanel + PANEL.CURR_PATH + LD DE,LeftPanel + PANEL.CURR_PATH .L3 SUB A .L4 LDI CP (HL) diff --git a/fnmain.a80 b/fnmain.a80 index f0c0be7..ec51a11 100644 --- a/fnmain.a80 +++ b/fnmain.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 03.06.2025 savelij +; LAST UPDATE: 24.07.2025 savelij ;[]=======================================================================[] ; FLEX NAVIGATOR ; @@ -99,11 +99,15 @@ MouseFlag DB 1 ; CMOSPrint: DB 1 RAMPAGES .FNPAGESID DB 0 ; . FN -.FNFUNCT DB 0 ; ࠭ 㭪ﬨ FN -.FNVIEW DB 0 ; ࠭ FileViewer -.FNEDIT DB 0 ; ࠭ FileEditor -.FNHELP DB 0 ; ࠭ FN HELP +.FNREZ2 DB 0 ; ࠭ 㭪ﬨ FN .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 ; 䨪 .FLX DB 0 ; ࠭ 㧪 FLX ᬮ. FLX ⨫ .LEFTPANEL DB 0 ; ࠭ ⠫ @@ -139,7 +143,7 @@ RAMPAGES DOSError EX AF,AF' GETPORT WINSP.CPU1 PUSH AF - LD A,(RAMPAGES.FNFUNCT) + LD A,(RAMPAGES.FNREZ2) SETPORT WINSP.CPU1,,0 EX AF,AF' CALL DOSErrorR @@ -149,6 +153,17 @@ DOSError EX AF,AF' EX AF,AF' 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 fnprint.a80 include fninput.a80 @@ -317,7 +332,7 @@ LeftPanel: DB 0x80 ; DB 0 DB "*.*" ; Ma᪠ 䠩 DB 0x0A DUP 0 - DB 0x100 DUP 0 ; ⥪饩 ४ਨ + DB PANEL.CURR_PATH_Size DUP 0 ; ⥪饩 ४ਨ RightPanel: DB 0x01 ; 7 - 뤥 ; 0 - @@ -348,7 +363,7 @@ RightPanel: DB 0x01 ; DB 0 DB "*.*" ; Ma᪠ 䠩 DB 0x0A DUP 0 - DB 0x100 DUP 0 ; ⥪饩 ४ਨ + DB PANEL.CURR_PATH_Size DUP 0 ; ⥪饩 ४ਨ ;[]=======================================================================[] @@ -370,7 +385,7 @@ RESIDENT ;[]----------------------------------------------------------[] .CopyFiles: LD DE,CopyFilesR ; resident 2 -.FunctResident: LD A,(RAMPAGES.FNFUNCT) +.FunctResident: LD A,(RAMPAGES.FNREZ2) LD C,WINSP.CPU1 JP Resident @@ -450,13 +465,16 @@ RESIDENT ;[]==========================================================[] .MarkFile: LD DE,MarkFileR ; resident 3 -.HelpResident: LD A,(RAMPAGES.FNHELP) +.HelpResident: LD A,(RAMPAGES.FNREZ3) LD C,WINSP.CPU1 JP Resident IF MARK_DIR .GetDirSize: LD DE,GetDirSizeR JR .HelpResident + +.MkdirsDst LD DE,MkdirsDstR + JR .HelpResident ENDIF .UnMarkGroup: LD DE,UnMarkGroupR @@ -498,9 +516,10 @@ END_BLOCK_1: ;[]=======================================================================[] PHASE 0x4000 -; section .text +; MAIN.FNREZ2 START_BLOCK_2 -FlexDIRECTORY: DB 0x100 DUP 0 +;FlexDIRECTORY: DB 0x100 DUP 0 +;FLXdir: DB 0x100 DUP 0 include rez2_fnfunct.a80 include rez2_fnmisc.a80 @@ -514,43 +533,9 @@ FlexDIRECTORY: DB 0x100 DUP 0 END_BLOCK_2: 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 -; section .data +; MAIN.FNFONT START_BLOCK_4 FONT_RAW_PACK binclude tmp/font_raw.pack @@ -560,11 +545,59 @@ IFFFONT_RAW_END END_BLOCK_4: 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 ; ᭮ BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १ 2 BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १ 3 + IFDEF ENABLE.EDIT EDITOR_SIZE EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR ; । + ENDIF + IFDEF ENABLE.VIEW VIEWER_SIZE EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER ;  + ENDIF SORT_SIZE EQU END_SORT - START_SORT ; ஢騪 TREE_SIZE EQU END_TREE - START_TREE ; ࠡ ॢ diff --git a/fnmenu.a80 b/fnmenu.a80 index 2a3b53b..e5c7c4b 100644 --- a/fnmenu.a80 +++ b/fnmenu.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 27.05.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]==========================================================[] PullDown: CALL ResInvert @@ -93,15 +93,15 @@ PullInvert: LD L,A ADD HL,BC PUSH HL POP IX - LD L,(IX + FORMTABL.XMINL) - LD H,(IX + FORMTABL.XMINH) - LD C,(IX + FORMTABL.YMINL) - LD B,(IX + FORMTABL.YMINH) - LD A,(IX + FORMTABL.XMAXL) - SUB (IX + FORMTABL.XMINL) + LD L,(IX + FORMTABL.X_MIN) + LD H,(IX + FORMTABL.X_MIN + 1) + LD C,(IX + FORMTABL.Y_MIN) + LD B,(IX + FORMTABL.Y_MIN + 1) + LD A,(IX + FORMTABL.X_MAX) + SUB (IX + FORMTABL.X_MIN) EX AF,AF' - LD A,(IX + FORMTABL.YMAXL) - SUB (IX + FORMTABL.YMINL) + LD A,(IX + FORMTABL.Y_MAX) + SUB (IX + FORMTABL.Y_MIN) LD IXH,A EX AF,AF' SRL A @@ -268,7 +268,7 @@ MenuView: CALL ResInvert LD (MenuView.sort5),A PUSH IY POP HL - LD BC,PANEL.FILEMASK + LD BC,PANEL.FILE_MASK ADD HL,BC LD DE,MenuView.Tfilter LD C,STRLEN("*.* ");0x0C @@ -406,7 +406,7 @@ CurWTab EQU $-2 RET TestInvert: LD HL,(CurWTab) - LD DE,FORMTABL.FLAGH + LD DE,FORMTABL.FLAG + 1 ADD HL,DE LD A,0 MaxLines EQU $-1 @@ -554,19 +554,19 @@ ChangeSet: CALL TestInvert ADD HL,BC PUSH HL POP IX - LD C,(IX + FORMTABL.FIRELEFTL) ; - LD B,(IX + FORMTABL.FIRELEFTH) + LD C,(IX + FORMTABL.FIRE_LEFT) ; + LD B,(IX + FORMTABL.FIRE_LEFT + 1) LD A,B OR C RET Z - BIT FORMTABL.B_EXECNORETLMB,(IX + FORMTABL.FLAGL) ; + BIT FORMTABL.B_EXECNORETLMB,(IX + FORMTABL.FLAG) ; JR Z,.L1 POP AF .L1 PUSH BC - BIT FORMTABL.B_INV1,(IX + FORMTABL.FLAGL) + BIT FORMTABL.B_INV1,(IX + FORMTABL.FLAG) CALL NZ,ResSelect1 CALL ResSelect2 - BIT FORMTABL.B_CLOSEWIN,(IX + FORMTABL.FLAGH) + BIT FORMTABL.B_CLOSEWIN,(IX + FORMTABL.FLAG + 1) RET Z WINDOWCLOSE RET @@ -792,7 +792,7 @@ NewFilter: CALL ResInvert W_END PUSH IY POP HL - LD BC,PANEL.FILEMASK + LD BC,PANEL.FILE_MASK ADD HL,BC LD DE,CurFilt SUB A @@ -817,7 +817,7 @@ NewFilter: CALL ResInvert RET NC PUSH IY POP HL - LD DE,PANEL.FILEMASK + LD DE,PANEL.FILE_MASK ADD HL,DE EX DE,HL LD HL,CurFilt @@ -944,7 +944,7 @@ ChangeDrv: PUSH IY JR NZ,.Drive1 LD (IX+0x00),0x00 LD (IX+0x01),0x80 - LD A,(IY + PANEL.CURRPATH) + LD A,(IY + PANEL.CURR_PATH) SUB 'A' LD (CurDrive),A CALL SetDriveInv @@ -1032,7 +1032,7 @@ DriveEnter: LD A,(CurDrive) SetDrive: LD HL,NewDrive ADD A,'A' LD (HL),A - LD (IY+PANEL.CURRPATH),0x00 + LD (IY+PANEL.CURR_PATH),0x00 WINDOWCLOSE EX (SP),IY CALL SetInvert @@ -1056,7 +1056,7 @@ AutoActivatePanel EQU $-1 BIT 7,(HL) JR NZ,.readDir LD HL,RightPanel -.readDir: LD DE,PANEL.CURRPATH +.readDir: LD DE,PANEL.CURR_PATH ADD HL,DE SPDSS DSSF.CHDIR POP IY @@ -1078,15 +1078,15 @@ DriveInvert: LD L,A ADD HL,BC PUSH HL POP IX - LD L,(IX + FORMTABL.XMINL) - LD H,(IX + FORMTABL.XMINH) - LD C,(IX + FORMTABL.YMINL) - LD B,(IX + FORMTABL.YMINH) - LD A,(IX + FORMTABL.XMAXL) - SUB (IX + FORMTABL.XMINL) + LD L,(IX + FORMTABL.X_MIN) + LD H,(IX + FORMTABL.X_MIN + 1) + LD C,(IX + FORMTABL.Y_MIN) + LD B,(IX + FORMTABL.Y_MIN + 1) + LD A,(IX + FORMTABL.X_MAX) + SUB (IX + FORMTABL.X_MIN) EX AF,AF' - LD A,(IX + FORMTABL.YMAXL) - SUB (IX + FORMTABL.YMINL) + LD A,(IX + FORMTABL.Y_MAX) + SUB (IX + FORMTABL.Y_MIN) LD IXH,A EX AF,AF' SRL A diff --git a/fnmouse.a80 b/fnmouse.a80 index d93e2a1..49cf754 100644 --- a/fnmouse.a80 +++ b/fnmouse.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 20.04.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]----------------------------------------------------------[] ResFire: LD A,(MouseFlag) @@ -57,27 +57,27 @@ TestCoords: CALL TestCMOS RET Z .L4 LD (.PrMousX),HL LD (.PrMousY),DE -CoordLp LD C,(IX+FORMTABL.XMINL) ; 00 - LD B,(IX+FORMTABL.XMINH) ; 01 +CoordLp LD C,(IX+FORMTABL.X_MIN) ; 00 + LD B,(IX+FORMTABL.X_MIN + 1) ; 01 OR A SBC HL,BC ADD HL,BC JP C,NxtCrds - LD C,(IX+FORMTABL.XMAXL) ; 02 - LD B,(IX+FORMTABL.XMAXH) ; 03 + LD C,(IX+FORMTABL.X_MAX) ; 02 + LD B,(IX+FORMTABL.X_MAX + 1) ; 03 SBC HL,BC ADD HL,BC JP NC,NxtCrds - LD C,(IX+FORMTABL.YMINL) ; 04 - LD B,(IX+FORMTABL.YMINH) ; 05 + LD C,(IX+FORMTABL.Y_MIN) ; 04 + LD B,(IX+FORMTABL.Y_MIN + 1) ; 05 OR A EX DE,HL SBC HL,BC ADD HL,BC EX DE,HL JP C,NxtCrds - LD C,(IX+FORMTABL.YMAXL) ; 06 - LD B,(IX+FORMTABL.YMAXH) ; 07 + LD C,(IX+FORMTABL.Y_MAX) ; 06 + LD B,(IX+FORMTABL.Y_MAX + 1) ; 07 EX DE,HL SBC HL,BC ADD HL,BC @@ -88,9 +88,9 @@ CoordLp LD C,(IX+FORMTABL.XMINL) ; 00 OR A LD A,C JR Z,CoordL1 - BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08 CALL NZ,SetSelect1 -CoordL1 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08 +CoordL1 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAG) ; 08 CALL NZ,SetSelect2 LD C,0x00 RunFlag EQU $-1 @@ -105,63 +105,63 @@ RunFlag EQU $-1 JR Z,Execute1 BIT 0,A JR Z,Execute2 - BIT FORMTABL.B_BUTTON,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_BUTTON,(IX+FORMTABL.FLAG) ; 08 CALL NZ,PushButton CCF RET NC OR A - BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGL) ; 08 ; ࠡ + BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAG) ; 08 ; ࠡ RET NZ - LD C,(IX+FORMTABL.FIRELEFTL) ; 0C ; - LD B,(IX+FORMTABL.FIRELEFTH) ; 0D + LD C,(IX+FORMTABL.FIRE_LEFT) ; 0C ; + LD B,(IX+FORMTABL.FIRE_LEFT + 1) ; 0D LD A,B OR C JP Z,NxtCrds1 - BIT FORMTABL.B_EXECNORETLMB,(IX+FORMTABL.FLAGL) ; 08 ; + BIT FORMTABL.B_EXECNORETLMB,(IX+FORMTABL.FLAG) ; 08 ; JR Z,.L1 POP AF .L1 PUSH BC - BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08 CALL NZ,ResSelect1 CALL ResSelect2 OR A - BIT FORMTABL.B_CLOSEWIN,(IX+FORMTABL.FLAGH) ; 09 + BIT FORMTABL.B_CLOSEWIN,(IX+FORMTABL.FLAG + 1) ; 09 RET Z WINDOWCLOSE RET -Execute1 LD C,(IX+FORMTABL.FIRENOL) ; 0A ; - LD B,(IX+FORMTABL.FIRENOH) ; 0B +Execute1 LD C,(IX+FORMTABL.FIRE_NOFIRE) ; 0A ; + LD B,(IX+FORMTABL.FIRE_NOFIRE + 1) ; 0B LD A,B OR C JR Z,NxtCrds1 - BIT FORMTABL.B_EXECONLY,(IX+FORMTABL.FLAGL) ; 08 ; + BIT FORMTABL.B_EXECONLY,(IX+FORMTABL.FLAG) ; 08 ; JR Z,.L1 POP AF .L1 PUSH BC - BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08 CALL NZ,ResSelect1 CALL ResSelect2 OR A - BIT FORMTABL.B_EXECNOPRESS,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_EXECNOPRESS,(IX+FORMTABL.FLAG) ; 08 RET Z WINDOWCLOSE RET -Execute2 LD C,(IX+FORMTABL.FIRERIGHTL) ; 0E ; ࠢ - LD B,(IX+FORMTABL.FIRERIGHTH) ; 0F +Execute2 LD C,(IX+FORMTABL.FIRE_RIGHT) ; 0E ; ࠢ + LD B,(IX+FORMTABL.FIRE_RIGHT + 1) ; 0F LD A,B OR C JR Z,NxtCrds1 - BIT FORMTABL.B_EXECNORETRMB,(IX+FORMTABL.FLAGL) ; 08 ; + BIT FORMTABL.B_EXECNORETRMB,(IX+FORMTABL.FLAG) ; 08 ; JR Z,.L1 POP AF .L1 PUSH BC - BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08 CALL NZ,ResSelect1 CALL ResSelect2 OR A - BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGH) ; 09 + BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAG + 1) ; 09 RET Z WINDOWCLOSE RET @@ -171,13 +171,13 @@ NxtCrds LD C,A OR A LD A,C JR Z,NxtCrds0 - BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08 CALL NZ,ResSelect1 -NxtCrds0 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08 +NxtCrds0 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAG) ; 08 CALL NZ,SetSelect2 NxtCrds1 LD BC,FORMTABL.SIZE;0x0010 ADD IX,BC - BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; ⠡? + BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1) ; ⠡? JP Z,CoordLp OR A RET @@ -187,10 +187,10 @@ ResMInvert PUSH IX PUSH DE PUSH AF LD BC,FORMTABL.SIZE;0x0010 -ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 - RES 6,(IX+FORMTABL.FLAGH) ; 09 +ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 + RES FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 ADD IX,BC - BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) + BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1) JR Z,ResCrds POP AF POP DE @@ -198,22 +198,22 @@ ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 POP IX RET -SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 +SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 RET NZ - SET FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 + SET FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 PUSH AF PUSH HL PUSH DE PUSH IX - LD L,(IX+FORMTABL.XMINL) ; 00 - LD H,(IX+FORMTABL.XMINH) ; 01 - LD C,(IX+FORMTABL.YMINL) ; 04 - LD B,(IX+FORMTABL.YMINH) ; 05 - LD A,(IX+FORMTABL.XMAXL) ; 02 - SUB (IX+FORMTABL.XMINL) ; 00 + LD L,(IX+FORMTABL.X_MIN) ; 00 + LD H,(IX+FORMTABL.X_MIN + 1) ; 01 + LD C,(IX+FORMTABL.Y_MIN) ; 04 + LD B,(IX+FORMTABL.Y_MIN + 1) ; 05 + LD A,(IX+FORMTABL.X_MAX) ; 02 + SUB (IX+FORMTABL.X_MIN) ; 00 EX AF,AF' - LD A,(IX+FORMTABL.YMAXL) ; 06 - SUB (IX+FORMTABL.YMINL) ; 04 + LD A,(IX+FORMTABL.Y_MAX) ; 06 + SUB (IX+FORMTABL.Y_MIN) ; 04 LD IXH,A EX AF,AF' SRL A @@ -224,9 +224,9 @@ SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 PUSH IX NxCrds1 LD BC,FORMTABL.SIZE;0x0010 ADD IX,BC - BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; 01 ; ஢ઠ ⠡? + BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.X_MIN + 1) ; 01 ; ஢ઠ ⠡? JR NZ,NxCrds2 - BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08 + BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAG) ; 08 CALL NZ,ResSelect1 JR NxCrds1 @@ -236,21 +236,21 @@ NxCrds2 POP IX POP AF RET -ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 +ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 RET Z - RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 + RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 PUSH IX PUSH HL PUSH DE - LD L,(IX+FORMTABL.XMINL) ; 00 - LD H,(IX+FORMTABL.XMINH) ; 01 - LD C,(IX+FORMTABL.YMINL) ; 04 - LD B,(IX+FORMTABL.YMINH) ; 05 - LD A,(IX+FORMTABL.XMAXL) ; 02 - SUB (IX+FORMTABL.XMINL) ; 00 + LD L,(IX+FORMTABL.X_MIN) ; 00 + LD H,(IX+FORMTABL.X_MIN + 1) ; 01 + LD C,(IX+FORMTABL.Y_MIN) ; 04 + LD B,(IX+FORMTABL.Y_MIN + 1) ; 05 + LD A,(IX+FORMTABL.X_MAX) ; 02 + SUB (IX+FORMTABL.X_MIN) ; 00 EX AF,AF' - LD A,(IX+FORMTABL.YMAXL) ; 06 - SUB (IX+FORMTABL.YMINL) ; 04 + LD A,(IX+FORMTABL.Y_MAX) ; 06 + SUB (IX+FORMTABL.Y_MIN) ; 04 LD IXH,A EX AF,AF' SRL A @@ -262,22 +262,22 @@ ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09 POP IX RET -SetSelect2 BIT 6,(IX+FORMTABL.FLAGH) ; 09 +SetSelect2 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 RET NZ - SET 6,(IX+FORMTABL.FLAGH) ; 09 + SET FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 PUSH IX PUSH HL PUSH DE PUSH AF - LD L,(IX+FORMTABL.XMINL) ; 00 - LD H,(IX+FORMTABL.XMINH) ; 01 - LD C,(IX+FORMTABL.YMINL) ; 04 - LD B,(IX+FORMTABL.YMINH) ; 05 - LD A,(IX+FORMTABL.XMAXL) ; 02 - SUB (IX+FORMTABL.XMINL) ; 00 + LD L,(IX+FORMTABL.X_MIN) ; 00 + LD H,(IX+FORMTABL.X_MIN + 1) ; 01 + LD C,(IX+FORMTABL.Y_MIN) ; 04 + LD B,(IX+FORMTABL.Y_MIN + 1) ; 05 + LD A,(IX+FORMTABL.X_MAX) ; 02 + SUB (IX+FORMTABL.X_MIN) ; 00 EX AF,AF' - LD A,(IX+FORMTABL.YMAXL) ; 06 - SUB (IX+FORMTABL.YMINL) ; 04 + LD A,(IX+FORMTABL.Y_MAX) ; 06 + SUB (IX+FORMTABL.Y_MIN) ; 04 LD IXH,A EX AF,AF' SRL A @@ -295,25 +295,25 @@ ResSelect2 PUSH HL PUSH IX LD IX,(TestCoords.PrvTabl) 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 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 NxCrds3 -ResSel22 BIT 6,(IX+FORMTABL.FLAGH) ; 09 +ResSel22 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 JR Z,ResSel2E - RES 6,(IX+FORMTABL.FLAGH) ; 09 - LD L,(IX+FORMTABL.XMINL) ; 00 - LD H,(IX+FORMTABL.XMINH) ; 01 - LD C,(IX+FORMTABL.YMINL) ; 04 - LD B,(IX+FORMTABL.YMINH) ; 05 - LD A,(IX+FORMTABL.XMAXL) ; 02 - SUB (IX+FORMTABL.XMINL) ; 00 + RES FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 + LD L,(IX+FORMTABL.X_MIN) ; 00 + LD H,(IX+FORMTABL.X_MIN + 1) ; 01 + LD C,(IX+FORMTABL.Y_MIN) ; 04 + LD B,(IX+FORMTABL.Y_MIN + 1) ; 05 + LD A,(IX+FORMTABL.X_MAX) ; 02 + SUB (IX+FORMTABL.X_MIN) ; 00 EX AF,AF' - LD A,(IX+FORMTABL.YMAXL) ; 06 - SUB (IX+FORMTABL.YMINL) ; 04 + LD A,(IX+FORMTABL.Y_MAX) ; 06 + SUB (IX+FORMTABL.Y_MIN) ; 04 LD IXH,A EX AF,AF' SRL A @@ -327,15 +327,15 @@ ResSel2E POP IX PushButton PUSH HL PUSH DE - LD L,(IX+FORMTABL.XMINL) ; 00 - LD H,(IX+FORMTABL.XMINH) ; 01 - LD E,(IX+FORMTABL.YMINL) ; 04 - LD D,(IX+FORMTABL.YMINH) ; 05 - LD A,(IX+FORMTABL.XMAXL) ; 02 - SUB (IX+FORMTABL.XMINL) ; 00 + LD L,(IX+FORMTABL.X_MIN) ; 00 + LD H,(IX+FORMTABL.X_MIN + 1) ; 01 + LD E,(IX+FORMTABL.Y_MIN) ; 04 + LD D,(IX+FORMTABL.Y_MIN + 1) ; 05 + LD A,(IX+FORMTABL.X_MAX) ; 02 + SUB (IX+FORMTABL.X_MIN) ; 00 LD C,A - LD A,(IX+FORMTABL.YMAXL) ; 06 - SUB (IX+FORMTABL.YMINL) ; 04 + LD A,(IX+FORMTABL.Y_MAX) ; 06 + SUB (IX+FORMTABL.Y_MIN) ; 04 LD B,A PUSH HL PUSH DE @@ -352,27 +352,27 @@ PushLp1 JR Z,PushButtEx BIT 0,A JR Z,PushButtEx - LD C,(IX+FORMTABL.XMINL) ; 00 - LD B,(IX+FORMTABL.XMINH) ; 01 + LD C,(IX+FORMTABL.X_MIN) ; 00 + LD B,(IX+FORMTABL.X_MIN + 1) ; 01 OR A SBC HL,BC ADD HL,BC JR C,PushButtEx - LD C,(IX+FORMTABL.XMAXL) ; 02 - LD B,(IX+FORMTABL.XMAXH) ; 03 + LD C,(IX+FORMTABL.X_MAX) ; 02 + LD B,(IX+FORMTABL.X_MAX + 1) ; 03 SBC HL,BC ADD HL,BC CCF JR C,PushButtEx EX DE,HL - LD C,(IX+FORMTABL.YMINL) ; 04 - LD B,(IX+FORMTABL.YMINH) ; 05 + LD C,(IX+FORMTABL.Y_MIN) ; 04 + LD B,(IX+FORMTABL.Y_MIN + 1) ; 05 OR A SBC HL,BC ADD HL,BC JR C,PushButtEx - LD C,(IX+FORMTABL.YMAXL) ; 06 - LD B,(IX+FORMTABL.YMAXH) ; 07 + LD C,(IX+FORMTABL.Y_MAX) ; 06 + LD B,(IX+FORMTABL.Y_MAX + 1) ; 07 SBC HL,BC CCF JR C,PushButtEx @@ -394,10 +394,10 @@ PushButtEx POP BC POP HL RET -TestRun BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGL) ; 08 +TestRun BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAG) ; 08 RET Z - LD C,(IX+FORMTABL.FIRELEFTL) ; 0C - LD B,(IX+FORMTABL.FIRELEFTH) ; 0D + LD C,(IX+FORMTABL.FIRE_LEFT) ; 0C + LD B,(IX+FORMTABL.FIRE_LEFT + 1) ; 0D PUSH BC RET diff --git a/fnpanel.a80 b/fnpanel.a80 index 7c8182c..35eef2d 100644 --- a/fnpanel.a80 +++ b/fnpanel.a80 @@ -1,9 +1,9 @@ -; LAST UPDATE: 27.04.2025 savelij +; LAST UPDATE: 24.07.2025 savelij ;[]----------------------------------------------------------[] -PrintDisks LD L,(IY + PANEL.XL) - LD H,(IY + PANEL.XH) +PrintDisks LD L,(IY + PANEL.X) + LD H,(IY + PANEL.X + 1) INC HL INC HL LD (.DiskX1),HL @@ -17,7 +17,7 @@ PrintDisks LD L,(IY + PANEL.XL) LD (.DISK),A PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD A,(HL) SUB 'A' @@ -71,8 +71,8 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) .L1 LD (.HeadCol),A LD A,C LD (.PathCol),A - LD L,(IY + PANEL.XL) - LD H,(IY + PANEL.XH) + LD L,(IY + PANEL.X) + LD H,(IY + PANEL.X + 1) LD (.PanelHX),HL MAKEWINDOW WINSUBOBJ.WOBIND W_FILL 0,46,310,12,COLORI.BLACK @@ -82,7 +82,7 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) PUSH IY POP HL - LD BC,PANEL.CURRPATH + LD BC,PANEL.CURR_PATH ADD HL,BC PUSH HL LD DE,WorkBuffer @@ -121,7 +121,7 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) ;[]----------------------------------------------------------[] PrintDOSPath PUSH IY POP HL - LD BC,PANEL.CURRPATH + LD BC,PANEL.CURR_PATH ADD HL,BC LD DE,WorkBuffer SUB A @@ -153,8 +153,8 @@ PrintDOSPath PUSH IY ;[]----------------------------------------------------------[] PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JP NZ,PrnTreeInfo ;Tree - LD A,(IY + PANEL.MFL) - OR (IY + PANEL.MFH) + LD A,(IY + PANEL.FILES_MARK) + OR (IY + PANEL.FILES_MARK + 1) JP NZ,PrnSelInfo GETPORT WINSP.CPU1 PUSH AF @@ -164,10 +164,10 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -236,8 +236,8 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) INC DE CALL GetTime PrntFI LD HL,WorkBuffer + FileHDR.SIZE;0x18 - LD E,(IY+PANEL.XL) - LD D,(IY+PANEL.XH) + LD E,(IY+PANEL.X) + LD D,(IY+PANEL.X + 1) INC DE INC DE INC DE @@ -323,7 +323,7 @@ PrnTreeInfo EX DE,HL PUSH IY POP HL - LD BC,PANEL.CURRPATH + LD BC,PANEL.CURR_PATH ADD HL,BC INC HL INC HL @@ -338,18 +338,18 @@ PrnTreeInfo JP NZ,PrintDOSPath RET -PrnSelInfo LD L,(IY+PANEL.MBL1) - LD H,(IY+PANEL.MBH1) - LD C,(IY+PANEL.MBL2) - LD B,(IY+PANEL.MBH2) - LD A,(IY+PANEL.MBL3) ; [ ] FAT32 +PrnSelInfo LD L,(IY+PANEL.BYTES_MARK) + LD H,(IY+PANEL.BYTES_MARK + 1) + LD C,(IY+PANEL.BYTES_MARK + 2) + LD B,(IY+PANEL.BYTES_MARK + 3) + LD A,(IY+PANEL.BYTES_MARK_H) ; [ ] FAT32 LD DE,WorkBuffer CALL ConvNumTxt40 ; [ ] fat32 LD HL,CrSizeT LD BC,0x000A LDIR - LD L,(IY+PANEL.MFL) - LD H,(IY+PANEL.MFH) + LD L,(IY+PANEL.FILES_MARK) + LD H,(IY+PANEL.FILES_MARK + 1) CALL ConvNumTxt16 LD HL,CrSelT LD BC,0x000F @@ -379,8 +379,8 @@ PrnSelInfo LD L,(IY+PANEL.MBL1) .PrSelI2 SUB A LD (DE),A LD HL,WorkBuffer+0x100 - LD E,(IY+PANEL.XL) - LD D,(IY+PANEL.XH) + LD E,(IY+PANEL.X) + LD D,(IY+PANEL.X + 1) INC DE INC DE INC DE @@ -393,11 +393,11 @@ CrSizeT DEFB " bytes in " CrSelT DEFB " selected files" ;[]----------------------------------------------------------[] -PrintDIR LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +PrintDIR LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) JR NZ,PrnDIRECT - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) INC HL INC HL LD (.ClrDIR1),HL @@ -432,8 +432,8 @@ PrnDIRECT BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) ADD HL,HL ; *2 ADD HL,HL ; *4 ADD HL,HL ; *8 @@ -526,8 +526,8 @@ PrintFULL PUSH IY LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) ADD HL,HL ; *2 ADD HL,HL ; *4 ADD HL,HL ; *8 @@ -664,8 +664,8 @@ PrintTREE DJNZ .L2 POP DE LD HL,0x4000 - LD C,(IY+PANEL.FFL) - LD B,(IY+PANEL.FFH) + LD C,(IY+PANEL.FIRST_FILE) + LD B,(IY+PANEL.FIRST_FILE + 1) LD A,B OR C JR Z,.PrDIRb2 @@ -1069,8 +1069,8 @@ ResInvert BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) RET Z LD HL,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES) LD BC,(COLORP.PANEL + COLORI.FILES) << 8 | (COLORP.PANEL + COLORI.SELECTFILES) -PrnInvert LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +PrnInvert LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JP NZ,PrnTreeInv @@ -1083,10 +1083,10 @@ PrnInvert LD A,(IY + PANEL.EFL) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -1109,8 +1109,8 @@ PrnInvert LD A,(IY + PANEL.EFL) LD D,L .L2 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) JR NZ,PrnInvertP - LD L,(IY + PANEL.CFL) - LD H,(IY + PANEL.CFH) + LD L,(IY + PANEL.CURR_FILE) + LD H,(IY + PANEL.CURR_FILE + 1) LD C,L LD B,H ADD HL,HL @@ -1134,8 +1134,8 @@ PrnInvert LD A,(IY + PANEL.EFL) DEC HL JP InvertRectan -PrnInvertP LD L,(IY + PANEL.CFL) - LD H,(IY + PANEL.CFH) +PrnInvertP LD L,(IY + PANEL.CURR_FILE) + LD H,(IY + PANEL.CURR_FILE + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -1159,10 +1159,10 @@ PrnTreeInv PUSH HL LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -1194,8 +1194,8 @@ PrnTreeInv PUSH HL JR Z,.L3 LD E,C LD D,L -.L3 LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) +.L3 LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) ADD HL,HL ADD HL,HL ADD HL,HL diff --git a/fnsort.a80 b/fnsort.a80 index 6123b46..3bcbe26 100644 --- a/fnsort.a80 +++ b/fnsort.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.06.2025 savelij +; LAST UPDATE: 24.07.2025 savelij ;[]----------------------------------------------------------[] ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) @@ -18,9 +18,9 @@ ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) SETPORT WINSP.CPU3,,0 PUSH IY POP HL - LD BC,PANEL.EFL + LD BC,PANEL.FILES_ALL ADD HL,BC - LD B,PANEL.FILEMASK - PANEL.EFL + LD B,PANEL.FILE_MASK - PANEL.FILES_ALL .L5 LD (HL),0 INC HL DJNZ .L5 @@ -49,8 +49,8 @@ ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) DJNZ .L4 POP AF SETPORT WINSP.CPU3,,0 - LD (IY + PANEL.EFL),E ;EQUIP FIL - LD (IY + PANEL.EFH),D + LD (IY + PANEL.FILES_ALL),E ;EQUIP FIL + LD (IY + PANEL.FILES_ALL + 1),D LD A,(IY + PANEL.SORTFLAG) AND SORTFLAG.MASK JP NZ,SortDIR diff --git a/fnsys.a80 b/fnsys.a80 index 1391926..b91734a 100644 --- a/fnsys.a80 +++ b/fnsys.a80 @@ -1,10 +1,11 @@ -; LAST UPDATE: 08.03.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]-----------------------------------------------------------[] -;楤 㬭 (8*8bit) -; 室: E*C -; 室:HL-१ +; 楤 㬭 (8*8bit) +; 室: E * C +; 室: +; HL - १ Mult8 SUB A LD L,A LD H,A @@ -21,9 +22,10 @@ Mult8 SUB A .L2 DJNZ .L1 RET -;楤 㬭 (16*8bit) -; 室: DE*C -; 室:A+HL-१ +; 楤 㬭 (16*8bit) +; 室: DE * C +; 室: +; AHL - १ Mult16X8 SUB A LD L,A LD H,A @@ -42,9 +44,10 @@ Mult16X8 SUB A .L2 DJNZ .L1 RET -;楤 㬭 (16*16bit) -; 室: DE*BC -; 室:HL-१ +; 楤 㬭 (16*16bit) +; 室: DE * BC +; 室: +; HL - १ Mult16 LD HL,0x0000 LD A,0x10 .L1 RR B @@ -57,9 +60,10 @@ Mult16 LD HL,0x0000 JR NZ,.L1 RET -;楤 㬭 (32bit) -; 室: DE*BC -; 室:HL+DE-१ +; 楤 㬭 (32bit) +; 室: DE * BC +; 室: +; HLDE - १ Mult16X16 PUSH IX EX DE,HL LD E,0x00 @@ -82,9 +86,10 @@ Mult16X16 PUSH IX POP IX RET -;楤 㬭 (32bit) -; 室: HL+DE*BC -; 室:HL+DE-१ +; 楤 㬭 (32bit) +; 室: HLDE * BC +; 室: +; HLDE - १ Mult32 PUSH IX LD IX,0x0000 LD A,0x20 @@ -104,10 +109,11 @@ Mult32 PUSH IX POP IX RET -;楤 (16bit) -; 室: BC/DE -; 室:BC-१ -; HL-⮪ +; 楤 (16bit) +; 室: BC / DE +; 室: +; BC - १ +; HL - ⮪ Divis16X16 LD A,D OR E RET Z @@ -124,7 +130,8 @@ Divis16X16 LD A,D RL C RLA LD B,A - RET + RET + .L3 RL C RLA ADC HL,HL @@ -137,10 +144,11 @@ Divis16X16 LD A,D LD B,A RET -;楤 (24x16bit) -; 室: H+L+C/DE -; 室:A -१ -; HL-⮪ +; 楤 (24x16bit) +; 室: HLC / DE +; 室: +; A -१ +; HL - ⮪ Divis24X16 LD A,D CPL LD D,A @@ -162,7 +170,8 @@ Divis24X16 LD A,D INC A .L5 POP HL DJNZ .L1 - RET + RET + .L2 ADC A,A JR NC,.L3 INC HL @@ -170,10 +179,11 @@ Divis24X16 LD A,D DJNZ .L1 RET -;楤 32/16bit=16bit -; 室: HL+DE/BC -; 室:DE-१ -; HL-⮪ +; 楤 32/16bit=16bit +; 室: HLDE / BC +; 室: +; DE - १ +; HL - ⮪ Divis32X16 LD A,0x10 .L2 EX DE,HL ADD HL,HL @@ -184,16 +194,18 @@ Divis32X16 LD A,0x10 ADD HL,BC DEC A JR NZ,.L2 - RET + RET + .L1 INC DE DEC A JR NZ,.L2 RET -;楤 32/16bit=32bit -; 室: HL+DE/BC -; 室:HL+DE-१ -; BC-⮪ +; 楤 32/16bit=32bit +; 室: HLDE/BC +; 室: +; HLDE - १ +; BC-⮪ Divis32 PUSH IX LD IXL,E LD IXH,D @@ -221,7 +233,7 @@ Divis32 PUSH IX ;[]===================================================================[] ; 室: -; A:BC:HL - ᫮ 40 +; ABCHL - ᫮ 40 ; DE - ConvNumTxt40: PUSH IX LD IX,ConvertFlg @@ -259,7 +271,7 @@ ConvNumTxt40: PUSH IX ;[]-----------------------------------------------------------[] ; ᫠ 32 ⥪ ; 室: -; BC+HL - ᫮ 32 +; BCHL - ᫮ 32 ; DE - ConvNumTxt32 PUSH IX LD IX,ConvertFlg @@ -317,10 +329,10 @@ ConvNumTxt32_Shared: INC DE RET -; ᫠ 16 ⥪ -; 室: -; HL - ᫮ 16 -; DE - +; ᫠ 16 ⥪ +; 室: +; HL - ᫮ 16 +; DE - ConvNumTxt16 PUSH IX PUSH BC LD IX,ConNumbExit @@ -343,10 +355,10 @@ ConvNumTxt16 PUSH IX POP IX RET -; ᫠ 8 ⥪ -; 室: -; A - ᫮ 8 -; DE - +; ᫠ 8 ⥪ +; 室: +; A - ᫮ 8 +; DE - ConvNumTxt8 PUSH IX PUSH BC LD IX,ConNumbExit @@ -434,12 +446,12 @@ ConNumbExit: CP "0" RET ;[]-----------------------------------------------------------[] -; ⥪ ᫮ 32 -; 室: -; DE - ⥪ -; 室: -; HL+IX - ᫮ -; CY - 訡 +; ⥪ ᫮ 32 +; 室: +; DE - ⥪ +; 室: +; HLIX - ᫮ +; CY - 訡 ConvTxtNum32 LD IX,0x0000 LD HL,0x0000 ConvTN1 LD A,(DE) @@ -476,12 +488,12 @@ ConvTN1 LD A,(DE) RET C JR ConvTN1 -; ⥪ ᫮ 16 -; 室: -; DE - ⥪ -; 室: -; HL - ᫮ -; CY - 訡 +; ⥪ ᫮ 16 +; 室: +; DE - ⥪ +; 室: +; HL - ᫮ +; CY - 訡 ConvTxtNum16 LD HL,0x0000 ConvTN2 LD A,(DE) CP 0x21 @@ -584,21 +596,10 @@ LenUp LD A,0x00 EI 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. ⮦. ; (hl) -> (de) -ConcatString: ex hl,de +STRCAT: ex hl,de .loop: ld a,(hl) or a jr z,.end @@ -610,10 +611,10 @@ ConcatString: ex hl,de ;[]----------------------------------------------------------[] ; ஢ ப . ⮦. ; (hl) -> (de) -CopyString: ld a,(hl) +STRCPY: ld a,(hl) ldi or a - jr nz,CopyString + jr nz,STRCPY dec de ret @@ -642,21 +643,21 @@ CopyWord: ld bc, 0x20FF ; "c" - string1 < string2 ; - string1 > string2 ;[]----------------------------------------------------------[] -CompareStrings: ld a,(de) +STRCMP: ld a,(de) cp (hl) ret nz inc hl inc de ld a,(hl) or a - jr nz,CompareStrings ; ࠧ 祭 + jr nz,STRCMP ; ࠧ 祭 ld a,(de) cp (hl) ret -; ᫮ ப -;> hl - ப -;< hl - ப +; ᫮ ப +; > hl - ப +; < hl - ப SkipWord: ld b,0x20 .loop: ld a,(hl) inc hl diff --git a/fntree.a80 b/fntree.a80 index 0928f61..ac5a2e4 100644 --- a/fntree.a80 +++ b/fntree.a80 @@ -1,14 +1,14 @@ -; LAST UPDATE: 28.05.2025 savelij +; LAST UPDATE: 24.07.2025 savelij MAX_LEVEL_DIR EQU 21 ;[]----------------------------------------------------------[] ReadTreeR PUSH IY POP HL - LD BC,PANEL.EFL + LD BC,PANEL.FILES_ALL ADD HL,BC - LD B,PANEL.FILEMASK - PANEL.EFL + LD B,PANEL.FILE_MASK - PANEL.FILES_ALL .LL1 LD (HL),0 INC HL DJNZ .LL1 @@ -196,8 +196,8 @@ ReadTreeR PUSH IY LD A,C SETPORT WINSP.CPU1,,0 LD HL,(TreeDIRS) - LD (IY+PANEL.EFL),L ; EQUIP FIL - LD (IY+PANEL.EFH),H + LD (IY+PANEL.FILES_ALL),L ; EQUIP FIL + LD (IY+PANEL.FILES_ALL + 1),H PUSH IY GETPORT WINSP.CPU3 PUSH AF @@ -293,8 +293,8 @@ LoadTreeR EX AF,AF' CP 0x0B JR C,.L5 SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG) -.L5 LD (IY+PANEL.EFL),C ; EQUIP FILES - LD (IY+PANEL.EFH),B +.L5 LD (IY+PANEL.FILES_ALL),C ; EQUIP FILES + LD (IY+PANEL.FILES_ALL + 1),B BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG) LD A,1 JR NZ,.L6 @@ -304,7 +304,7 @@ LoadTreeR EX AF,AF' SETPORT WINSP.CPU3,,0 .TreeOkey PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -504,10 +504,10 @@ TestTreeR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) .L14 SETPORT WINSP.CPU1,,0 SETPORT WINSP.Y_PORT,0xC0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -553,10 +553,10 @@ MakeTreePathR LD A,(RAMPAGES.RIGHTPANEL) .L5 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -723,12 +723,12 @@ FindTreeDIRR SBC HL,BC JR NC,.L13 LD HL,0 -.L13 LD (IX+PANEL.FFL),L - LD (IX+PANEL.FFH),H +.L13 LD (IX+PANEL.FIRST_FILE),L + LD (IX+PANEL.FIRST_FILE + 1),H EX DE,HL OR A SBC HL,DE - LD (IX+PANEL.CFL),L - LD (IX+PANEL.CFH),H + LD (IX+PANEL.CURR_FILE),L + LD (IX+PANEL.CURR_FILE + 1),H OR A RET diff --git a/fnwin.a80 b/fnwin.a80 index d98877f..b7fb423 100644 --- a/fnwin.a80 +++ b/fnwin.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 30.03.2025 savelij +; LAST UPDATE: 17.07.2025 savelij ;[]----------------------------------------------------------[] ;楤 ᪨ 0 ࠭ @@ -132,29 +132,29 @@ MakeWindow: EX (SP),IY PUSH HL LD A,(IY+0x00) ; ⥪騩 ' INC IY - CP WINSUBOBJ.TEXT;0x01 ; ⥪⮢ ப + CP WINSUBOBJ.TEXT ; ⥪⮢ ப JP Z,PutTxtLine - CP WINSUBOBJ.FILL;0x02 ; + CP WINSUBOBJ.FILL ; JP Z,PutHeadPlc - CP WINSUBOBJ.BORDER;0x03 ; 㣫㡫 + CP WINSUBOBJ.BORDER ; 㣫㡫 JP Z,PutDRectan - CP WINSUBOBJ.BUTTON;0x04 ; + CP WINSUBOBJ.BUTTON ; JP Z,PutURectan - CP WINSUBOBJ.BUTTONTEXT;0x05 ; ⥪⮬ + CP WINSUBOBJ.BUTTONTEXT ; ⥪⮬ JP Z,PutButton - CP WINSUBOBJ.HORIZLINE;0x06 ; ਧ⠫쭠 + CP WINSUBOBJ.HORIZLINE ; ਧ⠫쭠 JP Z,PutHorizLine - CP WINSUBOBJ.VERTICLINE;0x07 ; ⨪쭠 + CP WINSUBOBJ.VERTICLINE ; ⨪쭠 JP Z,PutVertLine - CP WINSUBOBJ.ICONLEFTARROW;0x08 ; "५ " + CP WINSUBOBJ.ICONLEFTARROW ; "५ " JP Z,PutSBleft - CP WINSUBOBJ.ICONRIGHTARROW;0x09 ; "५ ࠢ" + CP WINSUBOBJ.ICONRIGHTARROW ; "५ ࠢ" JP Z,PutSBright - CP WINSUBOBJ.ICONUPARROW;0x0A ; "५ " + CP WINSUBOBJ.ICONUPARROW ; "५ " JP Z,PutSBup - CP WINSUBOBJ.ICONDOWNARROW;0x0B ; "५ " + CP WINSUBOBJ.ICONDOWNARROW ; "५ " JP Z,PutSBdown - CP WINSUBOBJ.RESTOREWIN;0x7F ; ⠭ ࠭ + CP WINSUBOBJ.RESTOREWIN ; ⠭ ࠭ JP Z,RestoreWindow CP WINSUBOBJ.ADRTEXT JP Z,PutAdrTxtLine @@ -171,14 +171,14 @@ MakeWindow: EX (SP),IY ;-------------------------------------------------------------- ; -.PositX DEFW 0x0000 ; X न -.PositY DEFW 0x0000 ; Y न -.LenX DEFW 0x0000 ; X/2 -.LenY DEFW 0x0000 ; Y -.Free DEFW 0x0000 -.Open DEFB 0x00 ; - -.Type DEFB 0x00 -.Buffer DUPL 0x40,0 +.PositX DW 0 ; X न +.PositY DW 0 ; Y न +.LenX DW 0 ; X/2 +.LenY DW 0 ; Y +.Free DW 0 +.Open DB 0 ; - +.Type DB 0 +.Buffer DB 0x40 DUP 0 ;-------------------------------------------------------------- ; 楤 ࠭ אַ㣮쭮 ᪮ @@ -440,20 +440,20 @@ PutRectan HALT SETPORT WINSP.CPU1,,0 RET -; ⥪⮢ ப 㪠 +; ⥪⮢ ப 㪠 PutAdrTxtLine LD HL,(MakeWindow.PositX) SLA L RL H - LD E,(IY+0x00) ; Xpos + LD E,(IY+0x00) INC IY - LD D,(IY+0x00) + LD D,(IY+0x00) ; Xpos INC IY ADD HL,DE EX DE,HL LD HL,(MakeWindow.PositY) - LD C,(IY+0x00) ; Ypos + LD C,(IY+0x00) INC IY - LD B,(IY+0x00) + LD B,(IY+0x00) ; Ypos INC IY ADD HL,BC LD C,L @@ -465,8 +465,10 @@ PutAdrTxtLine LD HL,(MakeWindow.PositX) LD H,(IY+0) ; ⥪ INC IY PUSH IY + LD IYL,A LD A,H OR L + LD A,IYL CALL NZ,PrnTxtLnIFF ; ᫨ 0 POP IY RET diff --git a/fnwork.a80 b/fnwork.a80 index eb157fa..16b59db 100644 --- a/fnwork.a80 +++ b/fnwork.a80 @@ -1,17 +1,17 @@ -; LAST UPDATE: 24.06.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]===========================================================[] -CursUp LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +CursUp LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z - LD L,(IY + PANEL.CFL) - LD H,(IY + PANEL.CFH) + LD L,(IY + PANEL.CURR_FILE) + LD H,(IY + PANEL.CURR_FILE + 1) LD A,H OR L JR NZ,CursUp1 - LD A,(IY + PANEL.FFL) - OR (IY + PANEL.FFH) + LD A,(IY + PANEL.FIRST_FILE) + OR (IY + PANEL.FIRST_FILE + 1) RET Z JR ScrlDn1 @@ -19,16 +19,16 @@ CursUp1 DEC HL PUSH HL CALL ResInvert POP HL - LD (IY + PANEL.CFL),L - LD (IY + PANEL.CFH),H + LD (IY + PANEL.CURR_FILE),L + LD (IY + PANEL.CURR_FILE + 1),H CALL SetInvert JP PrnFileInfo -ScrollDown: LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +ScrollDown: LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z - LD A,(IY + PANEL.FFL) - OR (IY + PANEL.FFH) + LD A,(IY + PANEL.FIRST_FILE) + OR (IY + PANEL.FIRST_FILE + 1) RET Z ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) JP NZ,ScrlDnP @@ -42,8 +42,8 @@ ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) ADD HL,HL ; *2 ADD HL,HL ; *4 ADD HL,HL ; *8 @@ -54,8 +54,8 @@ ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) SET 6,H ; | 0x4000 - 砫 ࠭ PUSH HL POP IX - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) DEC HL ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -109,8 +109,8 @@ ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) LD B,A PUSH BC SETPORT WINSP.CPU1,0x50 - LD L,(IY + PANEL.XL) - LD H,(IY + PANEL.XH) + LD L,(IY + PANEL.X) + LD H,(IY + PANEL.X + 1) LD DE,6 ADD HL,DE LD DE,63 << 8 | 71 @@ -160,16 +160,16 @@ ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) LD A,C SETPORT WINSP.Y_PORT,,0 POP IY - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) DEC HL - LD (IY + PANEL.FFL),L - LD (IY + PANEL.FFH),H + LD (IY + PANEL.FIRST_FILE),L + LD (IY + PANEL.FIRST_FILE + 1),H CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE JP PrnHScrBar @@ -182,8 +182,8 @@ ScrlDnP LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) DEC HL ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -228,8 +228,8 @@ ScrlDnP LD B,A PUSH BC SETPORT WINSP.CPU1,0x50 - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD DE,4 ADD HL,DE LD DE,63 << 8 | 71 @@ -246,16 +246,16 @@ ScrlDnP LD A,C SETPORT WINSP.Y_PORT,,0 POP IY - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) DEC HL - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE JP PrnVScrBar @@ -277,8 +277,8 @@ ScrlDnT DJNZ .L2 POP DE LD HL,0x4000 - LD C,(IY+PANEL.FFL) - LD B,(IY+PANEL.FFH) + LD C,(IY+PANEL.FIRST_FILE) + LD B,(IY+PANEL.FIRST_FILE + 1) DEC BC LD A,B OR C @@ -315,8 +315,8 @@ ScrDdn2 LD DE,WorkBuffer+0x100 LD B,A PUSH BC SETPORT WINSP.CPU1,0x50 - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD DE,6 ADD HL,DE LD DE,63 << 8 | 71 @@ -333,38 +333,38 @@ ScrDdn2 LD DE,WorkBuffer+0x100 LD A,C SETPORT WINSP.Y_PORT,,0 POP IY - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) DEC HL - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE JP PrnVScrBar ;[]===========================================================[] -CursDown LD C,(IY+PANEL.EFL) - LD B,(IY+PANEL.EFH) +CursDown LD C,(IY+PANEL.FILES_ALL) + LD B,(IY+PANEL.FILES_ALL + 1) LD A,B OR C RET Z - LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) + LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) INC HL PUSH HL - LD E,(IY+PANEL.FFL) - LD D,(IY+PANEL.FFH) + LD E,(IY+PANEL.FIRST_FILE) + LD D,(IY+PANEL.FIRST_FILE + 1) ADD HL,DE OR A SBC HL,BC POP HL RET NC - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) OR A SBC HL,DE JR NC,ScrlUp1 @@ -372,21 +372,21 @@ CursDown LD C,(IY+PANEL.EFL) PUSH HL CALL ResInvert POP HL - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H CALL SetInvert JP PrnFileInfo -ScrollUp: LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +ScrollUp: LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) ADD HL,DE - LD E,(IY+PANEL.EFL) - LD D,(IY+PANEL.EFH) + LD E,(IY+PANEL.FILES_ALL) + LD D,(IY+PANEL.FILES_ALL + 1) OR A SBC HL,DE RET NC @@ -402,8 +402,8 @@ ScrlUp1 BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) LD DE,0x0011 ADD HL,DE ADD HL,HL @@ -444,8 +444,8 @@ ScrlUp1 BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) LD B,A PUSH BC SETPORT WINSP.CPU1,0x50 - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD DE,6 ADD HL,DE LD DE,71 << 8 | 63 @@ -496,16 +496,16 @@ ScrlUp1 BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) LD A,C SETPORT WINSP.Y_PORT,,0 POP IY - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) INC HL - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE JP PrnHScrBar @@ -518,8 +518,8 @@ ScrlUpP LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) LD DE,0x0012 ADD HL,DE ADD HL,HL @@ -565,8 +565,8 @@ ScrlUpP LD B,A PUSH BC SETPORT WINSP.CPU1,0x50 - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD DE,4 ADD HL,DE LD DE,71 << 8 | 63 @@ -583,16 +583,16 @@ ScrlUpP LD A,C SETPORT WINSP.Y_PORT,,0 POP IY - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) INC HL - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE JP PrnVScrBar @@ -613,8 +613,8 @@ ScrlUpT INC L DJNZ .L2 POP DE - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) LD BC,0x0012 ADD HL,BC LD C,L @@ -652,8 +652,8 @@ ScrDup1 PUSH BC LD B,A PUSH BC SETPORT WINSP.CPU1,0x50 - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD DE,6 ADD HL,DE LD DE,71 << 8 | 63 @@ -670,16 +670,16 @@ ScrDup1 PUSH BC LD A,C SETPORT WINSP.Y_PORT,,0 POP IY - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) INC HL - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE JP PrnVScrBar @@ -719,11 +719,11 @@ ScrollDIRDownUp: ;[]===========================================================[] CursLeft BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z - LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) + LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) LD A,H OR L JP Z,PageUp @@ -735,13 +735,13 @@ CursLeft BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) CursRight BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z - LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) DEC DE OR A PUSH HL @@ -756,16 +756,16 @@ CursRight BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) .L1 EX DE,HL SBC HL,DE JR NC,CursRg1 - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) DEC DE CursRg1 EX DE,HL PUSH HL - LD E,(IY+PANEL.FFL) - LD D,(IY+PANEL.FFH) + LD E,(IY+PANEL.FIRST_FILE) + LD D,(IY+PANEL.FIRST_FILE + 1) ADD HL,DE - LD C,(IY+PANEL.EFL) - LD B,(IY+PANEL.EFH) + LD C,(IY+PANEL.FILES_ALL) + LD B,(IY+PANEL.FILES_ALL + 1) OR A SBC HL,BC POP HL @@ -776,8 +776,8 @@ CursRg1 EX DE,HL SBC HL,DE DEC HL PUSH HL - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) OR A SBC HL,DE POP HL @@ -785,42 +785,42 @@ CursRg1 EX DE,HL CursLRex PUSH HL CALL ResInvert POP HL - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H CALL SetInvert JP PrnFileInfo ;[]===========================================================[] -PageUp LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +PageUp LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) LD A,H OR L JP Z,Home PUSH HL CALL ResInvert POP HL - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) OR A SBC HL,DE JR NC,.L1 LD HL,0x0000 -.L1 LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H +.L1 LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H JR PageUDex -PageDown LD C,(IY+PANEL.EFL) - LD B,(IY+PANEL.EFH) +PageDown LD C,(IY+PANEL.FILES_ALL) + LD B,(IY+PANEL.FILES_ALL + 1) LD A,B OR C RET Z - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) ADD HL,DE OR A SBC HL,BC @@ -831,29 +831,29 @@ PageDown LD C,(IY+PANEL.EFL) POP BC POP HL ADD HL,BC - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE OR A SBC HL,BC JR C,PageUDex LD L,C LD H,B - LD E,(IY+PANEL.FFL) - LD D,(IY+PANEL.FFH) + LD E,(IY+PANEL.FIRST_FILE) + LD D,(IY+PANEL.FIRST_FILE + 1) OR A SBC HL,DE DEC HL - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H PageUDex CALL PrintDIR CALL SetInvert CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK @@ -872,39 +872,39 @@ PgUDext PUSH BC RET ;[]===========================================================[] -Home LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +Home LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z - LD A,(IY+PANEL.FFL) - OR (IY+PANEL.FFH) + LD A,(IY+PANEL.FIRST_FILE) + OR (IY+PANEL.FIRST_FILE + 1) JR NZ,Home1 - LD A,(IY+PANEL.CFL) - OR (IY+PANEL.CFH) + LD A,(IY+PANEL.CURR_FILE) + OR (IY+PANEL.CURR_FILE + 1) RET Z CALL ResInvert SUB A - LD (IY+PANEL.CFL),A - LD (IY+PANEL.CFH),A + LD (IY+PANEL.CURR_FILE),A + LD (IY+PANEL.CURR_FILE + 1),A CALL SetInvert JP PrnFileInfo Home1 CALL ResInvert SUB A - LD (IY+PANEL.FFL),A - LD (IY+PANEL.FFH),A - LD (IY+PANEL.CFL),A - LD (IY+PANEL.CFH),A + LD (IY+PANEL.FIRST_FILE),A + LD (IY+PANEL.FIRST_FILE + 1),A + LD (IY+PANEL.CURR_FILE),A + LD (IY+PANEL.CURR_FILE + 1),A JR PageUDex -End LD C,(IY+PANEL.EFL) - LD B,(IY+PANEL.EFH) +End LD C,(IY+PANEL.FILES_ALL) + LD B,(IY+PANEL.FILES_ALL + 1) LD A,B OR C RET Z - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE INC HL OR A @@ -913,26 +913,26 @@ End LD C,(IY+PANEL.EFL) PUSH BC CALL ResInvert POP BC - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) - LD E,(IY+PANEL.FPL) - LD D,(IY+PANEL.FPH) + LD E,(IY+PANEL.FILES_PAGE) + LD D,(IY+PANEL.FILES_PAGE + 1) ADD HL,DE INC HL OR A SBC HL,BC JR Z,End1 JR C,End1 - LD L,(IY+PANEL.EFL) - LD H,(IY+PANEL.EFH) - LD E,(IY+PANEL.FFL) - LD D,(IY+PANEL.FFH) + LD L,(IY+PANEL.FILES_ALL) + LD H,(IY+PANEL.FILES_ALL + 1) + LD E,(IY+PANEL.FIRST_FILE) + LD D,(IY+PANEL.FIRST_FILE + 1) OR A SBC HL,DE DEC HL - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H CALL SetInvert CALL PrnFileInfo RET @@ -940,19 +940,19 @@ End1 LD L,C LD H,B OR A SBC HL,DE - LD (IY+PANEL.FFL),L - LD (IY+PANEL.FFH),H + LD (IY+PANEL.FIRST_FILE),L + LD (IY+PANEL.FIRST_FILE + 1),H BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) - LD L,(IY+PANEL.FPL) - LD H,(IY+PANEL.FPH) + LD L,(IY+PANEL.FILES_PAGE) + LD H,(IY+PANEL.FILES_PAGE + 1) DEC HL - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H JP PageUDex ;[]==========================================================[] -NewFile LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +NewFile LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK @@ -1008,17 +1008,17 @@ NewFile1 LD HL,0x003F LD C,A LD B,0x00 ADD HL,BC - LD C,(IY+PANEL.CFL) - LD B,(IY+PANEL.CFH) + LD C,(IY+PANEL.CURR_FILE) + LD B,(IY+PANEL.CURR_FILE + 1) OR A SBC HL,BC JP Z,OpenFile ADD HL,BC - LD E,(IY+PANEL.FFL) - LD D,(IY+PANEL.FFH) + LD E,(IY+PANEL.FIRST_FILE) + LD D,(IY+PANEL.FIRST_FILE + 1) ADD HL,DE - LD C,(IY+PANEL.EFL) - LD B,(IY+PANEL.EFH) + LD C,(IY+PANEL.FILES_ALL) + LD B,(IY+PANEL.FILES_ALL + 1) OR A SBC HL,BC RET NC @@ -1028,8 +1028,8 @@ NewFile1 LD HL,0x003F PUSH HL CALL ResInvert POP HL - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H CALL SetInvert CALL PrnFileInfo JP ResFire @@ -1041,8 +1041,8 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) ELSE JP NZ,TestTreeR.TestTreeBeg ENDIF - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z GETPORT WINSP.CPU1 PUSH AF @@ -1052,10 +1052,10 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -1076,7 +1076,7 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) POP AF SETPORT WINSP.CPU1,,0 LD HL,WorkBuffer - BIT 4,(HL) + BIT DIR.B_Dir,(HL) INC HL JP Z,RunEXEfile LD A,(HL) @@ -1085,13 +1085,13 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) PUSH HL PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE SUB A .L2 INC HL CP (HL) JR NZ,.L2 - LD A,0x5C + LD A,'\\' DEC HL CP (HL) JR Z,OpenF1 @@ -1121,7 +1121,7 @@ OpenF2 PUSH AF PUSH IY SPDSS DSSF.CURDISK POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE ADD A,'A' LD (HL),A @@ -1141,7 +1141,7 @@ OpenF2 PUSH AF CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY+PANEL.VIEWFLAG) @@ -1161,7 +1161,7 @@ OpenF2 PUSH AF JR NZ,.L5 LD IY,RightPanel LD HL,LeftPanel -.L5 LD DE,PANEL.CURRPATH +.L5 LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -1174,7 +1174,7 @@ OpenF2 PUSH AF CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL PrnVScrBar POP IY @@ -1200,10 +1200,10 @@ ChPanel CALL ResInvert .L1 SETPORT WINSP.CPU1,,0 SETPORT WINSP.Y_PORT,0xC0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -1232,10 +1232,10 @@ ChPan1 LD IY,LeftPanel .L2 SETPORT WINSP.CPU1,,0 SETPORT WINSP.Y_PORT,0xC0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -1250,7 +1250,7 @@ ChPan1 LD IY,LeftPanel ChPan2 CALL SetInvert PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -1267,8 +1267,8 @@ ChangeDriveR LD IX,RightPanel ChangeDrive PUSH IY PUSH IX POP IY - LD C,(IY+PANEL.XL) - LD B,(IY+PANEL.XH) + LD C,(IY+PANEL.X) + LD B,(IY+PANEL.X + 1) INC BC INC BC OR A @@ -1281,7 +1281,7 @@ ChangeDrive PUSH IY ADD A,'A' PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD (HL),D LD HL,NewDrive @@ -1300,7 +1300,7 @@ loc_C82E BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG) RET NZ PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -1314,17 +1314,17 @@ NewDrive DZ " :\\" ;[]==========================================================[] ReplacePanels LD IX,LeftPanel SET PANELFLAG.B_SIDE,(IX+PANEL.PANELFLAG) - LD L,(IX+PANEL.XL) - LD H,(IX+PANEL.XH) + LD L,(IX+PANEL.X) + LD H,(IX+PANEL.X + 1) LD IX,RightPanel RES PANELFLAG.B_SIDE,(IX+PANEL.PANELFLAG) - LD E,(IX+PANEL.XL) - LD D,(IX+PANEL.XH) - LD (IX+PANEL.XL),L - LD (IX+PANEL.XH),H + LD E,(IX+PANEL.X) + LD D,(IX+PANEL.X + 1) + LD (IX+PANEL.X),L + LD (IX+PANEL.X + 1),H LD IX,LeftPanel - LD (IX+PANEL.XL),E - LD (IX+PANEL.XH),D + LD (IX+PANEL.X),E + LD (IX+PANEL.X + 1),D LD HL,RAMPAGES.LEFTPANEL LD DE,RAMPAGES.RIGHTPANEL LD A,(DE) @@ -1333,7 +1333,7 @@ ReplacePanels LD IX,LeftPanel LD (HL),A LD HL,LeftPanel LD DE,RightPanel - LD BC,PANEL.CURRPATH + 0x100 + LD BC,PANEL.CURR_PATH + 0x100 ReplPan LD A,(DE) LDI DEC HL @@ -1427,12 +1427,12 @@ RunBATfile: LD A,(HL) PUSH DE ld hl,ShellFile ld de,WorkBuffer - call CopyString + call STRCPY bit PANELFLAG.B_SIDE,(iy+PANEL.PANELFLAG) - ld hl,RightPanel + PANEL.CURRPATH + ld hl,RightPanel + PANEL.CURR_PATH jr nz,.next - ld hl,LeftPanel + PANEL.CURRPATH -.next: call ConcatString + ld hl,LeftPanel + PANEL.CURR_PATH +.next: call STRCAT dec de ex hl,de ld a,'\\' @@ -1443,7 +1443,7 @@ RunBATfile: LD A,(HL) .skipSlash: inc hl ex hl,de pop hl - call CopyString + call STRCPY ld de,WorkBuffer jr RunFile @@ -1483,7 +1483,7 @@ TestEXT: PUSH IX POP HL GETPORT WINSP.CPU1 PUSH AF - LD A,(RAMPAGES.FNHELP) + LD A,(RAMPAGES.FNREZ3) SETPORT WINSP.CPU1,,0 TestEXT1: LD C,(HL) INC HL @@ -1623,7 +1623,7 @@ TstEXT2: LD (DE),A RestoreDIR: PUSH AF PUSH IY POP HL - LD BC,PANEL.CURRPATH + LD BC,PANEL.CURR_PATH ADD HL,BC PUSH IY SPDSS DSSF.CHDIR @@ -1648,7 +1648,7 @@ EName: INC HL POP HL INC HL JP TstEXT1 -EDrive: LD A,(IY+PANEL.CURRPATH) +EDrive: LD A,(IY+PANEL.CURR_PATH) LD (DE),A INC DE LD A,':' @@ -1661,7 +1661,7 @@ EPath: PUSH HL PUSH BC PUSH IY POP HL - LD BC,PANEL.CURRPATH + LD BC,PANEL.CURR_PATH ADD HL,BC SUB A .L1 LDI @@ -1678,11 +1678,39 @@ EPath: PUSH HL INC HL JP TstEXT1 -; FLX 䠩 -RunFLX: LD HL,RestoreDIR - PUSH HL - LD HL,WorkBuffer - LD A,0x21 +; 㧪 , ᫥ CALL 0 +LOADFLX4RUN EX (SP),HL + GETPORT WINSP.CPU1 + EX AF,AF' + LD A,(RAMPAGES.FNREZ2) + SETPORT WINSP.CPU1,,0 + LD DE,0 ; 墮 +.NAMEFLX EQU $-2 + XOR A +.L2 CP (HL) + JR Z,.L1 + LDI + JR .L2 + +.L1 LD (DE),A + INC HL + EX (SP),HL ; 㫨 + EX AF,AF' + PUSH AF + LD HL,BUF_REZ2.FLXdir ; 㧪 ⥬ + PUSH IY + SPDSS DSSF.OPEN,,1 + POP IY + EX AF,AF' + POP AF + SETPORT WINSP.CPU1,,0 + EX AF,AF' + JP C,RestoreDIR ; 室 訡 " " + JR LOADFLX.LDF1 + +; 㧪 ᪠ +LOADFLX: LD HL,WorkBuffer + LD A,'!' .L1 INC HL CP (HL) JR C,.L1 @@ -1695,8 +1723,8 @@ RunFLX: LD HL,RestoreDIR SPDSS DSSF.OPEN,,1 POP IY POP HL - RET C - LD (.FLXHandle),A + RET C ; 室, 訡 +.LDF1 LD (.FLXHandle),A PUSH HL LD IX,0x0000 LD HL,0x0000 @@ -1709,8 +1737,8 @@ RunFLX: LD HL,RestoreDIR OR L POP HL SCF - LD A,0x1E - RET NZ + LD A,ERR_DSS.NOT_ENOUGH_MEMORY + RET NZ ; 室, 訡 :) PUSH IY PUSH HL ; !FIXIT ஢ ⮣ SAFE_PORTY @@ -1734,39 +1762,47 @@ RunFLX: LD HL,RestoreDIR INC HL CP 'F' SCF - LD A,0x10 + LD A,ERR_DSS.INVALID_NAME JR NZ,.L2 LD A,(HL) INC HL CP 'L' SCF - LD A,0x10 + LD A,ERR_DSS.INVALID_NAME JR NZ,.L2 LD A,(HL) INC HL CP 'X' SCF - LD A,0x10 + LD A,ERR_DSS.INVALID_NAME JR NZ,.L2 - LD L,0x08 + LD L,LOW (WorkBuffer + 0x0100) + 8 LD E,(HL) INC HL - LD D,(HL) + LD D,(HL) ; DE - ᬥ饭 ࠭ 㧪 INC HL LD C,(HL) INC HL - LD B,(HL) + LD B,(HL) ; BC - ᬥ饭 ࠭ ᪠ INC HL - LD (.FLXexec),BC - LD A,(HL) + LD A,(HL) ; ० ࠡ INC HL - LD (.FLXmode),A - RES 7,D - SET 6,D - LD HL,0x8000 - OR A - SBC HL,DE - EX DE,HL + LD (RunFLX.FLXmode),A + AND FLXMODES.M_ADRORG + LD HL,%0011111101000000 ; ᪠ 0x3F, 0x40 + JR NZ,.L3 + LD L,%11000000 ; 0x0 +.L3 LD A,B + AND H + OR L + LD B,A ; BC - ॠ ᪠ + LD (RunFLX.FLXexec),BC + LD A,D + AND H + OR 0x40 + LD H,A + LD L,E ; HL - ॠ 㧪 + LD DE,0x4000 ; ᪮쪮 㧨 (ᨬ) LD A,(.FLXHandle) SPDSS DSSF.READ .L2: EX AF,AF' @@ -1774,26 +1810,41 @@ RunFLX: LD HL,RestoreDIR SETPORT WINSP.CPU1,,0 EX AF,AF' PUSH AF - LD A,(.FLXHandle) + LD A,0 +.FLXHandle EQU $-1 SPDSS DSSF.CLOSE POP AF POP HL POP IY - RET C - LD DE,0x0000 + RET +; LOAD FLX PLUGIN + +RUNFLXONLY LD HL,RestoreDIR + PUSH HL + JR RunFLX.ONLYRUN + +; FLX 䠩 +RunFLX: LD HL,RestoreDIR + PUSH HL + CALL LOADFLX + RET C +; 㦥, ᪠ +.ONLYRUN LD DE,0x0000 ; ᪠ .FLXexec EQU $-2 - SET 7,D - SET 6,D - LD A,(RAMPAGES.FLX) - LD C,WINSP.CPU3 + LD A,(.FLXmode) + AND FLXMODES.M_ADRORG + LD C,WINSP.CPU1 ; ᪠ 0x4000 + JR NZ,.L3 + LD C,WINSP.CPU3 ; ᪠ 0xC000 +.L3 LD A,(RAMPAGES.FLX) ; ࠭ ᪠ PUSH IY CALL Resident POP IY CCF RET NC - LD A,0x00 + LD A,0 .FLXmode: EQU $-1 - OR A + AND FLXMODES.M_NORESTORE RET Z INC SP INC SP @@ -1807,19 +1858,19 @@ RunFLX: LD HL,RestoreDIR OR A RET -.FLXHandle: DEFB 0x00 - ;[]===========================================================[] -Help: LD DE,HelpR - LD A,(RAMPAGES.FNHELP) - LD C,WINSP.CPU1 - JP Resident +Help: CALL LOADFLX4RUN + DZ FILENAME.HELP_FLX + JP NC,RUNFLXONLY +; 뢮 訡 " " + LD A,FNinternal.PlugNotFound + JP DOSError ;[]----------------------------------------------------------[] ViewFileSH: BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z CALL ResInvert LD HL,SetInvert @@ -1875,12 +1926,20 @@ ViewFile: SUB A ;------------------------------------------- StViewFile: LD A,0x01 -.L1 LD (VFlag+1),A +.L1 LD (VFlag),A BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z + IFNDEF ENABLE.VIEW +; ⪠ 㧪 + CALL LOADFLX4RUN + DZ FILENAME.VIEW_FLX +; 뢮 訡 " " + LD A,FNinternal.PlugNotFound + JP C,DOSError + ENDIF GETPORT WINSP.CPU1 PUSH AF BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) @@ -1889,10 +1948,10 @@ StViewFile: LD A,0x01 LD A,(RAMPAGES.RIGHTPANEL) .L2 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -1922,7 +1981,8 @@ StViewFile: LD A,0x01 CP (HL) JR NZ,.L3 LD (DE),A -VFlag: LD A,0x00 + LD A,0x00 +VFlag: EQU $-1 OR A JR NZ,View1 View: LD IX,fnview_ext @@ -1934,9 +1994,18 @@ View1: CALL ResInvert PUSH HL PUSH IY LD HL,PrevFile - LD DE,0xC000 - LD A,(RAMPAGES.FNVIEW) - LD C,WINSP.CPU3 + LD DE,(RunFLX.FLXexec) + LD A,(RunFLX.FLXmode) + AND FLXMODES.M_ADRORG + LD C,WINSP.CPU1 ; ᪠ 0x4000 + JR NZ,.L4 + LD C,WINSP.CPU3 ; ᪠ 0xC000 +.L4 + IFDEF ENABLE.VIEW + LD A,(RAMPAGES.FNVIEW) + ELSE + LD A,(RAMPAGES.FLX) + ENDIF CALL Resident POP IY RET C @@ -2010,9 +2079,17 @@ StEditFile: LD A,0x01 .L1 LD (EFlag),A BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z + IFNDEF ENABLE.VIEW +; ⪠ 㧪 + CALL LOADFLX4RUN + DZ FILENAME.EDIT_FLX +; 뢮 訡 " " + LD A,FNinternal.PlugNotFound + JP C,DOSError + ENDIF GETPORT WINSP.CPU1 PUSH AF BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) @@ -2021,10 +2098,10 @@ StEditFile: LD A,0x01 LD A,(RAMPAGES.RIGHTPANEL) .L2 SETPORT WINSP.CPU1,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -2067,9 +2144,18 @@ Edit1: CALL ResInvert PUSH HL PUSH IY LD HL,PrevFile - LD DE,CPU3 - LD A,(RAMPAGES.FNEDIT) - LD C,WINSP.CPU3 + LD DE,(RunFLX.FLXexec) + LD A,(RunFLX.FLXmode) + AND FLXMODES.M_ADRORG + LD C,WINSP.CPU1 ; ᪠ 0x4000 + JR NZ,.L4 + LD C,WINSP.CPU3 ; ᪠ 0xC000 +.L4 + IFDEF ENABLE.VIEW + LD A,(RAMPAGES.FNEDIT) + ELSE + LD A,(RAMPAGES.FLX) + ENDIF CALL Resident POP IY RET C diff --git a/plugins/calc/calc.a80 b/plugins/calc/calc.a80 index 91eb8f9..f5f3c30 100644 --- a/plugins/calc/calc.a80 +++ b/plugins/calc/calc.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 20.03.2025 savelij +; LAST UPDATE: 15.07.2025 savelij include macros.a80 include fn_const.a80 @@ -9,13 +9,7 @@ include macros_sp.a80 include dss_sp.a80 - org PluginOrg ; #C000 - Header lenght -; Flex Navigator plugin header -PluginStart: db "FLX-PLUG" ; Id - dw 0x0000 ; LoadOffset - dw PluginEntry ; EntryOffset - db 0x00 ; PluginMode - db 0x00,0x00,0x00 ; Reserved + HDR_FLX "-CALC" PluginEntry: MAKEWINDOW WINSUBOBJ.STORE diff --git a/plugins/cdplayer/build.bat b/plugins/cdplayer/build.bat index 512d2e8..27a9cd2 100644 --- a/plugins/cdplayer/build.bat +++ b/plugins/cdplayer/build.bat @@ -6,9 +6,13 @@ set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad call ..\..\setpath_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 +copy /Y /B cdplayer.txt .. + echo ######################## echo # -= End Compile Ok =- # echo ######################## diff --git a/plugins/cdplayer/cdplayer.a80 b/plugins/cdplayer/cdplayer.a80 index ee4b509..988b446 100644 --- a/plugins/cdplayer/cdplayer.a80 +++ b/plugins/cdplayer/cdplayer.a80 @@ -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 fn_const.a80 include fn_macros.a80 include accel_sp.a80 include ports_sp.a80 include define_sp.a80 + include errors_sp.a80 include macros_sp.a80 include dss_sp.a80 + include bios_sp.a80 + include vers.a80 - org PluginOrg ; #C000 - Header lenght -; Flex Navigator plugin header -PluginStart: db "FLX-PLUG" ; Id - dw 0x0000 ; LoadOffset - dw 0x0000 ; EntryOffset - db 0x00 ; PluginMode - db 0x00,0x00,0x00 ; Reserved +DEBUG EQU 0 +BUF_TOC EQU RESULT + 3000 -;// include 'dos_equ.inc' + HDR_FLX "-CDPL",,,FLXMODES.M_ADRORG PluginEntry: MAKEWINDOW WINSUBOBJ.STORE W_MAIN 78,79,484,72 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_BORDER 8,15,268,38 W_FILL 10,16,264,36,COLORI.BLACK @@ -41,112 +37,90 @@ PluginEntry: W_HORIZLINE 2,56,480 W_END call JUMPS.ResFire - call shows - ld hl,cd_play - ld ix,201 - ld iy,95 - call show - ld hl,cd_paus - ld ix,241 - ld iy,95 - call show - ld hl,cd_stop - ld ix,261 - ld iy,95 - call show - ld hl,cd_ll - ld ix,181 - ld iy,115 - call show - ld hl,cd_l - ld ix,201 - ld iy,115 - call show - ld hl,cd_r - ld ix,221 - ld iy,115 - call show - ld hl,cd_rr - ld ix,241 - ld iy,115 - call show - ld hl,cd_ejec - ld ix,261 - ld iy,115 - call show - call shaos - call CDinit -plugin_loop: ld ix, PluginMouseTab + CALL SHOW_BUTTON ; 뢮 + IF DEBUG + CALL DEBUG_TXTKEYS ; ⫠ ⥪ + ENDIF + call CDinit ; Audio-CD + call BIGDIGITSALL +plugin_loop: LD HL,FLAG + BIT B_RDUPDATE,(HL) + JR NZ,.L2 +; 뢠 ⥪饥 ⮬ ० + SET B_RDUPDATE,(HL) + BIT B_PAUSE,(HL) + JR NZ,.L3 + BIT B_TRAY,(HL) + JR NZ,.L4 + BIT B_PLAY,(HL) + CALL NZ,RDSUBCHAN ; ⠥ ⥪饥 ६ ᫨ ३ ० + CALL UPDATE_CURRTRACK ; ப 뢮 +.L4 LD HL,(APCMD.PLAY_MSF + 6) ; ६ ᪠ + LD DE,(RESULT + 9) ; ⥪饥 ६ + AND A + SBC HL,DE + CALL Z,CDSTOP ; ਭ㤨⥫ ⮯ ᫨ ᪠ + JR .L3 + +; ᮢ뢠 ⥪ ࠭ +.L2 RES B_RDUPDATE,(HL) + BIT B_TRAY,(HL) + CALL Z,BIGDIGITSALL ; 뢮 ࠭ +; ᭮ 横 ࠢ +.L3 ld ix,PluginMouseTab call JUMPS.TestCoords -; ld c, 0x31 -; rst 0x10 SPDSS DSSF.SCANKEY - jr z, plugin_loop - ld a, b + jr z,plugin_loop + ld a,b or a - jr nz, plugin_loop - ld a, e - cp 0x1B - jr z, PluginExit + jr nz,plugin_loop + ld a,e + CALL CHECKHOTKEYS ; ஢ઠ ⪥ ᯨ + JR NC,plugin_loop +.L1 cp 0x1B + jr z,PluginExit cp 0x0D - jr nz, plugin_loop + jr nz,plugin_loop PluginExit: + CALL RESTORE_STATE WINDOWCLOSE or a ; cf = 0 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 ; ix,iy - coords (320x256) -show: -; in a,(82h) +show: di GETPORT WINSP.CPU0 - ld (shwin),a -; ld a,50h -; out (82h),a + PUSH AF + GETPORT WINSP.Y_PORT + PUSH AF SETPORT WINSP.CPU0,0x50 push ix pop de - push iy - pop bc + LD C,IYL ld b,16 -show1: ld a,c -; out (89h),a +.L1: ld a,c SETPORT WINSP.Y_PORT,,0 push de - di -; ACC_SetBlockSize ACCEL ACCELCMD.SET_BUFFER ld a,16 -; ACC_CopyBlock ACCEL ACCELCMD.COPY ld a,(hl) ld (de),a -; ACC_Off ACCEL ACCELCMD.OFF - ei ld de,16 add hl,de pop de inc c dec b - jp nz,show1 -; ld a,0xFF -; out (89h),a - SETPORT WINSP.Y_PORT,0xFF - ld a,(shwin) -; out (82h),a + jp nz,.L1 + POP AF + SETPORT WINSP.Y_PORT,,0 + POP AF SETPORT WINSP.CPU0,,0 + ei ret -shwin db 0 - ; a - digit ; ix,iy - coords (320x256) showd: rlca @@ -157,18 +131,39 @@ showd: rlca call show ld de,16 add iy,de - call show - ret + jp show -; Show Digit string -shows: ld ix,46 - ld iy,97 - ld c,8 - ld hl,Digits -shows1: push bc +; ४ ६ ந뢠 㯭 ⮬ +BIGDIGITSALL: LD HL,(Digits) + LD (DigitsNone),HL ; ஢ ४ + LD HL,FLAG + BIT B_PAUSE,(HL) + 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 iy - ld a,(hl) + ld a,(hl) call showd ld bc,16 add ix,bc @@ -177,77 +172,546 @@ shows1: push bc pop bc inc hl dec c - jp nz,shows1 + jp nz,.L1 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 - jr nc,noCD -yesCD: call SAVE_BUF - ld hl,CD_BUF - ld bc,54 - add hl,bc - ld de,msg_ -yesCD1: ld a,(hl) - ld (de),a - or a - jr z,yesCD0 - inc hl - inc de - jr yesCD1 +.drv_change: LD A,(CDDRIVE) + CALL SAVE_MEDIA_CHANGED +.cont: CALL INITDISK + RET C + AND A + RET +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 - ld a,0x80 + ld a,COLORP.HIGHGRAY + COLORI.BLUE jr CDprn +; CD-ROM noCD: ld hl,msgN - ld a,0x81 + ld a,COLORP.HIGHGRAY + COLORI.RED CDprn: ld de,84 ld bc,140 - call JUMPS.PrnTxtLnIFF - ret + JP JUMPS.PrnTxtLnIFF -msgY db "CD-ROM is present " -msg_ DB 100 DUP 0 -msgN db "CD-ROM is absent",0 +msgY DZ "CD-ROM is present" +msgN DZ "CD-ROM is absent" +TXTTRACKS DZ "Tracks: 00" ; ⢮ ४ ᪥ +.DIGITS EQU $-3 -CDplay: ld hl,AP_PLA - call ATAPI - ret +; ᮢ ⠡窥 権 +SHOW_BUTTON LD HL,TABLBUTTONS +.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 - call ATAPI - ret + IF DEBUG +; ⠡ ᪠ ⪥ +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 - dw 480,516, 94,112,0x01,0,0,0 - dw 520,556, 94,112,0x01,0,0,0 - dw 360,396,114,132,0x01,0,0,0 - dw 400,436,114,132,0x01,0,0,0 - dw 440,476,114,132,0x01,0,0,0 - dw 480,516,114,132,0x01,0,0,0 - dw 520,556,114,132,0x01,0,CDejec,0 +; ⠭ 樨 ࠭ +SETPOS_MSF EXX + LD HL,(CURRENT.TRACK) + LD H,0 + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + 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 - dw 0x8000 +; ६⪠ +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 -StringBuf: db 16,1 - db 0,0,0 - dw 0x00CC,0x0057,0x00E8 - db 0xF0 +; ६⪠ । +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 -String: DB 16 DUP 0 - DB 13 DUP 0 +; ।騩 ४ +PREV_TRACK LD HL,CURRENT.TRACK + LD A,(HL) + DEC A + RET Z + DEC (HL) + JR NEXT_TRACK.L1 - include shaos.a80 - include cd.a80 +; ᫥騩 ४ +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 + +APCMD + ; 00 01 02 03 04 05 06 07 08 09 0A 0B +.STOP DB 0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +.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 + + include icons.a80 include digits.a80 -PluginEnd: -;// savebin 'Build/FN/Plugins/cdplayer.flx',PluginStart,PluginEnd-PluginStart +FLAG DB 0 + 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 diff --git a/plugins/cdplayer/cdplayer.txt b/plugins/cdplayer/cdplayer.txt new file mode 100644 index 0000000..259f25a --- /dev/null +++ b/plugins/cdplayer/cdplayer.txt @@ -0,0 +1,46 @@ + + SHAOS CD-Player Flex Navigator ।祭 ࠢ +ந 樨 Audio CD ᪮. + ⥬ ॡ: FN ᨨ 1.16 . + + ࠢ ஬ ந 稬 蠬. +᮪ ࠢ: +1 - ; +2 - 㧠, ⮬ ० 稭 ࣠ ६ ந뢠; +3 - ⮯; +4 - ३ ।騩 ४; +5 - ६⪠ , ⨥ ᪠ 10 ᥪ㭤 + (⮫쪮 ० ); +6 - ६⪠ ।, ⨥ ᪠ 10 ᥪ㭤 + (⮫쪮 ० ); +7 - ३ ᫥騩 ४; +8 - / ३ ਢ CD ᪮. ﭨ ஫. + ⨥ , ᫥饥 ⨥ + . + +" , ": +- ⨥ ⮯ ᥣ 뢠 ६ ࠭ 0 室 ४; +- ६⪠ ࠡ⠥ ⮫쪮 ० ; +- 室 ந த. ᫥饬 + ᪥ ᫨ ந 㤥 뢠 ० ⮯ + ४ 1, ६ 00:00. +- ० 㧠 室 ᫥騩/।騩 ४ ६ 뢠 00:00. + +History: + 1.1 +- ᮢ ஥ 㯭 . +- ࠫ ࠢ ᤥ ࠢ . +- ० 㧠 ᤥ ࣠ ६ ࠭. +- ६⪠ ᤥ 10 ᥪ㭤 ⮫쪮 ० . +- ᯮ짮 , 室 㬥 ⮫쪮 + ⨥ . +- 2 뢠 ⥪饣 ४, ⠫ 뢠 + ६ ந뢠 ४. +- ᤥ ⢠ ४ ᪥. +- ࠭ 㭪樮. +- ࠢ 뢮 ४ ६ ࠭, ᡮ. +- ࠢ CD ਢ ᤥ 뫪 ATAPI ⠬ १ BIOS. +- ࠭ ࠡ १ IDE, 室 ⠢. +- ࠭ , 室 ⠢. +- ࠡ⪠ 室 ᨨ SHAOS CD-Player v1.0 beta1. + diff --git a/plugins/cdplayer/cdrom.a80 b/plugins/cdplayer/cdrom.a80 index b8925f1..038d045 100644 --- a/plugins/cdplayer/cdrom.a80 +++ b/plugins/cdplayer/cdrom.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 11.03.2025 savelij +; LAST UPDATE: 30.06.2025 savelij ; CDROM.A - Alexander Shabarshin 13.10.2002 @@ -106,14 +106,11 @@ CD_TRANS: ld d,(hl) ; HL - address of 12-bytes command SEND_ATAPI: ld de,CD_BUF di -; ACC_SetBlockSize ACCEL ACCELCMD.SET_BUFFER ld a,12 -; ACC_CopyBlock ACCEL ACCELCMD.COPY ld a,(hl) ld (de),a -; ACC_Off ACCEL ACCELCMD.OFF ei SA0: call NO_BSY @@ -191,21 +188,14 @@ NO_CDROM: pop hl SAVE_BUF: push hl ld hl,FNAME -; ld c,Dss.Create -; ld a,0 -; rst ToDSS SPDSS DSSF.CREATE,,0 ld (FHAND),a -; ld c,Dss.Write ld a,(FHAND) ld de,2048 ld hl,CD_BUF -; rst ToDSS SPDSS DSSF.WRITE ; !FIXIT WRITE ERROR -; ld c,0x12 ld a,(FHAND) -; rst ToDSS SPDSS DSSF.CLOSE pop hl ret @@ -214,14 +204,12 @@ FNAME db "cd_buf.dat",0 FHAND db 0 AP_NOP: ld hl,AP_00 - call SEND_ATAPI - ret + JP SEND_ATAPI ; ATAPI command ; HL - address of ATAPI command (AP_*) ATAPI: -AP_COM: call SEND_ATAPI - ret +AP_COM: JP SEND_ATAPI AP_00 db 0x00 DB 11 DUP 0 diff --git a/plugins/cdplayer/digits.a80 b/plugins/cdplayer/digits.a80 index f3a80fa..ad31448 100644 --- a/plugins/cdplayer/digits.a80 +++ b/plugins/cdplayer/digits.a80 @@ -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 - 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 - 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 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit1 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 - 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 - 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 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit2 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 - 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 - 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 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit3 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 - 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 - 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 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit4 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 - 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 - 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 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit5 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit6 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 - 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 - 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 - db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit7 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 - 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 - 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 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit8 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digit9 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 - 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 - 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 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00 - 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 - 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 - 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 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -digi_sp 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 - 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 - 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 - 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 - 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 - 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,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - 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 - 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 - 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,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - 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 - 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 - 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 - 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 - 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 - 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 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 + +ii EQU COLORP.BLACK + COLORI.BLACK ; 䮭 +HH EQU COLORP.YELLOW + COLORI.YELLOW ; ᥫ + +; 0 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F +digit0 db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 00 + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 01 + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 02 + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 03 + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii ; 04 + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii ; 05 + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii ; 06 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 07 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 08 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 09 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 0A + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 0B + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 0C + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii ; 0D + db ii,ii,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii ; 0E + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 0F + db ii,ii,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii ; 10 + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii ; 11 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 12 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 13 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 14 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 15 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 16 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 17 + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii ; 18 + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii ; 19 + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii ; 1A + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii ; 1B + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1C + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1D + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1E + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii ; 1F +; 1 +digit1 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,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,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,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,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 +; 2 +digit2 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,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 +; 3 +digit3 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,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 +; 4 +digit4 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,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,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 +; 5 +digit5 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,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 +; 6 +digit6 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,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 +; 7 +digit7 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,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,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,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 +; 8 +digit8 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,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 +; 9 +digit9 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,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,HH,HH,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,HH,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,HH,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,ii,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,ii,HH,HH,HH,ii,ii + db ii,ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,ii,HH,HH,ii,ii + db ii,ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,ii,HH,ii,ii + db ii,ii,ii,HH,HH,HH,HH,HH,HH,HH,HH,HH,HH,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 +; 稥 +digi_sp 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,HH,HH,ii,ii,ii,ii,ii,ii,ii + db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii + db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii + db ii,ii,ii,ii,ii,ii,ii,HH,HH,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,HH,HH,ii,ii,ii,ii,ii,ii,ii + db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii + db ii,ii,ii,ii,ii,ii,ii,HH,HH,ii,ii,ii,ii,ii,ii,ii + db ii,ii,ii,ii,ii,ii,ii,HH,HH,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 +; ஡ +digi_ss 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 + 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 diff --git a/plugins/cdplayer/cd.a80 b/plugins/cdplayer/icons.a80 similarity index 100% rename from plugins/cdplayer/cd.a80 rename to plugins/cdplayer/icons.a80 diff --git a/plugins/cdplayer/shaos.a80 b/plugins/cdplayer/shaos.a80 index f538623..a6490ad 100644 --- a/plugins/cdplayer/shaos.a80 +++ b/plugins/cdplayer/shaos.a80 @@ -1,30 +1,23 @@ -; LAST UPDATE: 03.02.2025 savelij +; LAST UPDATE: 30.06.2025 savelij ; Shaos face shaos: ld hl,shaosraw ld de,44 ld c,95 ld b,36 -; in a,(82h) GETPORT WINSP.CPU0 ld (shaowin),a -; ld a,50h -; out (82h),a SETPORT WINSP.CPU0,0x50 shaos1: ld a,c -; out (89h),a - SETPORT WINSP.CPU0,,0 + SETPORT WINSP.Y_PORT,,0 push de di -; ACC_SetBlockSize ACCEL ACCELCMD.SET_BUFFER ld a,32 -; ACC_CopyBlock ACCEL ACCELCMD.COPY ld a,(hl) ld (de),a -; ACC_Off ACCEL ACCELCMD.OFF ei ld de,32 @@ -33,11 +26,8 @@ shaos1: ld a,c inc c dec b jp nz,shaos1 -; ld a,0xFF -; out (89h),a SETPORT WINSP.Y_PORT,0xFF ld a,(shaowin) -; out (82h),a SETPORT WINSP.CPU0,,0 ret diff --git a/plugins/cdplayer/vers.a80 b/plugins/cdplayer/vers.a80 new file mode 100644 index 0000000..533feed --- /dev/null +++ b/plugins/cdplayer/vers.a80 @@ -0,0 +1,7 @@ + +; LAST UPDATE: 11.07.2025 savelij + +CDVERS EQU "1.1" + +PAUSE EQU 10 ; 蠣 ᥪ㭤 ६⪨ +PAUSEDIGITS EQU 12 ; 㧠 ࣠ ० 㧠 \ No newline at end of file diff --git a/plugins/date/date.a80 b/plugins/date/date.a80 index 860261b..4f7e515 100644 --- a/plugins/date/date.a80 +++ b/plugins/date/date.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 31.03.2025 savelij +; LAST UPDATE: 15.07.2025 savelij include macros.a80 include fn_const.a80 @@ -7,12 +7,9 @@ include macros_sp.a80 include dss_sp.a80 - org PluginOrg -PluginStart: db "FLX-PLUG" - dw 0 - dw PluginEntry - db 0 - db 0,0,0 + HDR_FLX "-DATE" + + JP PluginEntry db "Date preferences plug-in for Flex Navigator",0 db "2003 (c) Mac Buster",0 diff --git a/plugins/fneditor/feditor.a80 b/plugins/fneditor/feditor.a80 index bf667bb..435ec51 100644 --- a/plugins/fneditor/feditor.a80 +++ b/plugins/fneditor/feditor.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 11.03.2025 savelij +; LAST UPDATE: 18.07.2025 savelij INIT_VAR SETVAR CursorX ;EQU 0x00 @@ -307,7 +307,7 @@ SureLoop LD IX,SureTab SCF JR Z,SureExit CP 0x0D - JR Z,SureExit + JR Z,SureOkey RES 5,A CP 'N' JR Z,SureExit @@ -704,7 +704,7 @@ FEAbout CALL FEResCursor W_FILL 4,2,312,10,COLORI.BLACK W_TEXT 144,3,COLORI.WHITE,"About" 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 92,50,COLORP.HIGHGRAY,"(C)2021 Mikhaltchenkov Dmitry" W_BUTTON 124,66,72,14 diff --git a/plugins/fneditor/femain.a80 b/plugins/fneditor/femain.a80 index 2412d30..b975033 100644 --- a/plugins/fneditor/femain.a80 +++ b/plugins/fneditor/femain.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 20.03.2025 savelij +; LAST UPDATE: 18.07.2025 savelij include macros.a80 include fn_const.a80 @@ -13,12 +13,6 @@ include bios_sp.a80 include mouse_sp.a80 - org PluginOrg ; #C000 - Header lenght -; Flex Navigator plugin header -PluginStart: db "FLX-PLUG" ; Id - dw 0x0000 ; LoadOffset - dw 0x0000 ; EntryOffset - db 0x00 ; PluginMode - db 0x00,0x00,0x00 ; Reserved + HDR_FLX "-EDIT",,,;FLXMODES.M_ADRORG -PluginEntry: include feditor.a80 + include feditor.a80 diff --git a/plugins/fneditor/fesetup.a80 b/plugins/fneditor/fesetup.a80 index 7096e45..d835197 100644 --- a/plugins/fneditor/fesetup.a80 +++ b/plugins/fneditor/fesetup.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.03.2025 savelij +; LAST UPDATE: 16.07.2025 savelij FECSign: DB "FEC" HomeKeyFlag: DB 0 @@ -28,7 +28,7 @@ ReadEditorIni: ld a,0 POP IY GETPORT WINSP.CPU1 PUSH AF - LD A,(JUMPS.FNFUNCT) + LD A,(JUMPS.FNREZ2) SETPORT WINSP.CPU1,,0 LD HL,ADDR.FlexDIRECTORY PUSH IY @@ -244,7 +244,7 @@ FESetupOkey: ld a,(ExitDlgFlag) SPDSS DSSF.CURDIR GETPORT WINSP.CPU1 PUSH AF - LD A,(JUMPS.FNFUNCT) + LD A,(JUMPS.FNREZ2) SETPORT WINSP.CPU1,,0 LD HL,ADDR.FlexDIRECTORY SPDSS DSSF.CHDIR diff --git a/plugins/fnviewer/fvmain.a80 b/plugins/fnviewer/fvmain.a80 index 1784503..8536e66 100644 --- a/plugins/fnviewer/fvmain.a80 +++ b/plugins/fnviewer/fvmain.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 30.05.2025 savelij +; LAST UPDATE: 18.07.2025 savelij include macros.a80 @@ -15,12 +15,6 @@ include fat_dir_sp.a80 include macros_sp.a80 - org PluginOrg ; #C000 - Header lenght -; Flex Navigator plugin header -PluginStart: db "FLX-PLUG" ; Id - dw 0x0000 ; LoadOffset - dw 0x0000 ; EntryOffset - db 0x00 ; PluginMode - db 0x00,0x00,0x00 ; Reserved + HDR_FLX "-VIEW",,,;FLXMODES.M_ADRORG -PluginEntry: include fviewer.a80 + include fviewer.a80 diff --git a/plugins/help/header.a80 b/plugins/help/header.a80 index 929ab4b..cdba762 100644 --- a/plugins/help/header.a80 +++ b/plugins/help/header.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 26.03.2025 savelij +; LAST UPDATE: 15.07.2025 savelij include macros.a80 include fn_const.a80 @@ -16,13 +16,7 @@ WINSP_CPU EQU WINSP.CPU1 WINSP_ADR EQU 0x4000 - org PluginOrg ; #C000 - Header lenght -; Flex Navigator plugin header -PluginStart: db "FLX-PLUG" ; Id - dw 0x0000 ; LoadOffset - dw 0x0000 ; EntryOffset - db 0x00 ; PluginMode - db 0x00,0x00,0x00 ; Reserved + HDR_FLX "-HELP" PluginEntry: include help.a80 diff --git a/plugins/help/help_t.a80 b/plugins/help/help_t.a80 index d85b599..20eaa94 100644 --- a/plugins/help/help_t.a80 +++ b/plugins/help/help_t.a80 @@ -1,9 +1,9 @@ -; LAST UPDATE: 25.06.2025 savelij +; LAST UPDATE: 27.06.2025 savelij DB 0,0 DB " Flex Navigator",0,0 - DB " version \{FLEX_VERS.NAVIGATOR}",0,0,0 + DB " version \{FLEX_VERS.NAVIGATOR}",0,0,0 DB " Copyright (C) 2000, Enin Anton, St.-Petersburg, Russia",0 DB " Copyright (C) \{SUBSTR(DATE,STRLEN(DATE)-4,4)}, Sprinter Team",0 DB 0 @@ -112,7 +112,7 @@ DB " Filtr... - 䨫 ᯨ᪠ 䠩",0 DB " Name - ஢ ",0 DB " Extention - ஢ ७",0 - DB " Data - ஢ ",0 + DB " Date - ஢ ",0 DB " Size - ஢ ࠧ",0 DB " Unsorted - ஢",0,0,0," ",9 DB " - Config -",0,0 diff --git a/plugins/test/test.a80 b/plugins/test/test.a80 index e02a9d7..4fcc967 100644 --- a/plugins/test/test.a80 +++ b/plugins/test/test.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.03.2025 savelij +; LAST UPDATE: 15.07.2025 savelij ;// DEVICE ZXSPECTRUM128 ;[]=======================================================================[] @@ -24,13 +24,7 @@ include macros_sp.a80 include dss_sp.a80 - org PluginOrg ; #C000 - Header lenght -PluginStart: ; Flex Navigator plugin header - db "FLX-PLUG" ; Id - dw 0x0000 ; LoadOffset - dw PluginEntry ; EntryOffset - db 0x00 ; PluginMode - db 0x00, 0x00, 0x00 ; Reserved + HDR_FLX "-TEST" PluginEntry: MAKEWINDOW WINSUBOBJ.STORE diff --git a/readme.md b/readme.md index d1e9605..8164727 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@  -Flex Navigator для компьтера Sprinter +Flex Navigator v1.16 для компьютера Sprinter Собранные файлы забирать из папки fn diff --git a/rez2_fnconfig.a80 b/rez2_fnconfig.a80 index 26eb9e8..a2181a5 100644 --- a/rez2_fnconfig.a80 +++ b/rez2_fnconfig.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.03.2025 savelij +; LAST UPDATE: 24.07.2025 savelij PALITRA.RESERV EQU PALETTE + 0x34 @@ -177,7 +177,7 @@ SaveSetup CALL SetClock PUSH IY SPDSS DSSF.CURDIR POP IY - LD HL,FlexDIRECTORY + LD HL,BUF_REZ2.FlexDIRECTORY PUSH IY SPDSS DSSF.CHDIR POP IY @@ -215,7 +215,7 @@ SaveSetup CALL SetClock LDI LDI POP HL - LD BC,PANEL.FILEMASK + LD BC,PANEL.FILE_MASK ADD HL,BC SUB A .L1 LDI @@ -229,7 +229,7 @@ SaveSetup CALL SetClock LDI LDI POP HL - LD BC,PANEL.FILEMASK + LD BC,PANEL.FILE_MASK ADD HL,BC SUB A .L2 LDI @@ -286,8 +286,8 @@ SetupExit LD A,(SaveFlag) OR A RET Z LD IX,LeftPanel - LD HL,LeftPanel + PANEL.CURRPATH - LD DE,FlexDIRECTORY + LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,BUF_REZ2.FlexDIRECTORY LD A,(DE) SetRef1 CP (HL) JR NZ,SetRef2 @@ -299,8 +299,8 @@ SetRef1 CP (HL) CP (HL) CALL Z,RefreshSetup SetRef2 LD IX,RightPanel - LD HL,RightPanel + PANEL.CURRPATH - LD DE,FlexDIRECTORY + LD HL,RightPanel + PANEL.CURR_PATH + LD DE,BUF_REZ2.FlexDIRECTORY LD A,(DE) SetRef3 CP (HL) JR NZ,SetRef4 @@ -313,7 +313,7 @@ SetRef3 CP (HL) CALL Z,RefreshSetup SetRef4 PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -327,7 +327,7 @@ RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG) POP IY PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -338,7 +338,7 @@ RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY+PANEL.VIEWFLAG) diff --git a/rez2_fnerror.a80 b/rez2_fnerror.a80 index 4c0d37e..a2547c8 100644 --- a/rez2_fnerror.a80 +++ b/rez2_fnerror.a80 @@ -1,122 +1,161 @@ -; LAST UPDATE: 25.03.2025 savelij +; LAST UPDATE: 18.07.2025 savelij ; !FIXIT । ࠧ ⥪⮬ 訡 ⮬ 楤 ;[]===========================================================[] DOSErrorR ;[x] 30/07/23 -bug 뫥 । ⠡ 訡 - CP (.error - .ErrorWins)/2 - JR C,.calc_addr - LD HL,.error - JR .goto_addr + CP (.UNKerror - .ErrorWins) / 4 + JR C,.calc_addr + CP 0xF0 + JR NC,.FNerror + LD HL,.UNKerror + JR .goto_addr -.calc_addr: LD HL,.ErrorWins - ADD A,A - ADD A,L - LD L,A - JR NC,.goto_addr - INC H -.goto_addr: LD A,(HL) - INC HL - LD H,(HL) - LD L,A - LD A,H - OR L - RET Z - CALL SetMouse - JP (HL) +; ७ 訡 FN +.FNerror SUB FNinternal.PlugNotFound + LD HL,.PlugNotFound + JR .INT_ERR -.ErrorWins DEFW 0x0000 ; 00 - DEFW 0x0000 ; 01 - DEFW InvDrive ; 02 - DEFW FileNFound ; 03 - DEFW InvPath ; 04 - DEFW 0x0000 ; 05 - DEFW FileNFound ; 06 - DEFW FILEexists ; 07 - DEFW 0x0000 ; 08 - DEFW ROOToverflow ; 09 - DEFW NoDiskSpace ; 0A - DEFW DIRnotEmpty ; 0B - DEFW 0x0000 ; 0C - DEFW InvMedia ; 0D - DEFW 0x0000 ; 0E - DEFW DIRexists ; 0F - DEFW InvName ; 10 - DEFW InvEXEfile ; 11 - DEFW InvEXEver ; 12 - DEFW 0x0000 ; 13 - DEFW NotReady ; 14 - DEFW 0x0000 ; 15 - DEFW 0x0000 ; 16 - DEFW 0x0000 ; 17 - DEFW WriteProtect ; 18 ; [ ] 26/06/2024 - DEFW 0x0000 ; 19 - DEFW 0x0000 ; 1A - DEFW 0x0000 ; 1B - DEFW NotReady ; 1C - DEFW 0x0000 ; 1D - DEFW NoMemory ; 1E - DEFW 0x0000 ; 1F - DEFW 0x0000 ; 20 - DEFW 0x0000 ; 21 - DEFW 0x0000 ; 22 - DEFW ToManyFilesInDir ; 23 +.calc_addr: LD HL,.ErrorWins +.INT_ERR ADD A,A ; *2 + ADD A,A ; *4 + ADD A,L + LD L,A + ADC A,H + SUB L + 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 + LD H,(HL) + LD L,A ; 㤠 室 ᫥ + OR H + RET Z ; ᫨ 室 0, 室 + LD (.ADRJUMP),HL + LD (.ADRJUMP2),HL + CALL SetMouse + 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 + +; ⥪⮬ 訡 㪢 ᪠ +.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 +.XPOSTXT2 EQU $-7 ; +.ADRTXT2 EQU $-2 ; ⥪ + 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 + JP 0 +.ADRJUMP2 EQU $-2 + +; ⥪ 㤠 室 +.ErrorWins DW 0, 0 ; 00 + DW 0, 0 ; 01 + DW TXTERR.InvDrive, InputDrive ;InvDrive ; 02 + DW TXTERR.FileNFound, ErrorLp ;FileNFound ; 03 + DW TXTERR.InvPath, ErrorLp0 ;InvPath ; 04 + DW 0, 0 ; 05 + DW TXTERR.FileNFound, ErrorLp ;FileNFound ; 06 + DW TXTERR.FILEexists, ErrorLp ;FILEexists ; 07 + DW 0, 0 ; 08 + DW TXTERR.ROOToverflow, ErrorLp ;ROOToverflow ; 09 + DW TXTERR.NoDiskSpace, ErrorLp ;NoDiskSpace ; 0A + DW TXTERR.DIRnotEmpty, ErrorLp ;DIRnotEmpty ; 0B + DW 0, 0 ; 0C + DW TXTERR.InvMedia, InputDrive ;InvMedia ; 0D + DW 0, 0 ; 0E + DW TXTERR.DIRexists, ErrorLp ;DIRexists ; 0F + DW TXTERR.InvName, ErrorLp ;InvName ; 10 + 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: -.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: - 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 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 +SETERRTEXT MACRO X,TEXT + DW X ; X + DB TEXT,0 ; ப 0 + ENDM -InvDrive - 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 24,18,COLORP.HIGHGRAY,"Invalid drive letter:" - 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 - JP InputDrive +TXTERR +.PlugNotFound SETERRTEXT 56,"Plugin not found" +.InvDrive SETERRTEXT 24 | 0x8000,"Invalid drive letter:" +.FileNFound SETERRTEXT 60,"File not found" +.InvPath SETERRTEXT 70,"Invalid path" +.FILEexists SETERRTEXT 72,"File exists" +.ROOToverflow SETERRTEXT 64,"ROOT overflow" +.NoDiskSpace SETERRTEXT 62,"No disk space" +.DIRnotEmpty SETERRTEXT 40,"Directory is not empty" +.InvMedia SETERRTEXT 46 | 0x8000,"Invalid media:" +.DIRexists SETERRTEXT 56,"Directory exists" +.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 SPDSS DSSF.CURDISK POP IY - ADD A,"A" + ADD A,'A' LD (CurDrv),A LD IX,DriveStr LD HL,ErrorTab1 @@ -125,7 +164,7 @@ InputDrive PUSH IY CALL SetClock LD A,(CurDrv) RES 5,A - SUB "A" + SUB 'A' PUSH IY SPDSS DSSF.CHDISK POP IY @@ -139,7 +178,7 @@ InputDrive PUSH IY LD A,0x01 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 DriveStr DEFB 0x01,0x00,0x00,0x00 @@ -150,15 +189,6 @@ DriveStr DEFB 0x01,0x00,0x00,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 CALL TestCoords SPDSS DSSF.SCANKEY @@ -186,141 +216,10 @@ ErrorExt0 LD A,0x01 RET -ErrorTab2 DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt0,0x0000 +ErrorTab2 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt0,0 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 CALL TestCoords @@ -342,5 +241,5 @@ ErrorExt SUB A RET -ErrorTab3 DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt,0x0000 +ErrorTab3 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt,0 DEFW 0x8000 diff --git a/rez2_fnfunct.a80 b/rez2_fnfunct.a80 index 21bb57a..dabc970 100644 --- a/rez2_fnfunct.a80 +++ b/rez2_fnfunct.a80 @@ -1,16 +1,16 @@ -; LAST UPDATE: 16.05.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]==========================================================[] -CopyFilesR LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +CopyFilesR LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) RET NZ SETPORT WINSP.Y_PORT,0xC0 - LD A,(IY + PANEL.MFL) - OR (IY + PANEL.MFH) - JR NZ,CopyMark + LD A,(IY + PANEL.FILES_MARK) + OR (IY + PANEL.FILES_MARK + 1) + JP NZ,CopyMark ; ஢ 䠩/ ஬ GETPORT WINSP.CPU3 PUSH AF @@ -21,10 +21,10 @@ CopyFilesR LD A,(IY + PANEL.EFL) .L1 SETPORT WINSP.CPU3,,0 LD IX,WorkBuffer - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -38,7 +38,7 @@ CopyFilesR LD A,(IY + PANEL.EFL) LD (AdrCopyFile),HL LD DE,WorkBuffer LD BC,FileHDR.SIZE - LDIR + LDIR POP AF SETPORT WINSP.CPU3,,0 BIT DIR.B_Dir,(IX + FileHDR.Attr) @@ -48,29 +48,41 @@ CopyFilesR LD A,(IY + PANEL.EFL) RET NZ ENDIF LD HL,0 - LD (ECopyFiles),HL + LD (CopyFiles),HL LD L,(IX + FileHDR.SizeBytes) LD H,(IX + FileHDR.SizeBytes + 1) - LD (ECopyBytes),HL + LD (CopyBytes),HL LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) - LD (ECopyBytes + 2),DE - CALL ConvLenToBank + LD (CopyBytes + 2),DE + CALL ConvBytes2Pages JP CopyNxt IF MARK_DIR ; ஢ ᥬ ᮤন COPY_DIR PUSH IX PUSH IY - CALL RESIDENT.GetDirSize ; ஬塞 ࠧ - LD HL,FileHDR.SizeBytes + PUSH IX + LD HL,(AdrCopyFile) ; ⥫ 塞 + CALL RESIDENT.GetDirSize ; ⠥ 砥 ࠧ + EXX + POP HL ; ⥫ + LD (CopyBytes),DE + LD (CopyBytes + 2),BC + PUSH DE + LD DE,FileHDR.SizeBytes + ADD HL,DE ; 㪠⥫ ⢮ ஢ + POP DE CALL SET_DWORD ; ᫨ ࠧ ⥫ LD HL,0 - LD (ECopyFiles),HL + LD (CopyFiles),HL EX DE,HL LD D,B LD E,C - CALL ConvLenToBank + CALL ConvBytes2Pages ; ⢮ ࠭ ஢ + +; LD HL,(AdrCopyFile) ; ⥫ 㥬 +; CALL RESIDENT.MkdirsDst ; ᮧ ਥ POP IY POP IX @@ -78,18 +90,18 @@ COPY_DIR PUSH IX ENDIF ; ஢ 祭 䠩 -CopyMark LD L,(IY + PANEL.MFL) - LD H,(IY + PANEL.MFH) - LD (ECopyFiles),HL - LD L,(IY + PANEL.MBL1) - LD H,(IY + PANEL.MBH1) - LD (ECopyBytes),HL - LD L,(IY + PANEL.MBL2) - LD H,(IY + PANEL.MBH2) - LD (ECopyBytes + 2),HL +CopyMark LD L,(IY + PANEL.FILES_MARK) + LD H,(IY + PANEL.FILES_MARK + 1) + LD (CopyFiles),HL + LD L,(IY + PANEL.BYTES_MARK) + LD H,(IY + PANEL.BYTES_MARK + 1) + LD (CopyBytes),HL + LD L,(IY + PANEL.BYTES_MARK + 2) + LD H,(IY + PANEL.BYTES_MARK + 3) + LD (CopyBytes + 2),HL ; [ ] fat32 - LD A,(IY + PANEL.MBL3) - LD (ECopyBytes + 4),A + LD A,(IY + PANEL.BYTES_MARK_H) + LD (CopyBytes + 4),A GETPORT WINSP.CPU3 PUSH AF BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) @@ -120,7 +132,7 @@ CopyLp0 BIT FileHDR.B_MARK,(IX + FileHDR.Flag) LD H,(IX + FileHDR.SizeBytes + 1) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) - CALL ConvLenToBank + CALL ConvBytes2Pages LD C,L LD B,H POP HL @@ -138,15 +150,16 @@ CopyNx2 ADD IX,BC JR NZ,CopyLp0 POP AF SETPORT WINSP.CPU3,,0 +; DEHL - ⢮ ࠭ ஢ CopyNxt LD IX,ProcessAll ADD HL,HL EX DE,HL ADC HL,HL EX DE,HL - LD (IX + PROC.MAXL1),L - LD (IX + PROC.MAXH1),H - LD (IX + PROC.MAXL2),E - LD (IX + PROC.MAXH2),D + LD (IX + PROC.MAX_PAGES),L + LD (IX + PROC.MAX_PAGES + 1),H + LD (IX + PROC.MAX_PAGES + 2),E + LD (IX + PROC.MAX_PAGES + 3),D CALL InitProcess CALL ResInvert LD HL,SetInvert @@ -168,7 +181,7 @@ CopyNxt LD IX,ProcessAll LD HL,LeftPanel JR NZ,.L1 LD HL,RightPanel -.L1 LD DE,PANEL.CURRPATH +.L1 LD DE,PANEL.CURR_PATH ADD HL,DE LD DE,CurPath SUB A @@ -210,15 +223,15 @@ CopyNxt LD IX,ProcessAll W_END SUB A LD (OverWriteFlg),A - LD HL,LeftPanel BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) + LD HL,LeftPanel JR Z,.L4 LD HL,RightPanel -.L4 LD BC,PANEL.CURRPATH +.L4 LD BC,PANEL.CURR_PATH ADD HL,BC - LD (CopyFrom),HL + LD (CopySrc),HL LD HL,CurPath - LD (CopyTo),HL + LD (CopyDst),HL CALL SetClock PUSH IY GETPORT WINSP.CPU3 @@ -235,32 +248,32 @@ CopyNextFile CALL PrnFromTo LD H,(IX + FileHDR.SizeBytes + 1) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) - LD (ReadLen),HL - LD (ReadLen + 2),DE - LD (WriteLen),HL - LD (WriteLen + 2),DE - CALL ConvLenToBank - LD (.FileBnL),HL - LD (.FileBnH),DE + LD (ReadBytes),HL + LD (ReadBytes + 2),DE + LD (WriteBytes),HL + LD (WriteBytes + 2),DE + CALL ConvBytes2Pages + LD (.PagesLow),HL + LD (.PagesHigh),DE LD IX,ProcessOne ADD HL,HL EX DE,HL ADC HL,HL EX DE,HL - LD (IX + PROC.MAXL1),L - LD (IX + PROC.MAXH1),H - LD (IX + PROC.MAXL2),E - LD (IX + PROC.MAXH2),D + LD (IX + PROC.MAX_PAGES),L + LD (IX + PROC.MAX_PAGES + 1),H + LD (IX + PROC.MAX_PAGES + 2),E + LD (IX + PROC.MAX_PAGES + 3),D CALL InitProcess CALL PrnProcess LD HL,(FreeBanks) LD DE,0x0000 -.FileBnH EQU $-2 +.PagesHigh EQU $-2 LD A,D OR E JR NZ,.CopyLp1 LD DE,0x0000 -.FileBnL EQU $-2 +.PagesLow EQU $-2 OR A SBC HL,DE JR NC,.L1 @@ -268,10 +281,10 @@ CopyNextFile CALL PrnFromTo .CopyLp1 EX DE,HL .L1 LD B,E SPDSS DSSF.GETMEM - LD (MemIndef),A + LD (MemID),A LD HL,PagesList SPBIOS BIOSF.GETMEMBLKPAGES - LD HL,(CopyFrom) ;뢠 䠩 筨 + LD HL,(CopySrc) ; 뢠 䠩 筨 SPDSS DSSF.CHDIR JP C,CopyError1 LD HL,(AdrCopyFile) @@ -282,8 +295,8 @@ CopyNextFile CALL PrnFromTo POP HL SPDSS DSSF.OPEN,,1 JP C,CopyError1 - LD (FHandle1),A - LD HL,(CopyTo) ;뢠 䠩 ਥ + LD (FHandleSrc),A + LD HL,(CopyDst) ; 뢠 䠩 ਥ SPDSS DSSF.CHDIR JP C,CopyError2 LD IX,(AdrCopyFile) @@ -295,20 +308,20 @@ CopyNextFile CALL PrnFromTo POP HL LD A,(OverWriteFlg) OR A - LD C,DSSF.CREAT_N ;0x0B + LD C,DSSF.CREAT_N JR Z,.L2 - LD C,DSSF.CREATE ;0x0A + LD C,DSSF.CREATE .L2 LD A,(IX + FileHDR.Attr) SPDSS JR NC,CopyLp2 CP 0x07 JP NZ,CopyError2 CALL OverWrite -CopyLp2 LD (FHandle2),A - LD HL,(ReadLen) +CopyLp2 LD (FHandleDst),A + LD HL,(ReadBytes) LD A,H OR L - LD HL,(ReadLen+2) + LD HL,(ReadBytes + 2) OR H OR L JP Z,CloseFiles @@ -325,8 +338,8 @@ ReadLp1 INC HL OR A SBC HL,DE JP Z,CopyBreak - LD HL,(ReadLen) - LD DE,(ReadLen + 2) + LD HL,(ReadBytes) + LD DE,(ReadBytes + 2) LD BC,0x4000 OR A SBC HL,BC @@ -335,11 +348,11 @@ ReadLp1 INC HL SBC HL,BC EX DE,HL JR C,ReadEnd - LD (ReadLen),HL - LD (ReadLen + 2),DE + LD (ReadBytes),HL + LD (ReadBytes + 2),DE LD HL,0xC000 LD DE,0x4000 - LD A,(FHandle1) + LD A,(FHandleSrc) SPDSS DSSF.READ CALL NextProcess POP HL @@ -352,11 +365,11 @@ ReadLp1 INC HL ; !FIXIT ᤥ ⠪: ReadEnd: LD HL,0xC000 - LD DE,(ReadLen) + LD DE,(ReadBytes) LD A,D OR E JR Z,.L1 - LD A,(FHandle1) + LD A,(FHandleSrc) SPDSS DSSF.READ CALL NextProcess .L1 POP HL @@ -375,8 +388,8 @@ WriteL1 INC HL OR A SBC HL,DE JP Z,CopyBreak - LD HL,(WriteLen) - LD DE,(WriteLen + 2) + LD HL,(WriteBytes) + LD DE,(WriteBytes + 2) LD BC,0x4000 OR A SBC HL,BC @@ -385,11 +398,11 @@ WriteL1 INC HL SBC HL,BC EX DE,HL JR C,WriteEnd - LD (WriteLen),HL - LD (WriteLen + 2),DE + LD (WriteBytes),HL + LD (WriteBytes + 2),DE LD HL,0xC000 LD DE,0x4000 - LD A,(FHandle2) + LD A,(FHandleDst) SPDSS DSSF.WRITE JP C,CopyError3 CALL NextProcess @@ -399,10 +412,10 @@ WriteL1 INC HL JR NZ,WriteL1 POP AF SETPORT WINSP.CPU3,,0 - LD HL,(ReadLen) + LD HL,(ReadBytes) LD A,H OR L - LD HL,(ReadLen + 2) + LD HL,(ReadBytes + 2) OR H OR L JR Z,CloseFiles @@ -410,46 +423,46 @@ WriteL1 INC HL ; !FIXIT ᤥ ⠪: WriteEnd: LD HL,0xC000 - LD DE,(WriteLen) + LD DE,(WriteBytes) LD A,D OR E JR Z,.L1 - LD A,(FHandle2) + LD A,(FHandleDst) SPDSS DSSF.WRITE JP C,CopyError3 CALL NextProcess .L1 POP HL POP AF SETPORT WINSP.CPU3,,0 -CloseFiles LD A,(FHandle1) +CloseFiles LD A,(FHandleSrc) SPDSS DSSF.GET_D_T - LD A,(FHandle2) + LD A,(FHandleDst) SPDSS DSSF.PUT_D_T - LD A,(FHandle2) + LD A,(FHandleDst) SPDSS DSSF.CLOSE -CloseFile1 LD A,(FHandle1) +CloseFile1 LD A,(FHandleSrc) SPDSS DSSF.CLOSE - LD A,(MemIndef) + LD A,(MemID) SPDSS DSSF.FREEMEM LD IX,(AdrCopyFile) RES FileHDR.B_MARK,(IX + FileHDR.Flag) - LD HL,(ECopyBytes) + LD HL,(CopyBytes) LD E,(IX + FileHDR.SizeBytes) LD D,(IX + FileHDR.SizeBytes + 1) OR A SBC HL,DE - LD (ECopyBytes),HL - LD HL,(ECopyBytes+2) + LD (CopyBytes),HL + LD HL,(CopyBytes+2) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) SBC HL,DE - LD (ECopyBytes+2),HL - LD HL,(ECopyFiles) + LD (CopyBytes+2),HL + LD HL,(CopyFiles) LD A,H OR L JR Z,CopyEnd DEC HL - LD (ECopyFiles),HL + LD (CopyFiles),HL LD A,H OR L JR Z,CopyEnd @@ -465,18 +478,18 @@ CopyEnd POP AF SETPORT WINSP.CPU3,,0 POP IY WINDOWCLOSE - LD HL,(ECopyFiles) - LD (IY + PANEL.MFL),L - LD (IY + PANEL.MFH),H - LD HL,(ECopyBytes) - LD (IY + PANEL.MBL1),L - LD (IY + PANEL.MBH1),H - LD HL,(ECopyBytes+2) - LD (IY + PANEL.MBL2),L - LD (IY + PANEL.MBH2),H + LD HL,(CopyFiles) + LD (IY + PANEL.FILES_MARK),L + LD (IY + PANEL.FILES_MARK + 1),H + LD HL,(CopyBytes) + LD (IY + PANEL.BYTES_MARK),L + LD (IY + PANEL.BYTES_MARK + 1),H + LD HL,(CopyBytes + 2) + LD (IY + PANEL.BYTES_MARK + 2),L + LD (IY + PANEL.BYTES_MARK + 3),H ; [ ] fat32 - LD A,(ECopyBytes+4) - LD (IY + PANEL.MBL3),A + LD A,(CopyBytes + 4) + LD (IY + PANEL.BYTES_MARK_H),A PUSH IY BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD IY,RightPanel @@ -484,7 +497,7 @@ CopyEnd POP AF LD IY,LeftPanel .L1 PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -496,7 +509,7 @@ CopyEnd POP AF POP IY PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -512,16 +525,16 @@ CopyError3: ; PUSH AF LD A,D SETPORT WINSP.CPU3,,0 - LD A,(FHandle2) + LD A,(FHandleDst) SPDSS DSSF.CLOSE CALL CopyErrorFileDelete POP AF CopyError2 PUSH AF - LD A,(FHandle1) + LD A,(FHandleSrc) SPDSS DSSF.CLOSE POP AF CopyError1 PUSH AF - LD A,(MemIndef) + LD A,(MemID) SPDSS DSSF.FREEMEM POP AF CALL DOSError @@ -530,11 +543,11 @@ CopyError1 PUSH AF CopyBreak POP HL POP AF SETPORT WINSP.CPU3,,0 - LD A,(FHandle2) + LD A,(FHandleDst) SPDSS DSSF.CLOSE - LD A,(FHandle1) + LD A,(FHandleSrc) SPDSS DSSF.CLOSE - LD A,(MemIndef) + LD A,(MemID) SPDSS DSSF.FREEMEM CALL CopyErrorFileDelete JP CopyEnd @@ -569,7 +582,7 @@ OverWrite CALL SetMouse W_BUTTON 208,38,56,14 W_TEXT 220,41,COLORP.HIGHGRAY,"Cancel" W_END - LD HL,(CopyTo) + LD HL,(CopyDst) LD DE,WorkBuffer SUB A .L1 LDI @@ -641,23 +654,23 @@ OverSkip CALL SetClock LD H,(IX + FileHDR.SizeBytes + 1) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) - CALL ConvLenToBank + CALL ConvBytes2Pages ADD HL,HL EX DE,HL ADC HL,HL EX DE,HL LD IX,ProcessAll - LD C,(IX + PROC.CURL1) - LD B,(IX + PROC.CURH1) + LD C,(IX + PROC.CURR_PAGE) + LD B,(IX + PROC.CURR_PAGE + 1) ADD HL,BC - LD (IX + PROC.CURL1),L - LD (IX + PROC.CURH1),H - LD C,(IX + PROC.CURL2) - LD B,(IX + PROC.CURH2) + LD (IX + PROC.CURR_PAGE),L + LD (IX + PROC.CURR_PAGE + 1),H + LD C,(IX + PROC.CURR_PAGE + 2) + LD B,(IX + PROC.CURR_PAGE + 3) EX DE,HL ADC HL,BC - LD (IX + PROC.CURL2),L - LD (IX + PROC.CURH2),H + LD (IX + PROC.CURR_PAGE + 2),L + LD (IX + PROC.CURR_PAGE + 3),H CALL PrnProcess LD HL,CloseFile1 EX (SP),HL @@ -666,31 +679,34 @@ OverSkip CALL SetClock OverExit INC SP INC SP LD IX,(AdrCopyFile) - BIT 0,(IX + 0x00) + BIT FileHDR.B_MARK,(IX + FileHDR.Flag) JP Z,CloseFile1 - LD A,(FHandle1) + LD A,(FHandleSrc) SPDSS DSSF.CLOSE - LD A,(MemIndef) + LD A,(MemID) SPDSS DSSF.FREEMEM POP IY JP CopyEnd ;-------------------------------------------------------------- -AdrCopyFile DW 0x0000 ; ⥫ ⥪饣 䠩 -CopyFrom DW 0x0000 ; 㤠 -CopyTo DW 0x0000 ; 㤠 -ECopyFiles DW 0x0000 ; - 㥬 䠩 -ECopyBytes DB 5 DUP 0 ; - 㥬 ⮢ +AdrCopyFile DW 0x0000 ; ⥫ ⥪饣 䠩/ +CopySrc DW 0x0000 ; 㤠 +CopyDst DW 0x0000 ; 㤠 +CopyFiles DW 0x0000 ; ⢮ 㥬 䠩 +CopyBytes DB 5 DUP 0 ; ⢮ 㥬 ⮢ OverWriteFlg DB 0x00 ; १ 䠩 -FreeBanks DW 0x0000 ; - ᢮ -ReadLen DD 0 ; ⠥ 䠩 -WriteLen DD 0 ; 뢠 䠩 -FHandle1 DB 0x00 ; 筨 -FHandle2 DB 0x00 ; ਥ -MemIndef DB 0x00 ; 䨪. ஢ +FreeBanks DW 0x0000 ; ⢮ ᢮ +ReadBytes DD 0 ; ⠥ 䠩 +WriteBytes DD 0 ; 뢠 䠩 +FHandleSrc DB 0x00 ; 筨 +FHandleDst DB 0x00 ; ਥ +MemID DB 0x00 ; 䨪. ஢ ;-------------------------------------------------------------- +; 室: ; DEHL - ⢮ +; 室: +; HL - ⢮ ࠭ ; 1028975 FB36F ; 231 E7 1 ; 59232 E760 4 @@ -700,7 +716,8 @@ MemIndef DB 0x00 ; ; 12652 316C 1 ; 14119 3727 1 ; 12546 3102 1 -ConvLenToBank LD A,H +ConvBytes2Pages: + LD A,H LD H,L LD L,0x00 SLA A @@ -722,7 +739,7 @@ ConvLenToBank LD A,H INC DE RET -PrnFromTo LD HL,(CopyFrom) +PrnFromTo LD HL,(CopySrc) LD DE,WorkBuffer SUB A .L1 LDI @@ -737,7 +754,7 @@ PrnFromTo LD HL,(CopyFrom) .L2 LD HL,(AdrCopyFile) INC HL CALL MakeDOSname - LD HL,(CopyTo) + LD HL,(CopyDst) LD DE,WorkBuffer+0x100 SUB A .L3 LDI @@ -769,34 +786,34 @@ PrnFromTo LD HL,(CopyFrom) JP PrnRangPathL NextProcess LD IX,ProcessAll - LD L,(IX + PROC.CURL1) - LD H,(IX + PROC.CURH1) + LD L,(IX + PROC.CURR_PAGE) + LD H,(IX + PROC.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURL1),L - LD (IX + PROC.CURH1),H + LD (IX + PROC.CURR_PAGE),L + LD (IX + PROC.CURR_PAGE + 1),H LD A,H OR L JR NZ,.L1 - LD L,(IX + PROC.CURL2) - LD H,(IX + PROC.CURH2) + LD L,(IX + PROC.CURR_PAGE + 2) + LD H,(IX + PROC.CURR_PAGE + 3) INC HL - LD (IX + PROC.CURL2),L - LD (IX + PROC.CURH2),H + LD (IX + PROC.CURR_PAGE + 2),L + LD (IX + PROC.CURR_PAGE + 3),H .L1 CALL PrnProcess LD IX,ProcessOne - LD L,(IX + PROC.CURL1) - LD H,(IX + PROC.CURH1) + LD L,(IX + PROC.CURR_PAGE) + LD H,(IX + PROC.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURL1),L - LD (IX + PROC.CURH1),H + LD (IX + PROC.CURR_PAGE),L + LD (IX + PROC.CURR_PAGE + 1),H LD A,H OR L JR NZ,.L2 - LD L,(IX + PROC.CURL2) - LD H,(IX + PROC.CURH2) + LD L,(IX + PROC.CURR_PAGE + 2) + LD H,(IX + PROC.CURR_PAGE + 3) INC HL - LD (IX + PROC.CURL2),L - LD (IX + PROC.CURH2),H + LD (IX + PROC.CURR_PAGE + 2),L + LD (IX + PROC.CURR_PAGE + 3),H .L2 JP PrnProcess ProcessAll DW 178 ; X @@ -808,7 +825,7 @@ ProcessAll DW 178 ; X DW 0 DW 0 ; 饥 DW 0 - DB COLORP.BLUE + COLORI.WHITE; 0x4F + DB COLORP.BLUE + COLORI.WHITE ProcessOne DW 178 ; X DW 120 ; Y @@ -828,8 +845,8 @@ PathLen DB 0x00 CurPath DB 0x81 DUP 0 ;[]==========================================================[] -ReNameR LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +ReNameR LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z SETPORT WINSP.Y_PORT,0xC0 GETPORT WINSP.CPU3 @@ -840,10 +857,10 @@ ReNameR LD A,(IY + PANEL.EFL) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU3,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR Z,ReNameNr @@ -957,7 +974,7 @@ RNfile EQU $ - STRLEN(" ") - 2 JR Z,ReName0 PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD DE,WorkBuffer PUSH DE @@ -1014,7 +1031,7 @@ ReName0 LD HL,CurName CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1023,8 +1040,8 @@ ReName0 LD HL,CurName CALL Z,PrnHScrBar POP AF CALL NZ,PrnVScrBar -ReName1 LD HL,LeftPanel + PANEL.CURRPATH - LD DE,RightPanel + PANEL.CURRPATH +ReName1 LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,RightPanel + PANEL.CURR_PATH ReName2 LD A,(DE) CP (HL) RET NZ @@ -1048,7 +1065,7 @@ ReName2 LD A,(DE) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1095,10 +1112,10 @@ ReNameDIR LD HL,Name SETPORT WINSP.CPU3,,0 EX AF,AF' JR Z,ReNameTree - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -1116,7 +1133,7 @@ ReNameTree BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD HL,LeftPanel JR NZ,.L1 LD HL,RightPanel -.L1 LD DE,PANEL.CURRPATH +.L1 LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -1189,8 +1206,8 @@ ReNameEx LD HL,Name SPDSS DSSF.CREATE,,0 POP IY JR C,ReNameC - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -1214,7 +1231,7 @@ ReNameT POP AF CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1232,7 +1249,7 @@ ReNameT POP AF CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL PrnVScrBar POP IY @@ -1245,7 +1262,7 @@ ReNameExt1 INC SP CALL SetInvert PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL PrnVScrBar IF TREE_REZID @@ -1266,7 +1283,7 @@ ReNameExt1 INC SP LD IY,LeftPanel .L1 PUSH IY POP HL - LD BC,PANEL.CURRPATH + LD BC,PANEL.CURR_PATH ADD HL,BC INC HL INC HL @@ -1286,7 +1303,7 @@ ReNameExit CALL ReadDIR CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1295,8 +1312,8 @@ ReNameExit CALL ReadDIR CALL Z,PrnHScrBar POP AF CALL NZ,PrnVScrBar - LD HL,LeftPanel + PANEL.CURRPATH - LD DE,RightPanel + PANEL.CURRPATH + LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,RightPanel + PANEL.CURR_PATH RNameE1 LD A,(DE) CP (HL) RET NZ @@ -1320,7 +1337,7 @@ RNameE1 LD A,(DE) CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1381,7 +1398,7 @@ MkDIRlp LD A,(HL) JR Z,MkDIR0 PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE PUSH IY SPDSS DSSF.CHDIR @@ -1423,7 +1440,7 @@ MkDIR0 LD HL,NewDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR NZ,.L2 LD IY,RightPanel -.L2 LD A,(IY + PANEL.EFH) +.L2 LD A,(IY + PANEL.FILES_ALL + 1) BIT 2,A JP NZ,MkDIRn0 GETPORT WINSP.CPU3 @@ -1440,7 +1457,7 @@ MkDIR0 LD HL,NewDIR LD HL,LeftPanel JR NZ,.L4 LD HL,RightPanel -.L4 LD DE,PANEL.CURRPATH +.L4 LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -1457,10 +1474,10 @@ MkDIR0 LD HL,NewDIR JR Z,.L5 DEC HL JR FnTree2 -FnTree1 LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) +FnTree1 LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -1519,8 +1536,8 @@ MkDIRend PUSH HL PUSH DE LD C,L LD B,H - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -1570,11 +1587,11 @@ MkDIRend PUSH HL DJNZ .L4 EX AF,AF' LD (DE),A - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) INC HL - LD (IY + PANEL.EFL),L - LD (IY + PANEL.EFH),H + LD (IY + PANEL.FILES_ALL),L + LD (IY + PANEL.FILES_ALL + 1),H LD HL,WorkBuffer PUSH IY SPDSS DSSF.CURDIR @@ -1596,8 +1613,8 @@ MkDIRend PUSH HL SPDSS DSSF.CREATE,,0 POP IY JR C,MkDIR2 - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -1621,7 +1638,7 @@ MkDIRn1 CALL PrintDIR CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1637,8 +1654,8 @@ MkDIRn1 CALL PrintDIR LD IY,LeftPanel .L1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR NZ,MkDIRn2 - LD HL,LeftPanel + PANEL.CURRPATH - LD DE,RightPanel + PANEL.CURRPATH + LD HL,LeftPanel + PANEL.CURR_PATH + LD DE,RightPanel + PANEL.CURR_PATH MkDIRrf LD A,(DE) CP (HL) JR NZ,MkDIRex @@ -1655,7 +1672,7 @@ MkDIRn2 CALL PrintDIR CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -1674,12 +1691,12 @@ MDIRLen DB 0x00 NewDIR DB 0x0D DUP 0x00 ;[]==========================================================[] -DeleteFilesR LD A,(IY + PANEL.EFL) - OR (IY + PANEL.EFH) +DeleteFilesR LD A,(IY + PANEL.FILES_ALL) + OR (IY + PANEL.FILES_ALL + 1) RET Z SETPORT WINSP.Y_PORT,0xC0 - LD A,(IY + PANEL.MFL) - OR (IY + PANEL.MFH) + LD A,(IY + PANEL.FILES_MARK) + OR (IY + PANEL.FILES_MARK + 1) JR NZ,DeleteMark GETPORT WINSP.CPU3 PUSH AF @@ -1689,10 +1706,10 @@ DeleteFilesR LD A,(IY + PANEL.EFL) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU3,,0 - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR Z,DelFile @@ -1780,7 +1797,7 @@ DeleteMain W_END PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD DE,WorkBuffer SUB A @@ -1852,36 +1869,36 @@ MakeDELname LD HL,(AdrDelFile) RET ;-------------------------------------------------------------- -DelSkip LD C,(IY + PANEL.MFL) - LD B,(IY + PANEL.MFH) +DelSkip LD C,(IY + PANEL.FILES_MARK) + LD B,(IY + PANEL.FILES_MARK + 1) LD A,B OR C JP Z,DelExit LD IX,(AdrDelFile) RES 0,(IX + 0x00) - LD L,(IY + PANEL.MBL1) - LD H,(IY + PANEL.MBH1) + LD L,(IY + PANEL.BYTES_MARK) + LD H,(IY + PANEL.BYTES_MARK + 1) LD E,(IX + FileHDR.SizeBytes) LD D,(IX + FileHDR.SizeBytes + 1) OR A SBC HL,DE - LD (IY + PANEL.MBL1),L - LD (IY + PANEL.MBH1),H - LD L,(IY + PANEL.MBL2) - LD H,(IY + PANEL.MBH2) + LD (IY + PANEL.BYTES_MARK),L + LD (IY + PANEL.BYTES_MARK + 1),H + LD L,(IY + PANEL.BYTES_MARK + 2) + LD H,(IY + PANEL.BYTES_MARK + 3) ; [ ] FAT32 - LD A,(IY + PANEL.MBL3) + LD A,(IY + PANEL.BYTES_MARK_H) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) SBC HL,DE ; [ ] fat32 SBC A,0 - LD (IY + PANEL.MBL3),A - LD (IY + PANEL.MBL2),L - LD (IY + PANEL.MBH2),H + LD (IY + PANEL.BYTES_MARK_H),A + LD (IY + PANEL.BYTES_MARK + 2),L + LD (IY + PANEL.BYTES_MARK + 3),H DEC BC - LD (IY + PANEL.MFL),C - LD (IY + PANEL.MFH),B + LD (IY + PANEL.FILES_MARK),C + LD (IY + PANEL.FILES_MARK + 1),B LD A,B OR C JP Z,DelExit @@ -1899,7 +1916,7 @@ DelDelete CALL SetClock JR Z,DelDel0 PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD DE,WorkBuffer PUSH DE @@ -1962,21 +1979,21 @@ DelAll BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) W_END PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD (DelFrom),HL LD IX,ProcessDel - LD L,(IY + PANEL.MFL) - LD H,(IY + PANEL.MFH) + LD L,(IY + PANEL.FILES_MARK) + LD H,(IY + PANEL.FILES_MARK + 1) LD A,H OR L JR NZ,.L1 INC HL -.L1 LD (IX + PROC.MAXL1),L - LD (IX + PROC.MAXH1),H +.L1 LD (IX + PROC.MAX_PAGES),L + LD (IX + PROC.MAX_PAGES + 1),H SUB A - LD (IX + PROC.MAXL2),A - LD (IX + PROC.MAXH2),A + LD (IX + PROC.MAX_PAGES + 2),A + LD (IX + PROC.MAX_PAGES + 3),A CALL InitProcess DeleteAllLp LD HL,0x0000 DelFrom EQU $-2 @@ -2026,42 +2043,42 @@ DelFrom EQU $-2 JP DelAllExit DelA1 LD IX,ProcessDel - LD L,(IX + PROC.CURL1) - LD H,(IX + PROC.CURH1) + LD L,(IX + PROC.CURR_PAGE) + LD H,(IX + PROC.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURL1),L - LD (IX + PROC.CURH1),H + LD (IX + PROC.CURR_PAGE),L + LD (IX + PROC.CURR_PAGE + 1),H CALL PrnProcess - LD C,(IY + PANEL.MFL) - LD B,(IY + PANEL.MFH) + LD C,(IY + PANEL.FILES_MARK) + LD B,(IY + PANEL.FILES_MARK + 1) LD A,B OR C JP Z,DelAllExit LD IX,(AdrDelFile) RES FileHDR.B_MARK,(IX + FileHDR.Flag) - LD L,(IY + PANEL.MBL1) - LD H,(IY + PANEL.MBH1) + LD L,(IY + PANEL.BYTES_MARK) + LD H,(IY + PANEL.BYTES_MARK + 1) LD E,(IX + FileHDR.SizeBytes) LD D,(IX + FileHDR.SizeBytes + 1) OR A SBC HL,DE - LD (IY + PANEL.MBL1),L - LD (IY + PANEL.MBH1),H - LD L,(IY + PANEL.MBL2) - LD H,(IY + PANEL.MBH2) + LD (IY + PANEL.BYTES_MARK),L + LD (IY + PANEL.BYTES_MARK + 1),H + LD L,(IY + PANEL.BYTES_MARK + 2) + LD H,(IY + PANEL.BYTES_MARK + 3) ; [ ] FAT32 - LD A,(IY + PANEL.MBL3) + LD A,(IY + PANEL.BYTES_MARK_H) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) SBC HL,DE ; [ ] fat32 SBC A,0 - LD (IY + PANEL.MBL3),A - LD (IY + PANEL.MBL2),L - LD (IY + PANEL.MBH2),H + LD (IY + PANEL.BYTES_MARK_H),A + LD (IY + PANEL.BYTES_MARK + 2),L + LD (IY + PANEL.BYTES_MARK + 3),H DEC BC - LD (IY + PANEL.MFL),C - LD (IY + PANEL.MFH),B + LD (IY + PANEL.FILES_MARK),C + LD (IY + PANEL.FILES_MARK + 1),B LD A,B OR C JP Z,DelAllExit @@ -2136,7 +2153,7 @@ DelTreeDIR1 LD A,(DeleteFlag) LD HL,LeftPanel JR NZ,.L3 LD HL,RightPanel -.L3 LD DE,PANEL.CURRPATH +.L3 LD DE,PANEL.CURR_PATH ADD HL,DE INC HL INC HL @@ -2185,10 +2202,10 @@ DlTree4 LD A,(HL) POP HL JR DelTree2 -DelTree1 LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) +DelTree1 LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -2211,8 +2228,8 @@ DelTree2 LD E,(HL) PUSH HL LD C,L LD B,H - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -2264,30 +2281,30 @@ DelTr1 SBC HL,BC JR C,DelTree3 JR NZ,DelTr1 .L1 SET 7,(HL) -DelTree3 LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) +DelTree3 LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) DEC HL - LD (IY + PANEL.EFL),L - LD (IY + PANEL.EFH),H - LD L,(IY + PANEL.FFL) - LD H,(IY + PANEL.FFH) - LD E,(IY + PANEL.CFL) - LD D,(IY + PANEL.CFH) + LD (IY + PANEL.FILES_ALL),L + LD (IY + PANEL.FILES_ALL + 1),H + LD L,(IY + PANEL.FIRST_FILE) + LD H,(IY + PANEL.FIRST_FILE + 1) + LD E,(IY + PANEL.CURR_FILE) + LD D,(IY + PANEL.CURR_FILE + 1) LD A,H OR L JR Z,DelTree4 DEC HL - LD (IY + PANEL.FFL),L - LD (IY + PANEL.FFH),H + LD (IY + PANEL.FIRST_FILE),L + LD (IY + PANEL.FIRST_FILE + 1),H ADD HL,DE - LD C,(IY + PANEL.EFL) - LD B,(IY + PANEL.EFH) + LD C,(IY + PANEL.FILES_ALL) + LD B,(IY + PANEL.FILES_ALL + 1) INC HL SBC HL,BC JR NC,DelTree4 INC DE -DelTree4 LD (IY + PANEL.CFL),E - LD (IY + PANEL.CFH),D +DelTree4 LD (IY + PANEL.CURR_FILE),E + LD (IY + PANEL.CURR_FILE + 1),D LD HL,WorkBuffer PUSH IY SPDSS DSSF.CURDIR @@ -2309,8 +2326,8 @@ DelTree4 LD (IY + PANEL.CFL),E SPDSS DSSF.CREATE,,0 POP IY JR C,DelDIR2 - LD L,(IY + PANEL.EFL) - LD H,(IY + PANEL.EFH) + LD L,(IY + PANEL.FILES_ALL) + LD H,(IY + PANEL.FILES_ALL + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -2333,7 +2350,7 @@ DelDIRn POP AF CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar LD A,(IY + PANEL.VIEWFLAG) @@ -2351,7 +2368,7 @@ DelDIRn POP AF CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL PrnVScrBar POP IY @@ -2364,7 +2381,7 @@ DeleteExt1 INC SP CALL SetInvert PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar CALL PrnVScrBar diff --git a/rez2_fnmisc.a80 b/rez2_fnmisc.a80 index de97883..d54270d 100644 --- a/rez2_fnmisc.a80 +++ b/rez2_fnmisc.a80 @@ -1,9 +1,9 @@ -; LAST UPDATE: 25.06.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]==========================================================[] -FileInfoR LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +FileInfoR LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ @@ -16,10 +16,10 @@ FileInfoR LD A,(IY+PANEL.EFL) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU3,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -131,7 +131,7 @@ FName EQU $ - STRLEN(" ") - 1 FAttrib EQU $ - STRLEN(" ") - 1 W_TEXT 10,44,COLORP.HIGHGRAY,"Len: " FLen EQU $ - STRLEN(" ") - 1 - W_TEXT 10,56,COLORP.HIGHGRAY,"Data: " + W_TEXT 10,56,COLORP.HIGHGRAY,"Date: " FData EQU $ - STRLEN(" ") - 1 FTime EQU $ - STRLEN(" ") - 1 W_TEXT 10,68,COLORP.HIGHGRAY,"First cluster: " @@ -162,8 +162,8 @@ FileInfoExt: FAtributs: DEFB "--ad-shr" ;[]==========================================================[] -PrintFileR LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +PrintFileR LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ @@ -176,10 +176,10 @@ PrintFileR LD A,(IY+PANEL.EFL) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU3,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ADD HL,HL @@ -236,7 +236,7 @@ PrintFileR LD A,(IY+PANEL.EFL) W_END PUSH IY POP HL - LD DE,PANEL.CURRPATH + LD DE,PANEL.CURR_PATH ADD HL,DE LD DE,WorkBuffer SUB A @@ -277,10 +277,10 @@ PrintFileR LD A,(IY+PANEL.EFL) OR L JR NZ,InitPrn INC E -InitPrn LD (IX+PROC.MAXL1),L - LD (IX+PROC.MAXH1),H - LD (IX+PROC.MAXL2),E - LD (IX+PROC.MAXH2),0x00 +InitPrn LD (IX + PROC.MAX_PAGES),L + LD (IX + PROC.MAX_PAGES + 1),H + LD (IX + PROC.MAX_PAGES + 2),E + LD (IX + PROC.MAX_PAGES + 3),0x00 CALL InitProcess LD HL,PrnFileName SPDSS DSSF.OPEN,,1 @@ -410,19 +410,19 @@ NxtPrnProc LD A,E PUSH DE PUSH BC LD IX,ProcessFPrn - LD L,(IX+PROC.CURL1) - LD H,(IX+PROC.CURH1) + LD L,(IX + PROC.CURR_PAGE) + LD H,(IX + PROC.CURR_PAGE + 1) INC HL - LD (IX+PROC.CURL1),L - LD (IX+PROC.CURH1),H + LD (IX + PROC.CURR_PAGE),L + LD (IX + PROC.CURR_PAGE + 1),H LD A,H OR L JR NZ,.L1 - LD L,(IX+PROC.CURL2) - LD H,(IX+PROC.CURH2) + LD L,(IX + PROC.CURR_PAGE + 2) + LD H,(IX + PROC.CURR_PAGE + 3) INC HL - LD (IX+PROC.CURL2),L - LD (IX+PROC.CURH2),H + LD (IX + PROC.CURR_PAGE + 2),L + LD (IX + PROC.CURR_PAGE + 3),H .L1 CALL PrnProcess POP BC POP DE diff --git a/rez2_fnsearch.a80 b/rez2_fnsearch.a80 index 0caf914..323efa9 100644 --- a/rez2_fnsearch.a80 +++ b/rez2_fnsearch.a80 @@ -1,9 +1,9 @@ -; LAST UPDATE: 27.03.2025 savelij +; LAST UPDATE: 24.07.2025 savelij ;[]==========================================================[] -QSearchR LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +QSearchR LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z SETPORT WINSP.Y_PORT,0xC0 LD HL,SearchN @@ -13,8 +13,8 @@ QSearchR LD A,(IY+PANEL.EFL) INC HL DJNZ .L1 LD (SrchLen),A - LD L,(IY+PANEL.XL) - LD H,(IY+PANEL.XH) + LD L,(IY+PANEL.X) + LD H,(IY+PANEL.X + 1) LD DE,0x000A ADD HL,DE LD (.SrchX1),HL @@ -144,10 +144,10 @@ FoundSFile PUSH HL CALL PrintInpLn POP HL EX DE,HL - LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) - LD C,(IY+PANEL.FFL) - LD B,(IY+PANEL.FFH) + LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) + LD C,(IY+PANEL.FIRST_FILE) + LD B,(IY+PANEL.FIRST_FILE + 1) ADD HL,BC SBC HL,DE EX DE,HL @@ -155,8 +155,8 @@ FoundSFile PUSH HL PUSH HL CALL ResInvert POP HL - LD C,(IY+PANEL.FPL) - LD B,(IY+PANEL.FPH) + LD C,(IY+PANEL.FILES_PAGE) + LD B,(IY+PANEL.FILES_PAGE + 1) LD DE,0x0000 EX DE,HL OR A @@ -169,12 +169,12 @@ FoundSFile PUSH HL SBC HL,BC JR NC,.L1 ADD HL,BC - LD (IY+PANEL.CFL),L - LD (IY+PANEL.CFH),H - LD C,(IY+PANEL.FFL) - LD B,(IY+PANEL.FFH) - LD (IY+PANEL.FFL),E - LD (IY+PANEL.FFH),D + LD (IY+PANEL.CURR_FILE),L + LD (IY+PANEL.CURR_FILE + 1),H + LD C,(IY+PANEL.FIRST_FILE) + LD B,(IY+PANEL.FIRST_FILE + 1) + LD (IY+PANEL.FIRST_FILE),E + LD (IY+PANEL.FIRST_FILE + 1),D EX DE,HL OR A SBC HL,BC @@ -183,7 +183,7 @@ FoundSFile PUSH HL CALL PrnFileInfo PUSH IY POP IX - LD DE,PANEL.BARXL + LD DE,PANEL.BAR_X ADD IX,DE LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK diff --git a/rez3_fnmark.a80 b/rez3_fnmark.a80 index 809f9c0..294df1e 100644 --- a/rez3_fnmark.a80 +++ b/rez3_fnmark.a80 @@ -1,9 +1,9 @@ -; LAST UPDATE: 02.06.2025 savelij +; LAST UPDATE: 25.07.2025 savelij ;[]==========================================================[] -MarkFileR LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) +MarkFileR LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ @@ -15,10 +15,10 @@ MarkFileR LD A,(IY+PANEL.EFL) LD A,(RAMPAGES.RIGHTPANEL) .L1 SETPORT WINSP.CPU3,,0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -64,10 +64,10 @@ UnSelectFile: LD IXL,0x00 .L2 SETPORT WINSP.CPU3,,0 SETPORT WINSP.Y_PORT,0xC0 - LD L,(IY+PANEL.FFL) - LD H,(IY+PANEL.FFH) - LD E,(IY+PANEL.CFL) - LD D,(IY+PANEL.CFH) + LD L,(IY+PANEL.FIRST_FILE) + LD H,(IY+PANEL.FIRST_FILE + 1) + LD E,(IY+PANEL.CURR_FILE) + LD D,(IY+PANEL.CURR_FILE + 1) ADD HL,DE ADD HL,HL ; *2 ADD HL,HL ; *4 @@ -85,25 +85,29 @@ UnSelectFile: LD IXL,0x00 POP HL BIT DIR.B_Dir,C ; ? IF MARK_DIR - CALL NZ,COUNTING_DIR + CALL NZ,COUNTING_DIR ; ७ ࠧ ELSE - JR NZ,.MrFile1 + JR NZ,.MrFile1 ; ४ਨ ஢ 㬥, ⮫쪮 䠩 ENDIF ; 䠩 LD B,(HL) ; ஥ ﭨ ⪨ 䠩 LD A,IXL LD (HL),A ; ﭨ ⪨ 䠩 + LD A,C LD DE,WorkBuffer PUSH BC LD BC,FileHDR.SIZE LDIR + BIT DIR.B_Dir,A ; 䠩 + JR Z,.L8 IF MARK_DIR +; 㥬 ࠧ ࠧ LD HL,COUNTING_DIR.FILES_SIZE LD DE,WorkBuffer + FileHDR.SizeBytes LD BC,DWORD LDIR ENDIF - POP BC +.L8 POP BC .MrFile1 POP AF SETPORT WINSP.CPU3,,0 IF MARK_DIR = 0 @@ -116,8 +120,8 @@ UnSelectFile: LD IXL,0x00 BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) JR NZ,.MarkFull ; ⪮ 䠩 - LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) + LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) LD E,L LD D,H ADD HL,HL @@ -149,8 +153,8 @@ UnSelectFile: LD IXL,0x00 JR .MarkExit2 ; 䠩 -.MarkFull LD L,(IY+PANEL.CFL) - LD H,(IY+PANEL.CFH) +.MarkFull LD L,(IY+PANEL.CURR_FILE) + LD H,(IY+PANEL.CURR_FILE + 1) ADD HL,HL ADD HL,HL ADD HL,HL @@ -173,57 +177,57 @@ UnSelectFile: LD IXL,0x00 JR Z,.MarkExit2 ; ⠭ 롮 䠩 .MarkExit1 LD IX,WorkBuffer - LD L,(IY + PANEL.MFL) - LD H,(IY + PANEL.MFH) + LD L,(IY + PANEL.FILES_MARK) + LD H,(IY + PANEL.FILES_MARK + 1) INC HL - LD (IY + PANEL.MFL),L - LD (IY + PANEL.MFH),H ; ⢠ 祭 䠩 + LD (IY + PANEL.FILES_MARK),L + LD (IY + PANEL.FILES_MARK + 1),H ; ⢠ 祭 䠩 LD L,(IX + FileHDR.SizeBytes) LD H,(IX + FileHDR.SizeBytes + 1) - LD E,(IY + PANEL.MBL1) - LD D,(IY + PANEL.MBH1) + LD E,(IY + PANEL.BYTES_MARK) + LD D,(IY + PANEL.BYTES_MARK + 1) XOR A ; [ ] fat32 ADD HL,DE - LD (IY + PANEL.MBL1),L - LD (IY + PANEL.MBH1),H ; ࠧ 祭 䠩 15-0 + LD (IY + PANEL.BYTES_MARK),L + LD (IY + PANEL.BYTES_MARK + 1),H ; ࠧ 祭 䠩 15-0 LD L,(IX + FileHDR.SizeBytes + 2) LD H,(IX + FileHDR.SizeBytes + 3) ; [ ] fat32 - LD E,(IY + PANEL.MBL2) - LD D,(IY + PANEL.MBH2) + LD E,(IY + PANEL.BYTES_MARK + 2) + LD D,(IY + PANEL.BYTES_MARK + 3) ADC HL,DE ; [ ] fat32 - ADC A,(IY + PANEL.MBL3) - LD (IY + PANEL.MBL3),A ; ࠧ 祭 䠩 32-39 - LD (IY + PANEL.MBL2),L - LD (IY + PANEL.MBH2),H ; ࠧ 祭 䠩 31-15 + ADC A,(IY + PANEL.BYTES_MARK_H) + LD (IY + PANEL.BYTES_MARK_H),A ; ࠧ 祭 䠩 32-39 + LD (IY + PANEL.BYTES_MARK + 2),L + LD (IY + PANEL.BYTES_MARK + 3),H ; ࠧ 祭 䠩 31-15 RET ; ⨥ 롮 䠩 .MarkExit2 LD IX,WorkBuffer - LD L,(IY + PANEL.MFL) - LD H,(IY + PANEL.MFH) + LD L,(IY + PANEL.FILES_MARK) + LD H,(IY + PANEL.FILES_MARK + 1) DEC HL - LD (IY + PANEL.MFL),L - LD (IY + PANEL.MFH),H - LD L,(IY + PANEL.MBL1) - LD H,(IY + PANEL.MBH1) + LD (IY + PANEL.FILES_MARK),L + LD (IY + PANEL.FILES_MARK + 1),H + LD L,(IY + PANEL.BYTES_MARK) + LD H,(IY + PANEL.BYTES_MARK + 1) LD E,(IX + FileHDR.SizeBytes) LD D,(IX + FileHDR.SizeBytes + 1) XOR A SBC HL,DE - LD (IY + PANEL.MBL1),L - LD (IY + PANEL.MBH1),H - LD L,(IY + PANEL.MBL2) - LD H,(IY + PANEL.MBH2) + LD (IY + PANEL.BYTES_MARK),L + LD (IY + PANEL.BYTES_MARK + 1),H + LD L,(IY + PANEL.BYTES_MARK + 2) + LD H,(IY + PANEL.BYTES_MARK + 3) LD E,(IX + FileHDR.SizeBytes + 2) LD D,(IX + FileHDR.SizeBytes + 3) SBC HL,DE ; [ ] fat32 - ADC A,(IY + PANEL.MBL3) - LD (IY + PANEL.MBL3),A - LD (IY + PANEL.MBL2),L - LD (IY + PANEL.MBH2),H + ADC A,(IY + PANEL.BYTES_MARK_H) + LD (IY + PANEL.BYTES_MARK_H),A + LD (IY + PANEL.BYTES_MARK + 2),L + LD (IY + PANEL.BYTES_MARK + 3),H RET ;[]==========================================================[] @@ -238,8 +242,8 @@ MarkGroupRN: LD HL,SetInvert PUSH HL LD A,0x01 SelectGroup: LD (SelMode),A - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ @@ -301,13 +305,13 @@ MarkGNext LD DE,SelMask EX AF,AF' ; [ ] fat32 EXX - LD L,(IY+PANEL.MBL1) - LD H,(IY+PANEL.MBH1) - LD E,(IY+PANEL.MBL2) - LD D,(IY+PANEL.MBH2) - LD A,(IY+PANEL.MBL3) ; [ ] FAT32 - LD C,(IY+PANEL.MFL) - LD B,(IY+PANEL.MFH) + LD L,(IY+PANEL.BYTES_MARK) + LD H,(IY+PANEL.BYTES_MARK + 1) + LD E,(IY+PANEL.BYTES_MARK + 2) + LD D,(IY+PANEL.BYTES_MARK + 3) + LD A,(IY+PANEL.BYTES_MARK_H) ; [ ] FAT32 + LD C,(IY+PANEL.FILES_MARK) + LD B,(IY+PANEL.FILES_MARK + 1) EXX EX AF,AF' ; [ ] fat32 PUSH IY @@ -360,13 +364,13 @@ Select8: LD DE,FileHDR.SIZE EX AF,AF' POP IY EXX - LD (IY+PANEL.MBL1),L - LD (IY+PANEL.MBH1),H - LD (IY+PANEL.MBL2),E - LD (IY+PANEL.MBH2),D - LD (IY+PANEL.MBL3),A ; [ ] FAT32 - LD (IY+PANEL.MFL),C - LD (IY+PANEL.MFH),B + LD (IY+PANEL.BYTES_MARK),L + LD (IY+PANEL.BYTES_MARK + 1),H + LD (IY+PANEL.BYTES_MARK + 2),E + LD (IY+PANEL.BYTES_MARK + 3),D + LD (IY+PANEL.BYTES_MARK_H),A ; [ ] FAT32 + LD (IY+PANEL.FILES_MARK),C + LD (IY+PANEL.FILES_MARK + 1),B EXX POP AF SETPORT WINSP.CPU3,,0 @@ -463,8 +467,8 @@ SMask21 LD (DE),A SelectAllR: CALL ResInvert SelectAllRN: LD HL,SetInvert PUSH HL - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ @@ -515,22 +519,22 @@ SelectAllRN: LD HL,SetInvert POP AF SETPORT WINSP.CPU3,,0 EXX - LD E,(IY+PANEL.MFL) - LD D,(IY+PANEL.MFH) + LD E,(IY+PANEL.FILES_MARK) + LD D,(IY+PANEL.FILES_MARK + 1) OR A SBC HL,DE RET Z ADD HL,DE - LD (IY+PANEL.MFL),L - LD (IY+PANEL.MFH),H + LD (IY+PANEL.FILES_MARK),L + LD (IY+PANEL.FILES_MARK + 1),H EXX - LD (IY+PANEL.MBL1),L - LD (IY+PANEL.MBH1),H - LD (IY+PANEL.MBL2),E - LD (IY+PANEL.MBH2),D + LD (IY+PANEL.BYTES_MARK),L + LD (IY+PANEL.BYTES_MARK + 1),H + LD (IY+PANEL.BYTES_MARK + 2),E + LD (IY+PANEL.BYTES_MARK + 3),D ; [ ] FAT32 EX AF,AF' - LD (IY+PANEL.MBL3),A + LD (IY+PANEL.BYTES_MARK_H),A CALL PrintDIR JP PrnFileInfo @@ -538,19 +542,19 @@ SelectAllRN: LD HL,SetInvert UnSelectAllR: CALL ResInvert UnSelectAllRN: LD HL,SetInvert PUSH HL - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ - LD A,(IY+PANEL.MFL) - OR (IY+PANEL.MFH) + LD A,(IY+PANEL.FILES_MARK) + OR (IY+PANEL.FILES_MARK + 1) RET Z PUSH IY POP HL - LD BC,PANEL.MFL + LD BC,PANEL.FILES_MARK ADD HL,BC - LD B,PANEL.FILEMASK - PANEL.MFL + LD B,PANEL.FILE_MASK - PANEL.FILES_MARK .L2 LD (HL),0 INC HL DJNZ .L2 @@ -580,8 +584,8 @@ UnSelA1: RES 0,(HL) InvertSelectR: CALL ResInvert InvertSelectRN: LD HL,SetInvert PUSH HL - LD A,(IY+PANEL.EFL) - OR (IY+PANEL.EFH) + LD A,(IY+PANEL.FILES_ALL) + OR (IY+PANEL.FILES_ALL + 1) RET Z BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) RET NZ @@ -599,13 +603,13 @@ InvertSelectRN: LD HL,SetInvert LD B,0x00 EX AF,AF' ; [ ] fat32 EXX - LD L,(IY + PANEL.MBL1) - LD H,(IY + PANEL.MBH1) - LD E,(IY + PANEL.MBL2) - LD D,(IY + PANEL.MBH2) - LD A,(IY + PANEL.MBL3) ; [ ] FAT32 - LD C,(IY + PANEL.MFL) - LD B,(IY + PANEL.MFH) + LD L,(IY + PANEL.BYTES_MARK) + LD H,(IY + PANEL.BYTES_MARK + 1) + LD E,(IY + PANEL.BYTES_MARK + 2) + LD D,(IY + PANEL.BYTES_MARK + 3) + LD A,(IY + PANEL.BYTES_MARK_H) ; [ ] FAT32 + LD C,(IY + PANEL.FILES_MARK) + LD B,(IY + PANEL.FILES_MARK + 1) EXX EX AF,AF' ; [ ] fat32 .loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE Dir @@ -624,13 +628,13 @@ InvertSelectRN: LD HL,SetInvert SETPORT WINSP.CPU3,,0 EX AF,AF' ; [ ] fat32 EXX - LD (IY + PANEL.MBL1),L - LD (IY + PANEL.MBH1),H - LD (IY + PANEL.MBL2),E - LD (IY + PANEL.MBH2),D - LD (IY + PANEL.MBL3),A ; [ ] FAT32 - LD (IY + PANEL.MFL),C - LD (IY + PANEL.MFH),B + LD (IY + PANEL.BYTES_MARK),L + LD (IY + PANEL.BYTES_MARK + 1),H + LD (IY + PANEL.BYTES_MARK + 2),E + LD (IY + PANEL.BYTES_MARK + 3),D + LD (IY + PANEL.BYTES_MARK_H),A ; [ ] FAT32 + LD (IY + PANEL.FILES_MARK),C + LD (IY + PANEL.FILES_MARK + 1),B EXX LD A,B OR A @@ -677,13 +681,25 @@ SUB_SIZE: EX AF,AF' ; [ ] fat32 IF MARK_DIR ; ࠧ ⬥祭 ४ਨ -COUNTING_DIR PUSH IX +; HL - ⥫ ࠭ +COUNTING_DIR + +.OLDPATH EQU WorkBuffer + 0x300 ; ࠭ ⥪騩 +.CURRPATH EQU WorkBuffer + 0x200 ; ६ ⥪騩 + + PUSH IX PUSH IY PUSH HL PUSH BC GETPORT WINSP.CPU3 PUSH AF 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 LD H,A LD L,A @@ -694,7 +710,7 @@ COUNTING_DIR PUSH IX LD (.CURR_DIRNAME),HL ; ࠭ ⥪饣 SPDSS DSSF.CURDISK - LD HL,WorkBuffer + 0x300 ; ࠭ + LD HL,.OLDPATH ; ࠭ ADD A,'A' LD (HL),A INC HL @@ -702,7 +718,7 @@ COUNTING_DIR PUSH IX INC HL SPDSS DSSF.CURDIR POP DE - JR C,.END_COUNT + JP C,.END_COUNT ; 室 ४ LD HL,FileHDR.Name ADD HL,DE @@ -751,7 +767,7 @@ COUNTING_DIR PUSH IX ; ⥪饣 .END_COUNT POP AF SETPORT WINSP.CPU3,,0 - LD HL,WorkBuffer + 0x300 ; ࠭ + LD HL,.OLDPATH ; ࠭ SPDSS DSSF.CHDIR POP BC POP HL @@ -782,7 +798,7 @@ COUNTING_DIR PUSH IX .SP1 PUSH IX SPDSS DSSF.CHDIR SPDSS DSSF.CURDISK - LD HL,WorkBuffer + 0x200 + LD HL,.CURRPATH ADD A,'A' LD (HL),A INC HL @@ -846,7 +862,7 @@ COUNTING_DIR PUSH IX DIR.M_ReadOnly + \ DIR.M_Dir .FFF1 LD HL,.FILES_MASK - LD DE,WorkBuffer + 0x300 + LD DE,.OLDPATH PUSH DE PUSH IX SPDSS DSSF.F_FIRST,0 @@ -855,7 +871,7 @@ COUNTING_DIR PUSH IX RET ; ᫥饣 ⥫ -.F_NEXT LD DE,WorkBuffer + 0x300 +.F_NEXT LD DE,.OLDPATH PUSH DE PUSH IX SPDSS DSSF.F_NEXT @@ -869,7 +885,208 @@ COUNTING_DIR PUSH IX .DIR_NAME DZ " " .CURR_DIRNAME DW 0 +; ࠧ ४ਨ +; 室: +; HL - ⥫ ࠭ +; 室: +; BCDE' - ࠧ GetDirSizeR CALL COUNTING_DIR 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 + +; C:/DEV/ +; /CAMEL401 +; /DEMON +; /MASM80 +; /OASM028 +; /SOLID +; /DOC +; /EXAMPLES +; /INCLUDE +; /SRC +; /CLIB +; /BUILD +; /SPFORTH +; /F83 +; /F99 +; /TASM diff --git a/rez3_fnnext.a80 b/rez3_fnnext.a80 index 3c4c0d0..b2f9470 100644 --- a/rez3_fnnext.a80 +++ b/rez3_fnnext.a80 @@ -1,43 +1,28 @@ -; LAST UPDATE: 11.03.2025 savelij +; LAST UPDATE: 18.07.2025 savelij ;[]==========================================================[] -InitExtention: ;[ ] 07/10/23 - ; LD (InitExt.path),HL - ; EX HL,DE - ; - LD HL,.ExtName1 +InitExtention: LD HL,INIFILES.ExtName1 LD DE,fn_ext CALL InitExt - LD HL,.ExtName2 + LD HL,INIFILES.ExtName2 LD DE,fnview_ext CALL InitExt - LD HL,.ExtName3 + LD HL,INIFILES.ExtName3 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 -;[ ] 07/10/23 -; .path+1: LD DE,0 -; CALL CopyString -; LD HL,FlexDIRECTORY SPDSS DSSF.OPEN,,1 RET C - LD (ExtHandle),A + LD (.ExtHandle),A LD HL,WorkBuffer LD DE,WorkBuffer_Size SPDSS DSSF.READ RET C OR A RET P - LD A,(ExtHandle) + LD A,0 +.ExtHandle EQU $-1 PUSH DE SPDSS DSSF.CLOSE POP BC @@ -51,8 +36,6 @@ InitExt: LD (.EXTdata),DE JR NC,.loop RET -ExtHandle: DEFB 0x00 - InitExtLine: LD (.InExtSv),DE SUB A LD (DE),A @@ -217,3 +200,8 @@ InitExtLine: LD (.InExtSv),DE LD (HL),D POP HL JR .L5 + +INIFILES +.ExtName1: DZ FILENAME.FN_EXT +.ExtName2: DZ FILENAME.FNVIEW_EXT +.ExtName3: DZ FILENAME.FNEDIT_EXT