diff --git a/build.bat b/build.bat index 5c74a2d..c2f1e68 100644 --- a/build.bat +++ b/build.bat @@ -18,9 +18,9 @@ asl -U -L -C -x -olist tmp\fnexeboot.lst -i %includes% -D NO_EDIT,NO_VIEW,NO_HEL p2bin fn_exe_boot.p tmp\fn.exe -r $-$ -k rem Flex Navigator Plugins -rem cd plugins -rem call build_all -rem cd .. +cd plugins +call build_all +cd .. copy /Y /B tmp\fn.exe fn\fn.exe copy /Y /B plugins\*.flx fn\flx diff --git a/docs/fn_api_0.5.txt b/docs/fn_api_0.5.txt index 8c8d2da..ec8bff7 100644 --- a/docs/fn_api_0.5.txt +++ b/docs/fn_api_0.5.txt @@ -1,7 +1,7 @@ []========================================================================[] * * * Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins * -* doc v0.5 от 26.07.2025 (в процессе) * +* doc v0.5 от 02.08.2025 * * * []========================================================================[] @@ -137,7 +137,8 @@ []------------------------------------------------------------------------[] - JUMPS.InvertRectan - процедура замены цвета прямоугольной плоскости + JUMPS.ReplaceColorRectan - процедура замены цвета прямоугольной + плоскости на вход: HL - x координата @@ -156,7 +157,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnTxtLnIFF - процедура вывода текстовых строк на графический + JUMPS.PrintTxtLine_IFF - процедура вывода текстовых строк на графический экран 640x256 в режиме размерного по X шрифта на вход: @@ -170,7 +171,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnTxtLnNorm - процедура вывода текстовых строк на графический + JUMPS.PrintTxtLine - процедура вывода текстовых строк на графический экран 640x256 на вход: @@ -184,8 +185,8 @@ []------------------------------------------------------------------------[] - JUMPS.PrnTxtLnNormC - процедура вывода текстовых строк на графический - экран 640x256 с известным числом символов + JUMPS.PrintTxtLineNumsChar - процедура вывода текстовых строк на + графический экран 640x256 с известным числом символов на вход: HL - адрес текстовой строки @@ -199,7 +200,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnRangPathL - процедура вывода досовских путей на графический + JUMPS.PrintPathLeft - процедура вывода досовских путей на графический экран 640x256 в режиме размерного по X шрифта, прижатых к левому краю ( |-> ) @@ -218,7 +219,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnRangPathR - процедура вывода досовских путей на графический + JUMPS.PrintPathRight - процедура вывода досовских путей на графический экран 640x256 в режиме размерного по X шрифта, прижатых к правому краю ( <-| ) @@ -237,7 +238,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnRangPathC - процедура вывода досовских путей на графический + JUMPS.PrintPathCentr - процедура вывода досовских путей на графический экран 640x256 в режиме размерного по X шрифта, отцентрированных относительно краёв ( <-|-> ) @@ -278,8 +279,8 @@ +0C ... сама строка процедуры для таблицы элементов экрана: - JUMPS.InpLnExtN - процедура нормального выхода из редакции - JUMPS.InpLnExtC - процедура выхода из редакции по cancel + JUMPS.InputLineExitOk - процедура нормального выхода из редакции + JUMPS.InputLineExitCancel - процедура выхода из редакции по cancel (восстанавливает изначальную строку) []------------------------------------------------------------------------[] @@ -317,7 +318,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnHScrBar - процедура печати горизонтального скроллбара + JUMPS.DrawHScrollBar - процедура вывода горизонтального скроллбара на вход: IX - адрес описателя скроллбара (см. выше) @@ -326,7 +327,7 @@ []------------------------------------------------------------------------[] - JUMPS.PrnVScrBar - процедура печати вертикального скроллбара + JUMPS.DrawVScrollBar - процедура печати вертикального скроллбара на вход: IX - адрес описателя скроллбара (см. выше) @@ -335,7 +336,7 @@ []------------------------------------------------------------------------[] - JUMPS.InitProcess - процедура инициализации описателя процессбара + JUMPS.InitProgressBar - процедура инициализации описателя прогрессбара на вход: IX - адрес описателя процессбара @@ -346,16 +347,17 @@ +00 (2) X позиция процессбара (0-639) +02 (2) Y позиция процессбара (0-255) +04 (2) длина процессбара - +06 (2) коэффициент для процесса (инициализируется в InitProcess) - +08 (2) коррекция коэфициента (инициализируется в InitProcess) - +10 (4) максимум (инициализируется в InitProcess) - +14 (4) текущее (инициализируется в InitProcess) + +06 (2) коэффициент для процесса (инициализируется в + InitProgressBar) + +08 (2) коррекция коэфициента (инициализируется в InitProgressBar) + +10 (4) максимум (инициализируется в InitProgressBar) + +14 (4) текущее (инициализируется в InitProgressBar) +18 (1) цвет процессбара (d7-d4 цвет background, d3-d0 цвет foreground) []------------------------------------------------------------------------[] - JUMPS.PrnProcess - процедура печати процессбара + JUMPS.DrawProgressBar - процедура печати прогрессбара на вход: IX - адрес описателя процессбара (см. выше) @@ -369,8 +371,8 @@ []------------------------------------------------------------------------[] - JUMPS.ResFire - процедура ожидания, пока все кнопки мыши не будут - отпущены + JUMPS.WaitUnpressMouse - процедура ожидания, пока все кнопки мыши не + будут отпущены на вход: - @@ -379,7 +381,7 @@ []------------------------------------------------------------------------[] - JUMPS.TestCoords - процедура проверки координат мыши по таблице + JUMPS.CheckCoordsMouse - процедура проверки координат мыши по таблице элементов экрана на вход: @@ -388,10 +390,10 @@ - таблица элементов зкрана: - +00 (2) левая x координата элемента - +02 (2) правая x координата элемента - +04 (2) верхняя y координата элемента - +06 (2) нижняя y координата элемента + +00 (2) левая X координата элемента + +02 (2) правая X координата элемента + +04 (2) верхняя Y координата элемента + +06 (2) нижняя Y координата элемента +08 (2) флаги элемента +10 (2) адрес обработчика при не нажатом огне +12 (2) адрес обработчика при нажатом огне (левая кнопка) @@ -434,24 +436,24 @@ []------------------------------------------------------------------------[] - JUMPS.SetCMOSPrint - процедура включения печати даты/время из CMOS + JUMPS.CMOSPrintDateTime - процедура печати на экране даты/время из CMOS на вход: - - будет описано позднее + HL - X позиция вывода времени + DE - Y позиция вывода времени + B - цвет вывода времени + HL' - X позиция вывода даты + DE' - Y позиция вывода даты + B' - цвет вывода даты + A - формат вывода месяца в дате + 1 - месяц выводится числом + 2 - месяц выводится текстом, + число выводится без ведущего нуля на выход: - []------------------------------------------------------------------------[] - JUMPS.ResCMOSPrint - процедура выключения печати даты/время из CMOS - - на вход: - - будет описано позднее - на выход: - - - -[]------------------------------------------------------------------------[] - - JUMPS.SetClock - процедура установки курсора мыши в часы + JUMPS.PointerMouseClock - процедура установки курсора мыши в часы на вход: - @@ -460,7 +462,8 @@ []------------------------------------------------------------------------[] - JUMPS.SetMouse - процедура установки курсора мыши в нормальный курсор + JUMPS.PointerMousePointer - процедура установки курсора мыши в + нормальный курсор на вход: - @@ -474,8 +477,8 @@ []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt40 - процедура конвертации беззнакового числа - 40 bit в текст + JUMPS.ConvertNumbers_40b - процедура конвертации беззнакового числа + 40 bit в текст с удалением ведущих нулей. на входе: ABCHL - число @@ -484,7 +487,7 @@ []------------------------------------------------------------------------[] - JUMPS.MoveBytes - процедура быстрого копирования памяти с помощью + JUMPS.MoveBytesInc - процедура быстрого копирования памяти с помощью акселлератора с увеличением адресов на вход: @@ -497,7 +500,7 @@ []------------------------------------------------------------------------[] - JUMPS.MoveBytesUp - процедура быстрого копирования памяти с помощью + JUMPS.MoveBytesDec - процедура быстрого копирования памяти с помощью акселлератора с уменьшением адресов на вход: @@ -510,7 +513,7 @@ []------------------------------------------------------------------------[] - JUMPS.Mult8 - процедура беззнакового умножения + JUMPS.Mul_8X8_16b - процедура беззнакового умножения 8 * 8 bit = 16 bit на вход: @@ -520,7 +523,7 @@ []------------------------------------------------------------------------[] - JUMPS.Mult16X8 - процедура беззнакового умножения + JUMPS.Mul_16X8_24b - процедура беззнакового умножения 16 * 8 bit = 24 bit на вход: @@ -530,7 +533,7 @@ []------------------------------------------------------------------------[] - JUMPS.Mult16 - процедура беззнакового умножения + JUMPS.Mul_16X16_16b - процедура беззнакового умножения 16 * 16 bit = 16 bit на вход: @@ -540,27 +543,27 @@ []------------------------------------------------------------------------[] - JUMPS.Mult16X16 - процедура беззнакового умножения + JUMPS.Mul_16X16_32b - процедура беззнакового умножения 16 * 16 bit = 32 bit на вход: DE * BC на выход: - HL, DE - результат + HLDE - результат []------------------------------------------------------------------------[] - JUMPS.Mult32 - процедура беззнакового умножения + JUMPS.Mul_32X16_32b - процедура беззнакового умножения 32 * 16 bit = 32 bit на вход: - HL, DE * BC + HLDE * BC на выход: - HL, DE - результат + HLDE - результат []------------------------------------------------------------------------[] - JUMPS.Divis16X16 - процедура беззнакового деления + JUMPS.Div_16X16_16b_16b - процедура беззнакового деления 16 / 16 bit = 16.16 bit на вход: @@ -571,52 +574,52 @@ []------------------------------------------------------------------------[] - JUMPS.Divis24X16 - процедура беззнакового деления + JUMPS.Div_24X16_8b_16b - процедура беззнакового деления 24 / 16 bit = 8.16 bit на вход: - HL, C / DE + HLC / DE на выход: A - результат HL - остаток []------------------------------------------------------------------------[] - JUMPS.Divis32X16 - процедура беззнакового деления + JUMPS.Div_32X16_16b_16b - процедура беззнакового деления 32 / 16 bit = 16.16 bit на вход: - HL, DE / BC + HLDE / BC на выход: DE - результат HL - остаток []------------------------------------------------------------------------[] - JUMPS.Divis32 - процедура беззнакового деления + JUMPS.Div_32X16_32b_16b - процедура беззнакового деления 32 / 16 bit = 32.16 bit на вход: - HL, DE / BC + HLDE / BC на выход: HL, DE - результат BC - остаток []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt32 - процедура конвертации беззнакового числа - 32 bit в текст + JUMPS.ConvertNumbers_32b - процедура конвертации беззнакового числа + 32 bit в текст с удалением ведущих нулей. на вход: - BC, HL - число 32 bit + BCHL - число 32 bit DE - адрес буфера на выход: DE - адрес следующего байта за числом []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt16 - процедура конвертации беззнакового числа - 16 bit в текст + JUMPS.ConvertNumbers_16b - процедура конвертации беззнакового числа + 16 bit в текст с удалением ведущих нулей. на вход: HL - число 16 bit @@ -626,8 +629,8 @@ []------------------------------------------------------------------------[] - JUMPS.ConvNumTxt8 - процедура конвертации беззнакового числа - 8 bit в текст + JUMPS.ConvertNumbers_8b- процедура конвертации беззнакового числа + 8 bit в текст с удалением ведущих нулей. на вход: A - число 8 bit @@ -637,18 +640,18 @@ []------------------------------------------------------------------------[] - JUMPS.ConvTxtNum32 - процедура конвертации текста в беззнаковое + JUMPS.atoi_32b - процедура конвертации текста в беззнаковое число 32 bit на вход: DE - адрес текста (конец строки - 0) на выход: - HL, IX - число + HLIX - число C flag - ошибка []------------------------------------------------------------------------[] - JUMPS.ConvTxtNum16 - процедура конвертации текста в беззнаковое + JUMPS.atoi_16b - процедура конвертации текста в беззнаковое число 16 bit на вход: diff --git a/docs/history.txt b/docs/history.txt index ce19b20..4a49b96 100644 --- a/docs/history.txt +++ b/docs/history.txt @@ -1,4 +1,12 @@ +02.08.2025 +FlexNavigator 1.16.02 +- переделано отображение даты/времени, в режиме 1 (формат 02.08.2025) + неправильно конвертило год. +- обновлено описание Flex Navigator API до версии 0.5. +- удален один джамп из таблицы за ненадобностью. +- большое перименование меток, пересборка всего для проверки. + 29.07.2025 FileEditor.flx 1.10 - устранено перепутанные кнопки для нажатий мышью для F7 и F9. diff --git a/fn/flx/calc.flx b/fn/flx/calc.flx index a2a85c0..756f11c 100644 Binary files a/fn/flx/calc.flx and b/fn/flx/calc.flx differ diff --git a/fn/flx/date.flx b/fn/flx/date.flx index 80d760e..b31e679 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 3827b03..dc51035 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 e1a623f..125dd44 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 f66d557..abbe239 100644 Binary files a/fn/flx/help.flx and b/fn/flx/help.flx differ diff --git a/fn/fn.exe b/fn/fn.exe index edcbf2b..e7c3370 100644 Binary files a/fn/fn.exe and b/fn/fn.exe differ diff --git a/fn/history.txt b/fn/history.txt index ce19b20..4a49b96 100644 --- a/fn/history.txt +++ b/fn/history.txt @@ -1,4 +1,12 @@ +02.08.2025 +FlexNavigator 1.16.02 +- переделано отображение даты/времени, в режиме 1 (формат 02.08.2025) + неправильно конвертило год. +- обновлено описание Flex Navigator API до версии 0.5. +- удален один джамп из таблицы за ненадобностью. +- большое перименование меток, пересборка всего для проверки. + 29.07.2025 FileEditor.flx 1.10 - устранено перепутанные кнопки для нажатий мышью для F7 и F9. diff --git a/fn_const.a80 b/fn_const.a80 index 0c24ef0..c0e7450 100644 --- a/fn_const.a80 +++ b/fn_const.a80 @@ -1,5 +1,10 @@ -; LAST UPDATE: 26.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij + +NUM_PAGES_FN EQU 7 ; количество страниц для работы FN +DateMonthFormat ; формат вывод месяца в дате +.Digit EQU 1 ; месяц цифрой 02.08.2025 +.Text EQU 2 ; месяц текстом 2 Aug 2025 INIT_VAR 0x8000 SETVAR WorkBuffer, 0x400 ; рабочий буфер @@ -170,7 +175,8 @@ SORTFLAG .MASKEXECFILTER EQU .M_FILTER | .M_EXEC ;[]----------------------------------------------------------[] -BAR +; Скролл бар +SCROLLBAR _INIT_VAR _SETVAR .X, WORD _SETVAR .Y, WORD @@ -186,7 +192,7 @@ BAR ;[]----------------------------------------------------------[] ; Прогресс бар -PROC +PROGRESSBAR _INIT_VAR _SETVAR .X, WORD _SETVAR .Y, WORD @@ -259,48 +265,49 @@ JUMPS _INIT_VAR BASE_ADDR + .JUMPSIZE ; пропуск перехода на основной вход _SETVAR .ClearScreen, .JUMPSIZE _SETVAR .MakeWindow, .JUMPSIZE - _SETVAR .InvertRectan, .JUMPSIZE - _SETVAR .PrnTxtLnIFF, .JUMPSIZE - _SETVAR .PrnTxtLnNorm, .JUMPSIZE - _SETVAR .PrnTxtLnNormC, .JUMPSIZE - _SETVAR .PrnRangPathL, .JUMPSIZE - _SETVAR .PrnRangPathR, .JUMPSIZE - _SETVAR .PrnRangPathC, .JUMPSIZE + _SETVAR .ReplaceColorRectan, .JUMPSIZE + _SETVAR .PrintTxtLine_IFF, .JUMPSIZE + _SETVAR .PrintTxtLine, .JUMPSIZE + _SETVAR .PrintTxtLineNumsChar, .JUMPSIZE + _SETVAR .PrintPathLeft, .JUMPSIZE + _SETVAR .PrintPathRight, .JUMPSIZE + _SETVAR .PrintPathCentr, .JUMPSIZE _SETVAR .InputLine, .JUMPSIZE - _SETVAR .InpLnExtN, .JUMPSIZE - _SETVAR .InpLnExtC, .JUMPSIZE + _SETVAR .InputLineExitOk, .JUMPSIZE + _SETVAR .InputLineExitCancel, .JUMPSIZE _SETVAR .DOSError, .JUMPSIZE _SETVAR .InitScrollBar, .JUMPSIZE - _SETVAR .PrnHScrBar, .JUMPSIZE - _SETVAR .PrnVScrBar, .JUMPSIZE - _SETVAR .InitProcess, .JUMPSIZE - _SETVAR .PrnProcess, .JUMPSIZE + _SETVAR .DrawHScrollBar, .JUMPSIZE + _SETVAR .DrawVScrollBar, .JUMPSIZE + _SETVAR .InitProgressBar, .JUMPSIZE + _SETVAR .DrawProgressBar, .JUMPSIZE _ADDVAR .JUMPSIZE * 5 ; DUPL 15,0xC9 - _SETVAR .ResFire, .JUMPSIZE - _SETVAR .TestCoords, .JUMPSIZE - _SETVAR .SetCMOSPrint, .JUMPSIZE - _SETVAR .ResCMOSPrint, .JUMPSIZE - _SETVAR .SetClock, .JUMPSIZE - _SETVAR .SetMouse, .JUMPSIZE + _SETVAR .WaitUnpressMouse, .JUMPSIZE + _SETVAR .CheckCoordsMouse, .JUMPSIZE + _SETVAR .CMOSPrintDateTime, .JUMPSIZE + _ADDVAR .JUMPSIZE; _SETVAR .CMOSPrintOff, .JUMPSIZE + _SETVAR .PointerMouseClock, .JUMPSIZE + _SETVAR .PointerMousePointer, .JUMPSIZE _ADDVAR .JUMPSIZE * 4 ; DUPL 12,0xC9 - _SETVAR .ConvNumTxt40, .JUMPSIZE - _SETVAR .MoveBytes, .JUMPSIZE - _SETVAR .MoveBytesUp, .JUMPSIZE - _SETVAR .Mult8, .JUMPSIZE - _SETVAR .Mult16X8, .JUMPSIZE - _SETVAR .Mult16, .JUMPSIZE - _SETVAR .Mult16X16, .JUMPSIZE - _SETVAR .Mult32, .JUMPSIZE - _SETVAR .Divis16X16, .JUMPSIZE - _SETVAR .Divis24X16, .JUMPSIZE - _SETVAR .Divis32X16, .JUMPSIZE - _SETVAR .Divis32, .JUMPSIZE - _SETVAR .ConvNumTxt32, .JUMPSIZE - _SETVAR .ConvNumTxt16, .JUMPSIZE - _SETVAR .ConvNumTxt8, .JUMPSIZE - _SETVAR .ConvTxtNum32, .JUMPSIZE - _SETVAR .ConvTxtNum16, .JUMPSIZE + _SETVAR .ConvertNumbers_40b, .JUMPSIZE + _SETVAR .MoveBytesInc, .JUMPSIZE + _SETVAR .MoveBytesDec, .JUMPSIZE + _SETVAR .Mul_8X8_16b, .JUMPSIZE + _SETVAR .Mul_16X8_24b, .JUMPSIZE + _SETVAR .Mul_16X16_16b, .JUMPSIZE + _SETVAR .Mul_16X16_32b, .JUMPSIZE + _SETVAR .Mul_32X16_32b, .JUMPSIZE + _SETVAR .Div_16X16_16b_16b, .JUMPSIZE + _SETVAR .Div_24X16_8b_16b, .JUMPSIZE + _SETVAR .Div_32X16_16b_16b, .JUMPSIZE + _SETVAR .Div_32X16_32b_16b, .JUMPSIZE + _SETVAR .ConvertNumbers_32b, .JUMPSIZE + _SETVAR .ConvertNumbers_16b, .JUMPSIZE + _SETVAR .ConvertNumbers_8b, .JUMPSIZE + _SETVAR .atoi_32b, .JUMPSIZE + _SETVAR .atoi_16b, .JUMPSIZE _SETVAR .Resident, .JUMPSIZE +; резервирование до смещения 0xC0 _ADDVAR (BASE_ADDR + 0xC0) - .CURRVAR; - .JUMPSIZE; * 4 ; DUPL 12,0xC9 ; переменные для доступа из плагинов _SETVAR .NUM_DEVICES, BYTE ; Кол-во устройств @@ -310,7 +317,7 @@ JUMPS _SETVAR .MouseFlag, BYTE ; Флаг мыши 0 - нет ; 1 - есть _SETVAR .CMOSPrint, BYTE - _SETVAR .FNPAGESID, BYTE ; Индеф.памяти где FN + _SETVAR .FNPAGESID, BYTE ; Индентификатор памяти FN _SETVAR .FNREZ2, BYTE ; Страница с функциями FN _SETVAR .FNFONT, BYTE ; Страница шрифтов _SETVAR .FNREZ3, BYTE ; Страница FN HELP @@ -320,13 +327,17 @@ JUMPS IFDEF ENABLE.EDIT _SETVAR .FNEDIT, BYTE ; Страница с FileEditor ENDIF +; Буферные страницы под интерфейс _SETVAR .BufferID, BYTE ; Индентификатор памяти под буфера - _SETVAR .FLX, BYTE ; Страница для подгрузки FLX просмотр. FLX утилит + _SETVAR .FLX, BYTE ; Страница для загрузки FLX плагинов _SETVAR .LEFTPANEL, BYTE ; Страница каталога Левой панели _SETVAR .RIGHTPANEL, BYTE ; Страница каталога Правой панели -; Буферные страницы под интерфейс - _SETVAR .BuffPg1, WORD - _SETVAR .BuffPg3, 3 + _SETVAR .BuffPg1, BYTE + _SETVAR .BuffPg2, BYTE + _SETVAR .BuffPg3, BYTE + _SETVAR .BuffPg4, BYTE + BYTE + _SETVAR .FILES_COUNT, WORD + _SETVAR .FILES_BYTES, DWORD + 1 FileHDR _INIT_VAR @@ -364,6 +375,6 @@ FNinternal ; отладочное, не менять по избежание глюков PLUGS_ENABLE EQU 0 ; меню плагинов TREE_REZID EQU 0 -MARK_DIR EQU 0 ; выбор директории с подсчетом размера всех файлов +MARK_DIR EQU 1 ; выбор директории с подсчетом размера всех файлов TREE_DIR_ENTER EQU 0 ; показ содержимого директории в дереве по ENTER CORR_FILENAME EQU 1 ; преобразование символов имени файла diff --git a/fn_version.a80 b/fn_version.a80 index aa608d5..855bb06 100644 --- a/fn_version.a80 +++ b/fn_version.a80 @@ -1,7 +1,7 @@ -; LAST UPDATE: 29.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij FLEX_VERS -.NAVIGATOR EQU "1.16.01" +.NAVIGATOR EQU "1.16.02" .EDITOR EQU "1.10" .VIEWER EQU "1.06" diff --git a/fnbar.a80 b/fnbar.a80 index bc399e7..a4d6064 100644 --- a/fnbar.a80 +++ b/fnbar.a80 @@ -1,13 +1,13 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]-----------------------------------------------------------[] -InitScrollBar LD C,(IX + BAR.PAGE_FILES) - LD B,(IX + BAR.PAGE_FILES + 1) ; Кол-во элем. на стр. +InitScrollBar LD C,(IX + SCROLLBAR.PAGE_FILES) + LD B,(IX + SCROLLBAR.PAGE_FILES + 1) ; Кол-во элем. на стр. LD L,C LD H,B - LD E,(IX + BAR.MAX_FILES) - LD D,(IX + BAR.MAX_FILES + 1) ; макс.элементов + LD E,(IX + SCROLLBAR.MAX_FILES) + LD D,(IX + SCROLLBAR.MAX_FILES + 1) ; макс.элементов LD A,D OR E JR NZ,.L1 @@ -18,11 +18,11 @@ InitScrollBar LD C,(IX + BAR.PAGE_FILES) ADD HL,DE EX DE,HL .L2 PUSH DE - LD E,(IX + BAR.MAX_LEN) - LD D,(IX + BAR.MAX_LEN + 1) ; Кол-во вид. элем. * размер бара - CALL Mult16X16 ; DE * BC = HL + DE + LD E,(IX + SCROLLBAR.MAX_LEN) + LD D,(IX + SCROLLBAR.MAX_LEN + 1) ; Кол-во вид. элем. * размер бара + CALL Mul_16X16_32b ; DE * BC = HL + DE POP BC ; /макс.элементов - CALL Divis32X16 ; HL + DE / BC = DE (HL-ост) + CALL Div_32X16_16b_16b ; HL + DE / BC = DE (HL-ост) LD A,H OR L JR Z,.L3 @@ -31,21 +31,21 @@ InitScrollBar LD C,(IX + BAR.PAGE_FILES) SBC HL,DE JR C,.L4 LD DE,0x0003 -.L4 LD (IX + BAR.LEN_FILES),E ; = длина бара - LD (IX + BAR.LEN_FILES + 1),D ; = длина бара +.L4 LD (IX + SCROLLBAR.LEN_FILES),E ; = длина бара + LD (IX + SCROLLBAR.LEN_FILES + 1),D ; = длина бара RET -PrnHScrBar PUSH IY +DrawHScrollBar: PUSH IY GETPORT WINSP.Y_PORT PUSH AF GETPORT WINSP.CPU1 LD IYL,A - 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 L,(IX + SCROLLBAR.FIRST_FILE) ; FirstFile + LD H,(IX + SCROLLBAR.FIRST_FILE + 1) + LD E,(IX + SCROLLBAR.PAGE_FILES) + LD D,(IX + SCROLLBAR.PAGE_FILES + 1) + LD C,(IX + SCROLLBAR.MAX_FILES) ; EquipFiles + LD B,(IX + SCROLLBAR.MAX_FILES + 1) LD A,B OR C JR NZ,.L1 @@ -63,11 +63,11 @@ PrnHScrBar PUSH IY JR NC,.L2 LD HL,0x0000 .L2 EX DE,HL - LD C,(IX + BAR.MAX_LEN) - LD B,(IX + BAR.MAX_LEN + 1) - CALL Mult16X16 + LD C,(IX + SCROLLBAR.MAX_LEN) + LD B,(IX + SCROLLBAR.MAX_LEN + 1) + CALL Mul_16X16_32b POP BC - CALL Divis32X16 + CALL Div_32X16_16b_16b LD A,D OR E JR Z,.L3 @@ -76,12 +76,12 @@ PrnHScrBar PUSH IY RR E JR NC,.L4 INC DE -.L4 LD L,(IX + BAR.X) - LD H,(IX + BAR.X + 1) +.L4 LD L,(IX + SCROLLBAR.X) + LD H,(IX + SCROLLBAR.X + 1) SRL H RR L SET 6,H - LD A,(IX + BAR.Y) + LD A,(IX + SCROLLBAR.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.X) - LD H,(IX + BAR.X + 1) + LD L,(IX + SCROLLBAR.X) + LD H,(IX + SCROLLBAR.X + 1) ADD HL,DE - LD E,(IX + BAR.LEFT_FILES) - LD D,(IX + BAR.LEFT_FILES + 1) + LD E,(IX + SCROLLBAR.LEFT_FILES) + LD D,(IX + SCROLLBAR.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.Y) + LD A,(IX + SCROLLBAR.Y) LD C,A - LD E,(IX + BAR.LEN_FILES) - LD D,(IX + BAR.LEN_FILES + 1) + LD E,(IX + SCROLLBAR.LEN_FILES) + LD D,(IX + SCROLLBAR.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.LEN_FILES) - LD B,(IX + BAR.LEN_FILES + 1) + LD C,(IX + SCROLLBAR.LEN_FILES) + LD B,(IX + SCROLLBAR.LEN_FILES + 1) PUSH BC ADD HL,BC - LD C,(IX + BAR.RIGHT_FILES) - LD B,(IX + BAR.RIGHT_FILES + 1) + LD C,(IX + SCROLLBAR.RIGHT_FILES) + LD B,(IX + SCROLLBAR.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.MAX_LEN) - LD H,(IX + BAR.MAX_LEN + 1) + LD L,(IX + SCROLLBAR.MAX_LEN) + LD H,(IX + SCROLLBAR.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.Y) + LD A,(IX + SCROLLBAR.Y) LD C,A LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88 SETPORT WINSP.CPU1,0x50 @@ -242,17 +242,17 @@ PrnHScrBar PUSH IY POP IY RET -PrnVScrBar PUSH IY +DrawVScrollBar: PUSH IY GETPORT WINSP.Y_PORT PUSH AF GETPORT WINSP.CPU1 LD IYH,A - 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 L,(IX + SCROLLBAR.FIRST_FILE) ; FirstFile + LD H,(IX + SCROLLBAR.FIRST_FILE + 1) + LD E,(IX + SCROLLBAR.PAGE_FILES) + LD D,(IX + SCROLLBAR.PAGE_FILES + 1) + LD C,(IX + SCROLLBAR.MAX_FILES) ; EquipFiles + LD B,(IX + SCROLLBAR.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.MAX_LEN) - LD B,(IX + BAR.MAX_LEN + 1) - CALL Mult16X16 + LD C,(IX + SCROLLBAR.MAX_LEN) + LD B,(IX + SCROLLBAR.MAX_LEN + 1) + CALL Mul_16X16_32b POP BC - CALL Divis32X16 - LD A,(IX + BAR.Y) + CALL Div_32X16_16b_16b + LD A,(IX + SCROLLBAR.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.X) - LD H,(IX + BAR.X + 1) + LD L,(IX + SCROLLBAR.X) + LD H,(IX + SCROLLBAR.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.Y) - LD H,(IX + BAR.Y + 1) + LD L,(IX + SCROLLBAR.Y) + LD H,(IX + SCROLLBAR.Y + 1) ADD HL,DE - LD E,(IX + BAR.LEFT_FILES) - LD D,(IX + BAR.LEFT_FILES + 1) + LD E,(IX + SCROLLBAR.LEFT_FILES) + LD D,(IX + SCROLLBAR.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.X) - LD H,(IX + BAR.X + 1) + LD L,(IX + SCROLLBAR.X) + LD H,(IX + SCROLLBAR.X + 1) SRL H RR L SET 6,H - LD A,(IX + BAR.LEN_FILES) + LD A,(IX + SCROLLBAR.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.LEN_FILES) - LD B,(IX + BAR.LEN_FILES + 1) + LD C,(IX + SCROLLBAR.LEN_FILES) + LD B,(IX + SCROLLBAR.LEN_FILES + 1) PUSH BC ADD HL,BC - LD C,(IX + BAR.RIGHT_FILES) - LD B,(IX + BAR.RIGHT_FILES + 1) + LD C,(IX + SCROLLBAR.RIGHT_FILES) + LD B,(IX + SCROLLBAR.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.MAX_LEN) - LD H,(IX + BAR.MAX_LEN + 1) + LD L,(IX + SCROLLBAR.MAX_LEN) + LD H,(IX + SCROLLBAR.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.X) - LD H,(IX + BAR.X + 1) + LD L,(IX + SCROLLBAR.X) + LD H,(IX + SCROLLBAR.X + 1) SRL H RR L SET 6,H @@ -440,20 +440,21 @@ PrnVScrBar PUSH IY RET ;[]-----------------------------------------------------------[] -InitProcess SUB A - 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-ост) +; инициализация индиктора процесса +InitProgressBar SUB A + LD (IX + PROGRESSBAR.CURR_PAGE),A + LD (IX + PROGRESSBAR.CURR_PAGE + 1),A + LD (IX + PROGRESSBAR.CURR_PAGE + 2),A + LD (IX + PROGRESSBAR.CURR_PAGE + 3),A + LD (IX + PROGRESSBAR.CORR_INDEX),A + LD (IX + PROGRESSBAR.CORR_INDEX + 1),A + LD C,(IX + PROGRESSBAR.MAX_LEN) ; Макс/макс.длину процеса + LD B,(IX + PROGRESSBAR.MAX_LEN + 1) + LD E,(IX + PROGRESSBAR.MAX_PAGES) + LD D,(IX + PROGRESSBAR.MAX_PAGES + 1) + LD L,(IX + PROGRESSBAR.MAX_PAGES + 2) + LD H,(IX + PROGRESSBAR.MAX_PAGES + 3) + CALL Div_32X16_16b_16b ; HLDE / BC = DE, (HL-остаток) LD A,H OR L JR Z,.L2 @@ -462,42 +463,43 @@ InitProcess SUB A OR A SBC HL,DE JR C,.L1 - LD A,(IX + PROC.MAX_PAGES + 2) - OR (IX + PROC.MAX_PAGES + 3) + LD A,(IX + PROGRESSBAR.MAX_PAGES + 2) + OR (IX + PROGRESSBAR.MAX_PAGES + 3) JR NZ,.L1 - LD E,(IX + PROC.MAX_PAGES) - LD D,(IX + PROC.MAX_PAGES + 1) + LD E,(IX + PROGRESSBAR.MAX_PAGES) + LD D,(IX + PROGRESSBAR.MAX_PAGES + 1) LD BC,1000 - LD (IX + PROC.CORR_INDEX),C - LD (IX + PROC.CORR_INDEX + 1),B - CALL Mult16X16 - LD C,(IX + PROC.MAX_LEN) ; Макс/макс.длину процеса - LD B,(IX + PROC.MAX_LEN + 1) - CALL Divis32X16 ; HL + DE / BC = DE (HL-ост) -.L1 LD (IX + PROC.INDEX),E - LD (IX + PROC.INDEX + 1),D + LD (IX + PROGRESSBAR.CORR_INDEX),C + LD (IX + PROGRESSBAR.CORR_INDEX + 1),B + CALL Mul_16X16_32b + LD C,(IX + PROGRESSBAR.MAX_LEN) ; Макс/макс.длину процеса + LD B,(IX + PROGRESSBAR.MAX_LEN + 1) + CALL Div_32X16_16b_16b ; HLDE / BC = DE, (HL-остаток) +.L1 LD (IX + PROGRESSBAR.INDEX),E + LD (IX + PROGRESSBAR.INDEX + 1),D RET -PrnProcess PUSH IY +DrawProgressBar: + PUSH IY GETPORT WINSP.Y_PORT PUSH AF GETPORT WINSP.CPU1 LD IYL,A - 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) + LD E,(IX + PROGRESSBAR.CURR_PAGE) + LD D,(IX + PROGRESSBAR.CURR_PAGE + 1) + LD L,(IX + PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 3) + LD A,(IX + PROGRESSBAR.CORR_INDEX) + OR (IX + PROGRESSBAR.CORR_INDEX + 1) JR Z,.L1 - LD C,(IX + PROC.CORR_INDEX) - LD B,(IX + PROC.CORR_INDEX + 1) - CALL Mult16X16 -.L1 LD C,(IX + PROC.INDEX) - LD B,(IX + PROC.INDEX + 1) - CALL Divis32X16 - LD L,(IX + PROC.X) - LD H,(IX + PROC.X + 1) + LD C,(IX + PROGRESSBAR.CORR_INDEX) + LD B,(IX + PROGRESSBAR.CORR_INDEX + 1) + CALL Mul_16X16_32b +.L1 LD C,(IX + PROGRESSBAR.INDEX) + LD B,(IX + PROGRESSBAR.INDEX + 1) + CALL Div_32X16_16b_16b + LD L,(IX + PROGRESSBAR.X) + LD H,(IX + PROGRESSBAR.X + 1) SRL H RR L SET 6,H @@ -506,8 +508,8 @@ PrnProcess PUSH IY JR Z,.L2 PUSH DE PUSH HL - LD L,(IX + PROC.MAX_LEN) - LD H,(IX + PROC.MAX_LEN + 1) + LD L,(IX + PROGRESSBAR.MAX_LEN) + LD H,(IX + PROGRESSBAR.MAX_LEN + 1) OR A SBC HL,DE JR NC,.L3 @@ -518,9 +520,9 @@ PrnProcess PUSH IY RR E JR NC,.L4 INC DE -.L4 LD A,(IX + PROC.Y) +.L4 LD A,(IX + PROGRESSBAR.Y) LD C,A - LD A,(IX + PROC.COLOR) + LD A,(IX + PROGRESSBAR.COLOR) AND 0xF0 LD B,A RRCA @@ -549,8 +551,8 @@ PrnProcess PUSH IY EI POP DE .L2 PUSH HL - LD L,(IX + PROC.MAX_LEN) - LD H,(IX + PROC.MAX_LEN + 1) + LD L,(IX + PROGRESSBAR.MAX_LEN) + LD H,(IX + PROGRESSBAR.MAX_LEN + 1) OR A SBC HL,DE EX DE,HL @@ -561,9 +563,9 @@ PrnProcess PUSH IY RR E JR NC,.L7 INC DE -.L7 LD A,(IX + PROC.Y) +.L7 LD A,(IX + PROGRESSBAR.Y) LD C,A - LD A,(IX + PROC.COLOR) + LD A,(IX + PROGRESSBAR.COLOR) AND 0x0F LD B,A RLCA diff --git a/fndos.a80 b/fndos.a80 index d87eca6..eed46b6 100644 --- a/fndos.a80 +++ b/fndos.a80 @@ -1,12 +1,12 @@ -; LAST UPDATE: 27.04.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]----------------------------------------------------------[] BegDIRECTORY LD HL,BegDIR NewDIRECTORY PUSH HL CALL ResInvert POP HL - CALL SetClock + CALL PointerMouseClock PUSH IY SPDSS DSSF.CHDIR POP IY @@ -67,10 +67,10 @@ NewDIRECT1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar - JP SetMouse + CALL NZ,DrawVScrollBar + JP PointerMousePointer NewDIRTree PUSH IY POP HL @@ -108,9 +108,9 @@ RefreshDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar RfDIRn1 LD HL,LeftPanel + PANEL.CURR_PATH LD DE,RightPanel + PANEL.CURR_PATH RefrDIR LD A,(DE) @@ -142,9 +142,9 @@ RefrDIR LD A,(DE) LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar RefrDex POP IY RET diff --git a/fndosline.a80 b/fndosline.a80 index 45d1a30..c611b3d 100644 --- a/fndosline.a80 +++ b/fndosline.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]==========================================================[] DOSline SUB A @@ -164,7 +164,7 @@ RunDLine DEC HL POP IX LD DE,PANEL.BAR_X ADD IX,DE - CALL PrnVScrBar + CALL DrawVScrollBar POP IY RET @@ -457,7 +457,7 @@ DOSInputLine LD (InpLnData),IX DOSLineLp HALT CALL ChCursor LD IX,(InputLine.InpMous) - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.TESTKEY JR Z,DOSLineLp RES 7,D @@ -534,23 +534,23 @@ DOSLnExtC POP HL SCF RET -DOSTable1 DW SC.ESC << 8 | 0x1B, InputLine.InpLnExtC ; 0x011B,InpLnExtC - DW SC.ENTER << 8 | 0x0D,InputLine.InpLnExtN ; 0x280D,InpLnExtN - DW SC.X4 << 8, ILleft ; 0x5400,ILleft - DW SC.X6 << 8, ILright ; 0x5600,ILright - DW SC.BKSP << 8 | 8, ILdelet ; 0x0E08,ILdelet - DW SC.XDEL << 8, IL_del_ ; 0x4F00,IL_del_ - DW SC.X7 << 8, ILhome ; 0x5700,ILhome - DW SC.X1 << 8, ILend ; 0x5100,ILend +DOSTable1 DW SC.ESC << 8 | 0x1B, InputLine.InputLineExitCancel ; 0x011B,InpLnExtC + DW SC.ENTER << 8 | 0x0D,InputLine.InputLineExitOk ; 0x280D,InpLnExtN + DW SC.X4 << 8, ILleft ; 0x5400,ILleft + DW SC.X6 << 8, ILright ; 0x5600,ILright + DW SC.BKSP << 8 | 8, ILdelet ; 0x0E08,ILdelet + DW SC.XDEL << 8, IL_del_ ; 0x4F00,IL_del_ + DW SC.X7 << 8, ILhome ; 0x5700,ILhome + DW SC.X1 << 8, ILend ; 0x5100,ILend DB 0xFF -DOSTable2 DW SC.X4 << 8, ILwordL ; 0x5400,ILwordL - DW SC.X6 << 8, ILwordR ; 0x5600,ILwordR - DW SC.BKSP << 8, ILdelWR ; 0x0E00,ILdelWR - DW SC.ENTER << 8, InsFileName ; 0x2800,InsFileName - DW SC.QSKOBKAL << 8, InsLeftPath ; 0x1A00,InsLeftPath - DW SC.QSKOBKAR << 8, InsRightPath ; 0x1B00,InsRightPath - DW SC.E << 8, InsHistory ; 0x1200,InsHistory +DOSTable2 DW SC.X4 << 8, ILwordL ; 0x5400,ILwordL + DW SC.X6 << 8, ILwordR ; 0x5600,ILwordR + DW SC.BKSP << 8, ILdelWR ; 0x0E00,ILdelWR + DW SC.ENTER << 8, InsFileName ; 0x2800,InsFileName + DW SC.QSKOBKAL << 8, InsLeftPath ; 0x1A00,InsLeftPath + DW SC.QSKOBKAR << 8, InsRightPath ; 0x1B00,InsRightPath + DW SC.E << 8, InsHistory ; 0x1200,InsHistory DB 0xFF InsFileName diff --git a/fninit.a80 b/fninit.a80 index 2fbfb0d..2fd1d32 100644 --- a/fninit.a80 +++ b/fninit.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij ;[]==========================================================[] InitVideoMode @@ -58,22 +58,23 @@ InitDrivers SUB A LD (CMOSFlag),A LD L,A LD H,A - LD (TestCoords.PrvTabl),HL - LD (TestCoords.PrMousX),HL - LD (TestCoords.PrMousY),HL - SPDSS DSSF.GETMEM,7 - JR NC,InitDrv + LD (CheckCoordsMouse.PrvTabl),HL + LD (CheckCoordsMouse.PrMousX),HL + LD (CheckCoordsMouse.PrMousY),HL + SPDSS DSSF.GETMEM,NUM_PAGES_FN + JR NC,.InitDrv CALL ResVideoMode - LD HL,NoEnMemory + LD HL,.NoEnMemory SPDSS DSSF.PCHARS LD A,(RAMPAGES.FNPAGESID) SPDSS DSSF.FREEMEM - SPDSS DSSF.EXIT,0x1E + SPDSS DSSF.EXIT,ERR_DSS.NOT_ENOUGH_MEMORY -NoEnMemory DZ "Not enough memory to run program.\r\n" +.NoEnMemory DZ "Not enough memory to run program.\r\n" -InitDrv LD (RAMPAGES.BufferID),A - LD HL,RAMPAGES.FLX +.InitDrv LD HL,RAMPAGES.BufferID + LD (HL),A + INC HL SPBIOS BIOSF.GETMEMBLKPAGES .skip: SPDSS DSSF.CURDISK @@ -135,7 +136,7 @@ InitFlg EQU $-1 FirstInit SPDSS DSSF.BOOTDSK,0 ADD A,'A' - LD (ShellFile),a ; fndosln.z80 + LD (ShellFile),a SPDSS DSSF.CURDISK LD HL,LeftPanel + PANEL.CURR_PATH PUSH HL @@ -336,18 +337,18 @@ InitScreen OR A RET Z MAKEWINDOW WINSUBOBJ.WOBIND - W_BORDER 500,15,136,12 + W_BORDER 500 + 10,15,136 - 10,12 W_END - LD HL,0x01FC - LD DE,0x0012 - LD B,0x80 + LD HL,508 + 12 + LD DE,17 + LD B,COLORP.HIGHGRAY + COLORI.BLACK EXX - LD HL,0x022E - LD DE,0x0012 - LD B,0x80 + LD HL,558 + 10 + LD DE,17 + LD B,COLORP.HIGHGRAY + COLORI.BLACK EXX - LD A,0x02 - JP SetCMOSPrint + LD A,DateMonthFormat.Text + JP CMOSPrintDateTime ;[]==========================================================[] InitPanels LD (InitPanFlg),A @@ -382,7 +383,7 @@ InitPanel SUB A InitPanel1 LD (InitPanFlg),A InitPanelE LD A,(InitPanFlg) BIT 0,A - CALL Z,SetClock + CALL Z,PointerMouseClock CALL PrintDisks CALL PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG) @@ -582,10 +583,10 @@ InitPanEx LD A,(InitPanFlg) LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar - CALL SetMouse + CALL NZ,DrawVScrollBar + CALL PointerMousePointer LD A,(InitPanFlg) BIT 0,A RET NZ diff --git a/fninput.a80 b/fninput.a80 index af8baf6..610f3c5 100644 --- a/fninput.a80 +++ b/fninput.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 20.03.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]----------------------------------------------------------[] InputLine LD (InpLnData),IX @@ -39,7 +39,7 @@ InputLine LD (InpLnData),IX CALL ChCursor LD IX,0x0000 .InpMous EQU $-2 - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.TESTKEY JR Z,.InpLineLp RES 7,D @@ -81,13 +81,15 @@ InputLine LD (InpLnData),IX LD A,E JR InsertSymbol -.InpLnExtN POP HL +.InputLineExitOk: + POP HL LD IX,(InpLnData) CALL ResCursor XOR A RET -.InpLnExtC POP HL +.InputLineExitCancel: + POP HL LD IX,(InpLnData) CALL ResCursor PUSH IX @@ -126,9 +128,9 @@ InpLnData DEFW 0x0000 ; ; +0B Цвет строки ; +0C ...сама строка -InpTable1 DW SC.ESC << 8 | 0x1B, InputLine.InpLnExtC - DW SC.ENTER << 8 | 0x0D, InputLine.InpLnExtN - DW SC.XENTER << 8 | 0x0D, InputLine.InpLnExtN +InpTable1 DW SC.ESC << 8 | 0x1B, InputLine.InputLineExitCancel + DW SC.ENTER << 8 | 0x0D, InputLine.InputLineExitOk + DW SC.XENTER << 8 | 0x0D, InputLine.InputLineExitOk DW SC.X4 << 8, ILleft DW SC.X6 << 8, ILright DW SC.BKSP << 8 | 0x08, ILdelet diff --git a/fnmain.a80 b/fnmain.a80 index 9658630..2101c8c 100644 --- a/fnmain.a80 +++ b/fnmain.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij ;[]=======================================================================[] ; FLEX NAVIGATOR ; @@ -7,89 +7,67 @@ ; Last edition: 03/02/2000 ; ;[]=======================================================================[] -; flex navigator equs include fn_const.a80 include fn_macros.a80 -;[]-----------------------------------------------------------------------[] -; org BASE_ADDR ;0x8000 -; section .bss - -;WorkBuffer: EQU 0x8000 - ;resb 0x400 ; work buffer for func/procs - -;[]-----------------------------------------------------------------------[] -; ; org 0x8400 -; section .bss - -;PagesList: EQU 0x8400 - ;resb 0x100 ; buffer for memory pages -;[]-----------------------------------------------------------------------[] -; ; org 0x8500 -; section .text PHASE BASE_ADDR START_BLOCK_1 - -;[]=======================================================================[] -; section .text - -;EntryPoint: JP StartPoint ; entry point - JP ClearScreen ; 8603->86BB - JP MakeWindow ; 8606->86F0 - JP InvertRectan ; 8609->8DA0 - JP PrnTxtLnIFF ; 860C->8FB0 - JP PrnTxtLnNorm ; 860F->9024 - JP PrnTxtLnNormC ; 8612->909B - JP PrnRangPathL ; 8615->8E48 - JP PrnRangPathR ; 8618->8EB2 - JP PrnRangPathC ; 861B->8F36 - JP InputLine ; 861E->915F - JP InputLine.InpLnExtN ; 8621->9205 - JP InputLine.InpLnExtC ; 8624->920F - JP DOSError ; 8627->86A8 - JP InitScrollBar ; 862A->96EB - JP PrnHScrBar ; 862D->9729 - JP PrnVScrBar ; 8630->9882 - JP InitProcess ; 8633->99DA - JP PrnProcess ; 8636->9A39 + JP ClearScreen + JP MakeWindow + JP ReplaceColorRectan + JP PrintTxtLine_IFF + JP PrintTxtLine + JP PrintTxtLineNumsChar + JP PrintPathLeft + JP PrintPathRight + JP PrintPathCentr + JP InputLine + JP InputLine.InputLineExitOk + JP InputLine.InputLineExitCancel + JP DOSError + JP InitScrollBar + JP DrawHScrollBar + JP DrawVScrollBar + JP InitProgressBar + JP DrawProgressBar DB JUMPS.JUMPSIZE * 5 DUP 0xC9 - JP ResFire ; 8648->9B01 - JP TestCoords ; 864B->9B10 - JP SetCMOSPrint ; 864E->9EA9 - JP ResCMOSPrint ; 8651->9EF3 - JP SetClock ; 8654->A08E - JP SetMouse ; 8657->A0BB + JP WaitUnpressMouse + JP CheckCoordsMouse + JP CMOSPrintDateTime + + DB JUMPS.JUMPSIZE DUP 0xC9;JP CMOSPrintOff + + JP PointerMouseClock + JP PointerMousePointer DB JUMPS.JUMPSIZE * 4 DUP 0xC9 - JP ConvNumTxt40 ; 8666->A1F7 - JP MoveBytes ; 8669->A3B6 - JP MoveBytesUp ; 866C->A3E3 - JP Mult8 ; 866F->A0E8 - JP Mult16X8 ; 8672->A124 - JP Mult16 ; 8675->A110 - JP Mult16X16 ; 8678->A124 - JP Mult32 ; 867B->A149 - JP Divis16X16 ; 867E->A16B - JP Divis24X16 ; 8681->A195 - JP Divis32X16 ; 8684->A1B8 - JP Divis32 ; 8687->A1CD - JP ConvNumTxt32 ; 868A->A236 - JP ConvNumTxt16 ; 868D->A2AA - JP ConvNumTxt8 ; 8690->A2DE - JP ConvTxtNum32 ; 8693->A35D - JP ConvTxtNum16 ; 8696->A395 - JP Resident ; 8699->A40B + JP ConvertNumbers_40b + JP MoveBytesInc + JP MoveBytesDec + JP Mul_8X8_16b + JP Mul_16X8_24b + JP Mul_16X16_16b + JP Mul_16X16_32b + JP Mul_32X16_32b + JP Div_16X16_16b_16b + JP Div_24X16_8b_16b + JP Div_32X16_16b_16b + JP Div_32X16_32b_16b + JP ConvertNumbers_32b + JP ConvertNumbers_16b + JP ConvertNumbers_8b + JP atoi_32b + JP atoi_16b + JP Resident DB 0xC0 - LOW ($) DUP 0xC9 -;[]-----------------------------------------------------------------------[] -; flex navigator settings -NUM_DEVICES DB 0 ; Кол-во устройств +NUM_DEVICES DB 0 ; Количество устройств TreeFlag DB 0 ; Флаг дерева CMOSFlag DB 0 ; Флаг CMOS 0 - нет ; 1 - есть @@ -97,210 +75,50 @@ MouseFlag DB 1 ; ; 1 - есть CMOSPrint: DB 1 RAMPAGES -.FNPAGESID DB 0 ; Индеф.памяти где FN -.FNREZ2 DB 0 ; Страница с функциями FN -.FNFONT DB 0 ; Страница шрифтов -.FNREZ3 DB 0 ; Страница еще немного функций FN +.FNPAGESID DB 0 ; Индентификатор памяти где FN +.FNREZ2 DB 0 ; 0 Страница с функциями FN +.FNFONT DB 0 ; 1 Страница шрифтов +.FNREZ3 DB 0 ; 2 Страница еще немного функций FN IFDEF ENABLE.VIEW -.FNVIEW DB 0 ; Страница с FileViewer +.FNVIEW DB 0 ; 3 Страница с FileViewer ENDIF IFDEF ENABLE.EDIT -.FNEDIT DB 0 ; Страница с FileEditor +.FNEDIT DB 0 ; 4 Страница с FileEditor ENDIF -.BufferID DB 0 ; Индентификатор памяти под буфера -.FLX DB 0 ; Страница для подгрузки FLX просмотр. FLX утилит -.LEFTPANEL DB 0 ; Страница каталога Левой панели -.RIGHTPANEL DB 0 ; Страница каталога Правой панели ; Буферные страницы под интерфейс -.BuffPg1 DB 0 - DB 0 -.BuffPg3 DB 0 - DB 0 - DB 0 +.BufferID DB 0 ; Индентификатор памяти под буфера +.FLX DB 0 ; 0 Страница для загрузки FLX плагинов +.LEFTPANEL DB 0 ; 1 Страница каталога Левой панели +.RIGHTPANEL DB 0 ; 2 Страница каталога Правой панели +.BuffPg1 DB 0 ; 3 +.BuffPg2 DB 0 ; 4 +.BuffPg3 DB 0 ; 5 +.BuffPg4 DB 0 ; 6 +.BuffPgEnd DB 0xFF +.FILES_COUNT DW 0 ; количество помеченных файлов +.FILES_BYTES DB 5 DUP 0 ; размер помеченных файлов в байтах DB LOW (-$) DUP 0 -;UI palette & stack memory -;PALETTE: B G R - DB 0x00,0x00,0x00,0x00 ; Black 00 00 - DB 0x00,0x00,0xFF,0x00 ; B.Red 01 - DB 0x00,0x80,0x00,0x00 ; Green 02 08 - DB 0x00,0xFF,0xFF,0x00 ; B.Yellow 03 - DB 0x80,0x00,0x00,0x00 ; Blue 04 10 - DB 0xFF,0xFF,0x00,0x00 ; Invert paper 05 - DB 0x80,0x00,0x00,0x00 ; Invert ink 06 18 - DB 0x80,0x80,0x80,0x00 ; BlackGray 07 - DB 0xC0,0xC0,0xC0,0x00 ; HighGray 08 20 - DB 0x80,0x00,0x00,0x00 ; Panel 09 - DB 0xFF,0xFF,0x00,0x00 ; Files 0A 28 - DB 0x00,0xFF,0xFF,0x00 ; Select Files 0B - DB 0x00,0xFF,0xFF,0x00 ; InvSel Files 0C 30 - DB 0xC0,0xC0,0xC0,0x00 ; Reserved 0D - DB 0xFF,0xFF,0xFF,0x00 ; White 0E 38 - DB 0xFF,0xFF,0xFF,0x00 ; White 0F +; UI palette & stack memory +; PALETTE: B G R + DB 0x00,0x00,0x00,0x00 ; Black 00 00 + DB 0x00,0x00,0xFF,0x00 ; B.Red 01 + DB 0x00,0x80,0x00,0x00 ; Green 02 08 + DB 0x00,0xFF,0xFF,0x00 ; B.Yellow 03 + DB 0x80,0x00,0x00,0x00 ; Blue 04 10 + DB 0xFF,0xFF,0x00,0x00 ; Invert paper 05 + DB 0x80,0x00,0x00,0x00 ; Invert ink 06 18 + DB 0x80,0x80,0x80,0x00 ; BlackGray 07 + DB 0xC0,0xC0,0xC0,0x00 ; HighGray 08 20 + DB 0x80,0x00,0x00,0x00 ; Panel 09 + DB 0xFF,0xFF,0x00,0x00 ; Files 0A 28 + DB 0x00,0xFF,0xFF,0x00 ; Select Files 0B + DB 0x00,0xFF,0xFF,0x00 ; InvSel Files 0C 30 + DB 0xC0,0xC0,0xC0,0x00 ; Reserved 0D + DB 0xFF,0xFF,0xFF,0x00 ; White 0E 38 + DB 0xFF,0xFF,0xFF,0x00 ; White 0F -DOSError EX AF,AF' - GETPORT WINSP.CPU1 - PUSH AF - LD A,(RAMPAGES.FNREZ2) - SETPORT WINSP.CPU1,,0 - EX AF,AF' - CALL DOSErrorR - EX AF,AF' - POP AF - SETPORT WINSP.CPU1,,0 - 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 - include fnbar.a80 - include fnmouse.a80 - include fnsys.a80 - -;[]=======================================================================[] -;Старт -StartPoint: DI - LD SP,STACK -ReStartPoint: - SETPORT BORDER,0 - SETPORT WINSP.Y_PORT,0xC0 - CALL InitVideoMode - CALL InitDrivers - CALL InitScreen - CALL ClearDOSline - SUB A - CALL InitPanels - CALL ResFire -MainLoop: LD IX,FilePanelLeft - BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) - JR Z,.L1 - LD IX,FilePanelRight -.L1 CALL TestCoords - CALL TestKeys - CALL C,DOSline - LD A,(TreeFlag) - OR A - IF TREE_REZID - CALL NZ,RESIDENT.TestTree - ELSE - CALL NZ,TestTreeR - ENDIF - JR MainLoop - -;[]-----------------------------------------------------------------------[] -TestKeys - SPDSS DSSF.TESTKEY - JR Z,KeyExit - RES 7,D - LD A,B - AND KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL - CP KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL - RET Z - LD IX,HOTKEYS.SHIFTKeys - LD A,B - AND KEYBSTAT.M_LEFTSHIFT | KEYBSTAT.M_RIGHTSHIFT - JR NZ,.L1 - LD IX,HOTKEYS.CTRLKeys - BIT KEYBSTAT.B_CTRL,B - JR NZ,.L1 - LD IX,HOTKEYS.ALTKeys - BIT KEYBSTAT.B_ALT,B - JR NZ,.L1 - LD IX,HOTKEYS.ASCIIKeys -.L1 LD L,(IX+0x00) ; скан код - INC IX - INC L - SCF - RET Z - DEC L - LD H,(IX+0x00) ; ASCII код - INC IX - LD C,(IX+0x00) ; LOW адрес вызова - INC IX - LD B,(IX+0x00) ; HIGH адрес вызова - INC IX - OR A - SBC HL,DE - JR NZ,.L1 - LD (KeyCALL),BC - SPDSS DSSF.SCANKEY - CALL 0x0000 -KeyCALL EQU $-2 -KeyExit XOR A - RET - -;[]-----------------------------------------------------------------------[] -MouseOnOff LD A,(MouseFlag) - XOR 0x01 - LD (MouseFlag),A - LD C,MOUSEF.INIT - JR NZ,.L1 - LD C,MOUSEF.HIDE -.L1 - SPMOUSE - RET - -;[]-----------------------------------------------------------------------[] -ComExit CALL ResDrivers - CALL ResVideoMode - LD HL,thanks - SPDSS DSSF.PCHARS - LD A,(RAMPAGES.FNPAGESID) - SPDSS DSSF.FREEMEM - SPDSS DSSF.EXIT,0 - -thanks DZ "\r\nThank you for using Flex Navigator.\r\n" - -; (ADR) + BCDE = BCDE -BCDEHLP: LD A,(HL) - INC HL - ADD A,E - LD E,A - LD A,(HL) - INC HL - ADC A,D - LD D,A - LD A,(HL) - INC HL - ADC A,C - LD C,A - LD A,(HL) - ADC A,B - LD B,A - RET - -GET_DWORD: LD E,(HL) - INC HL - LD D,(HL) - INC HL - LD C,(HL) - INC HL - LD B,(HL) - RET - -SET_DWORD: LD (HL),E - INC HL - LD (HL),D - INC HL - LD (HL),C - INC HL - LD (HL),B - RET - -;[]=======================================================================[] ; discription of flex navigator file panels LeftPanel: DB 0x80 ; Флаг панели бит 7 - бит выделенности ; бит 0 - номер панели @@ -364,7 +182,162 @@ RightPanel: DB 0x01 ; DB 0x0A DUP 0 DB PANEL.CURR_PATH_Size DUP 0 ; Путь к текущей директории -;[]=======================================================================[] +DOSError EX AF,AF' + GETPORT WINSP.CPU1 + PUSH AF + LD A,(RAMPAGES.FNREZ2) + SETPORT WINSP.CPU1,,0 + EX AF,AF' + CALL DOSErrorR + EX AF,AF' + POP AF + SETPORT WINSP.CPU1,,0 + 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 + +; (ADR) + BCDE = BCDE +BCDEHLP: LD A,(HL) + INC HL + ADD A,E + LD E,A + LD A,(HL) + INC HL + ADC A,D + LD D,A + LD A,(HL) + INC HL + ADC A,C + LD C,A + LD A,(HL) + ADC A,B + LD B,A + RET + +GET_DWORD: LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + RET + +SET_DWORD: LD (HL),E + INC HL + LD (HL),D + INC HL + LD (HL),C + INC HL + LD (HL),B + RET + +thanks DZ "\r\nThank you for using Flex Navigator.\r\n" + +; Выход +ComExit CALL ResDrivers + CALL ResVideoMode + LD HL,thanks + SPDSS DSSF.PCHARS + LD A,(RAMPAGES.FNPAGESID) + SPDSS DSSF.FREEMEM + SPDSS DSSF.EXIT,0 + + include fnwin.a80 + include fnprint.a80 + include fninput.a80 + include fnbar.a80 + include fnmouse.a80 + include fnsys.a80 + +; Старт +StartPoint: DI + LD SP,STACK +ReStartPoint: + SETPORT BORDER,0 + SETPORT WINSP.Y_PORT,0xC0 + CALL InitVideoMode + CALL InitDrivers + CALL InitScreen + CALL ClearDOSline + SUB A + CALL InitPanels + CALL WaitUnpressMouse +MainLoop: LD IX,FilePanelLeft + BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) + JR Z,.L1 + LD IX,FilePanelRight +.L1 CALL CheckCoordsMouse + CALL TestKeys + CALL C,DOSline + LD A,(TreeFlag) + OR A + IF TREE_REZID + CALL NZ,RESIDENT.TestTree + ELSE + CALL NZ,TestTreeR + ENDIF + JR MainLoop + +TestKeys + SPDSS DSSF.TESTKEY + JR Z,KeyExit + RES 7,D + LD A,B + AND KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL + CP KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL + RET Z + LD IX,HOTKEYS.SHIFTKeys + LD A,B + AND KEYBSTAT.M_LEFTSHIFT | KEYBSTAT.M_RIGHTSHIFT + JR NZ,.L1 + LD IX,HOTKEYS.CTRLKeys + BIT KEYBSTAT.B_CTRL,B + JR NZ,.L1 + LD IX,HOTKEYS.ALTKeys + BIT KEYBSTAT.B_ALT,B + JR NZ,.L1 + LD IX,HOTKEYS.ASCIIKeys +.L1 LD L,(IX+0x00) ; скан код + INC IX + INC L + SCF + RET Z + DEC L + LD H,(IX+0x00) ; ASCII код + INC IX + LD C,(IX+0x00) ; LOW адрес вызова + INC IX + LD B,(IX+0x00) ; HIGH адрес вызова + INC IX + OR A + SBC HL,DE + JR NZ,.L1 + LD (KeyCALL),BC + SPDSS DSSF.SCANKEY + CALL 0x0000 +KeyCALL EQU $-2 +KeyExit XOR A + RET + +MouseOnOff LD A,(MouseFlag) + XOR 0x01 + LD (MouseFlag),A + LD C,MOUSEF.INIT + JR NZ,.L1 + LD C,MOUSEF.HIDE +.L1 + SPMOUSE + RET START_SORT include fnsort.a80 @@ -376,31 +349,25 @@ END_TREE ENDIF include fnpanel.a80 include fndos.a80 - include fnwork.a80 ; вызов функции в страницах RESIDENT -;[]----------------------------------------------------------[] .CopyFiles: LD DE,CopyFilesR ; resident 2 .FunctResident: LD A,(RAMPAGES.FNREZ2) LD C,WINSP.CPU1 JP Resident -;[]----------------------------------------------------------[] .ReName: LD DE,ReNameR jr .FunctResident -;[]----------------------------------------------------------[] .MakeDIR: LD DE,MakeDIRR jr .FunctResident -;[]----------------------------------------------------------[] .DeleteFiles: LD DE,DeleteFilesR jr .FunctResident -;[]----------------------------------------------------------[] .Quit: CALL ResInvert .QuitL1 LD DE,QuitConfirmWin CALL .FunctResident @@ -409,38 +376,31 @@ RESIDENT EX (SP),HL RET -;[]==========================================================[] .Setup: LD DE,SetupR jr .FunctResident -;[]----------------------------------------------------------[] .FileInfo: CALL ResInvert .FileInfoL2 LD HL,SetInvert PUSH HL LD DE,FileInfoR jr .FunctResident -;[]----------------------------------------------------------[] .PrintFile: CALL ResInvert .PrintFileL3 LD HL,SetInvert PUSH HL LD DE,PrintFileR jr .FunctResident -;[]----------------------------------------------------------[] .DiskInfo: CALL ResInvert .DiskInfoL4: LD DE,DiskInfoR jr .FunctResident -;[]----------------------------------------------------------[] .SystemInfo: LD DE,SystemInfoR jr .FunctResident -;[]----------------------------------------------------------[] .Version: LD DE,VersionR jr .FunctResident -;[]----------------------------------------------------------[] .QSearch: LD DE,QSearchR jr .FunctResident @@ -461,7 +421,6 @@ RESIDENT jr .FunctResident ENDIF -;[]==========================================================[] .MarkFile: LD DE,MarkFileR ; resident 3 .HelpResident: LD A,(RAMPAGES.FNREZ3) @@ -469,7 +428,7 @@ RESIDENT JP Resident IF MARK_DIR -.GetDirSize: LD DE,GetDirSizeR +.CountingDir LD DE,CountingDirR JR .HelpResident .MkdirsDst LD DE,MkdirsDstR @@ -513,13 +472,8 @@ RESIDENT END_BLOCK_1: DEPHASE ; BASE_ADDR -;[]=======================================================================[] PHASE 0x4000 -; MAIN.FNREZ2 START_BLOCK_2 -;FlexDIRECTORY: DB 0x100 DUP 0 -;FLXdir: DB 0x100 DUP 0 - include rez2_fnfunct.a80 include rez2_fnmisc.a80 include rez2_fnsearch.a80 @@ -532,7 +486,6 @@ START_BLOCK_2 END_BLOCK_2: DEPHASE ; 0x4000 -;[]=======================================================================[] PHASE 0xC000 ; MAIN.FNFONT START_BLOCK_4 @@ -544,7 +497,6 @@ IFFFONT_RAW_END END_BLOCK_4: DEPHASE ; 0xC000 -;[]-----------------------------------------------------------------------[] PHASE 0x4000 ; MAIN.FNREZ3 START_BLOCK_3 @@ -568,7 +520,6 @@ HelpTextEnd: END_BLOCK_3: DEPHASE ; 0x4000 -;[]-----------------------------------------------------------------------[] IFDEF ENABLE.VIEW ; MAIN.FNVIEW START_BLOCK_VIEWER @@ -586,7 +537,6 @@ START_BLOCK_EDITOR DEPHASE ; 0xC000 END_BLOCK_EDITOR ENDIF -;[]-----------------------------------------------------------------------[] ; чисто для отладки BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 ; основной код diff --git a/fnmenu.a80 b/fnmenu.a80 index e5c7c4b..c6e2ab0 100644 --- a/fnmenu.a80 +++ b/fnmenu.a80 @@ -1,11 +1,11 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] PullDown: CALL ResInvert CALL SetPullInvert PullLoop: LD IX,PullTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,PullLoop LD A,B @@ -106,7 +106,7 @@ PullInvert: LD L,A EX AF,AF' SRL A LD IXL,A - JP InvertRectan + JP ReplaceColorRectan MFile: CALL ResPullInvert JP MenuFile.L1 @@ -364,7 +364,7 @@ MenuWork: LD (CurWTab),HL SUB A LD (CurMLine),A LD IX,(CurWTab) - CALL TestCoords + CALL CheckCoordsMouse CALL TestInvert JR NZ,MenuLoop LD A,0 @@ -373,7 +373,7 @@ MKeyFlg EQU $-1 CALL NZ,SetMSelect MenuLoop: LD IX,0x0000 CurWTab EQU $-2 - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,MenuLoop LD A,B @@ -910,8 +910,8 @@ ChangeDrv: PUSH IY PUSH HL PUSH DE PUSH BC - LD A,0x80 - CALL PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL PrintTxtLine_IFF POP BC POP DE POP HL @@ -949,7 +949,7 @@ ChangeDrv: PUSH IY LD (CurDrive),A CALL SetDriveInv DriveLoop: LD IX,DriveTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,DriveLoop LD A,B @@ -1091,7 +1091,7 @@ DriveInvert: LD L,A EX AF,AF' SRL A LD IXL,A - JP InvertRectan + JP ReplaceColorRectan CurDrive: DEFB 0x00 Drive: DEFB " ",0 @@ -1183,7 +1183,7 @@ GetPlugins: LD HL,WorkBuffer + 0x300 ; W_TEXT 50,179,COLORP.HIGHGRAY,"Cancel" W_END .Loop LD IX,PluginsTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,.Loop LD A,B diff --git a/fnmouse.a80 b/fnmouse.a80 index 49cf754..9510612 100644 --- a/fnmouse.a80 +++ b/fnmouse.a80 @@ -1,8 +1,9 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]----------------------------------------------------------[] -ResFire: LD A,(MouseFlag) +WaitUnpressMouse: + LD A,(MouseFlag) OR A RET Z RsFire1 CALL TestCMOS @@ -15,7 +16,8 @@ RsFire1 CALL TestCMOS ; Проверка координат мыши по таблице ; На вход: ; IX - Адрес таблицы -TestCoords: CALL TestCMOS +CheckCoordsMouse: + CALL TestCMOS SPMOUSE MOUSEF.READ_STATE EX AF,AF' LD BC,0x0000 @@ -28,7 +30,7 @@ TestCoords: CALL TestCMOS JR Z,.L3 .L2 LD (.PrvTabl),IX CALL ResMInvert - LD BC,ResFire + LD BC,WaitUnpressMouse PUSH BC SUB A LD (RunFlag),A @@ -219,7 +221,7 @@ SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 SRL A LD IXL,A LD DE,(COLORP.HIGHGRAY + COLORI.BLACK) << 8 | (COLORP.BLUE + COLORI.WHITE);0x804F - CALL InvertRectan + CALL ReplaceColorRectan POP IX PUSH IX NxCrds1 LD BC,FORMTABL.SIZE;0x0010 @@ -256,7 +258,7 @@ ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAG + 1) ; 09 SRL A LD IXL,A LD DE,(COLORP.BLUE + COLORI.WHITE) << 8 | (COLORP.HIGHGRAY + COLORI.BLACK);0x4F80 - CALL InvertRectan + CALL ReplaceColorRectan POP DE POP HL POP IX @@ -283,7 +285,7 @@ SetSelect2 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 SRL A LD IXL,A LD DE,(COLORP.HIGHGRAY + COLORI.BLACK) << 8 | (COLORP.BLUE + COLORI.WHITE);0x804F - CALL InvertRectan + CALL ReplaceColorRectan POP AF POP DE POP HL @@ -293,7 +295,7 @@ SetSelect2 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 ResSelect2 PUSH HL PUSH DE PUSH IX - LD IX,(TestCoords.PrvTabl) + LD IX,(CheckCoordsMouse.PrvTabl) LD BC,FORMTABL.SIZE;0x0010 NxCrds3 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAG) ; 08 JR NZ,ResSel22 @@ -319,7 +321,7 @@ ResSel22 BIT FORMTABL.B_HZ,(IX+FORMTABL.FLAG + 1) ; 09 SRL A LD IXL,A LD DE,(COLORP.BLUE + COLORI.WHITE) << 8 | (COLORP.HIGHGRAY + COLORI.BLACK);0x4F80 - CALL InvertRectan + CALL ReplaceColorRectan ResSel2E POP IX POP DE POP HL diff --git a/fnpanel.a80 b/fnpanel.a80 index 35eef2d..09878a0 100644 --- a/fnpanel.a80 +++ b/fnpanel.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]----------------------------------------------------------[] PrintDisks LD L,(IY + PANEL.X) @@ -116,7 +116,7 @@ PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG) LD C,0x30 LD A,0x00 .PathCol EQU $-1 - JP PrnRangPathL + JP PrintPathLeft ;[]----------------------------------------------------------[] PrintDOSPath PUSH IY @@ -148,7 +148,7 @@ PrintDOSPath PUSH IY LD DE,250 LD BC,231 LD A,COLORP.HIGHGRAY + COLORI.BLACK - JP PrnRangPathR + JP PrintPathRight ;[]----------------------------------------------------------[] PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) @@ -179,7 +179,7 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) SET 6,H ; | 0x4000 LD DE,WorkBuffer LD BC,FileHDR.SIZE - CALL MoveBytes + CALL MoveBytesInc POP AF SETPORT WINSP.CPU1,,0 LD HL,WorkBuffer + FileHDR.SIZE;0x18 @@ -244,7 +244,7 @@ PrntFI LD HL,WorkBuffer + FileHDR.SIZE;0x18 INC DE LD BC,215 LD A,COLORP.HIGHGRAY + COLORI.BLACK - JP PrnTxtLnNorm + JP PrintTxtLine GetFileLen BIT DIR.B_Dir,(IX + FileHDR.Attr) JP NZ,PDirectory @@ -344,13 +344,13 @@ PrnSelInfo LD L,(IY+PANEL.BYTES_MARK) LD B,(IY+PANEL.BYTES_MARK + 3) LD A,(IY+PANEL.BYTES_MARK_H) ; [ ] FAT32 LD DE,WorkBuffer - CALL ConvNumTxt40 ; [ ] fat32 + CALL ConvertNumbers_40b ; [ ] fat32 LD HL,CrSizeT LD BC,0x000A LDIR LD L,(IY+PANEL.FILES_MARK) LD H,(IY+PANEL.FILES_MARK + 1) - CALL ConvNumTxt16 + CALL ConvertNumbers_16b LD HL,CrSelT LD BC,0x000F LDIR @@ -387,7 +387,7 @@ PrnSelInfo LD L,(IY+PANEL.BYTES_MARK) INC DE LD BC,215 LD A,COLORP.HIGHGRAY + COLORI.BLACK - JP PrnTxtLnNorm + JP PrintTxtLine CrSizeT DEFB " bytes in " CrSelT DEFB " selected files" @@ -444,7 +444,7 @@ PrnDIRECT BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) SET 6,H ; | 0x4000 LD DE,WorkBuffer LD BC,0x33 * FileHDR.SIZE;0x18 - CALL MoveBytes + CALL MoveBytesInc POP AF SETPORT WINSP.CPU1,,0 LD B,COLORP.PANEL + COLORI.FILES @@ -538,7 +538,7 @@ PrintFULL PUSH IY SET 6,H ; | 0x4000 LD DE,WorkBuffer LD BC,0x12 * FileHDR.SIZE;0x18 - CALL MoveBytes + CALL MoveBytesInc POP AF SETPORT WINSP.CPU1,,0 LD B,COLORP.PANEL + COLORI.FILES @@ -684,7 +684,7 @@ PrintTREE JR NZ,.PrDIRb1 .PrDIRb2 LD DE,WorkBuffer+0x100 LD BC,0x12*0x10 - CALL MoveBytes + CALL MoveBytesInc POP AF SETPORT WINSP.CPU1,,0 LD B,COLORP.PANEL + COLORI.FILES @@ -1132,7 +1132,7 @@ PrnInvert LD A,(IY + PANEL.FILES_ALL) LD IX,8 << 8 + 48 DEC HL DEC HL - JP InvertRectan + JP ReplaceColorRectan PrnInvertP LD L,(IY + PANEL.CURR_FILE) LD H,(IY + PANEL.CURR_FILE + 1) @@ -1148,7 +1148,7 @@ PrnInvertP LD L,(IY + PANEL.CURR_FILE) JR Z,.L1 LD HL,326 .L1 LD IX,8 << 8 + 146 - JP InvertRectan + JP ReplaceColorRectan PrnTreeInv PUSH HL GETPORT WINSP.CPU1 @@ -1236,4 +1236,4 @@ PrnTreeInv PUSH HL ADD HL,BC .L5 POP BC LD IXH,0x08 - JP InvertRectan + JP ReplaceColorRectan diff --git a/fnprint.a80 b/fnprint.a80 index ddd5c7f..382df16 100644 --- a/fnprint.a80 +++ b/fnprint.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 20.02.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]----------------------------------------------------------[] ; Процедура вывода текстовых строк на графический экран 640x256 @@ -11,7 +11,7 @@ ; BC - позиция вывода по Y ; A - цвет печати (7-4бит PAPER, 3-0бит INK) ; (конец строки - 0) -PrnRangPathL PUSH DE +PrintPathLeft: PUSH DE PUSH BC PUSH AF DI @@ -86,7 +86,7 @@ PrRngLE POP AF POP AF POP BC POP DE - JP PrnTxtLnIFF + JP PrintTxtLine_IFF ;[]----------------------------------------------------------[] ; Процедура вывода текстовых строк на графический экран 640x256 @@ -98,7 +98,7 @@ PrRngLE POP AF ; BC - позиция вывода по Y ; A - цвет печати (7-4бит PAPER, 3-0бит INK) ; (конец строки - 0) -PrnRangPathR PUSH AF +PrintPathRight: PUSH AF PUSH BC PUSH DE DI @@ -193,7 +193,7 @@ PrRngRE POP AF EX DE,HL POP BC POP AF - JP PrnTxtLnIFF + JP PrintTxtLine_IFF ;[]----------------------------------------------------------[] ; Процедура вывода текстовых строк на графический экран 640x256 @@ -205,7 +205,7 @@ PrRngRE POP AF ; BC - позиция вывода по Y ; A - цвет печати (7-4бит PAPER, 3-0бит INK) ; (конец строки - 0) -PrnRangPathC PUSH BC +PrintPathCentr: PUSH BC PUSH AF PUSH DE DI @@ -289,7 +289,7 @@ PrRngCE POP AF EX DE,HL POP AF POP BC - JP PrnTxtLnIFF + JP PrintTxtLine_IFF ;[]----------------------------------------------------------[] ; Процедура вывода текстовых строк на графический экран 640x256; @@ -300,7 +300,8 @@ PrRngCE POP AF ; BC - позиция вывода по Y ; A - цвет печати (7-4бит PAPER, 3-0бит INK) ; (конец строки - 0) -PrnTxtLnIFF PUSH IY +PrintTxtLine_IFF: + PUSH IY LD IYL,C ; Y координата LD B,A GETPORT WINSP.Y_PORT ; Сохраняем Y порт @@ -395,7 +396,7 @@ PrnIFFe LD L,C ; ; BC - позиция вывода по Y ; A - цвет печати (7-4бит PAPER, 3-0бит INK) ; (конец строки - 0) -PrnTxtLnNorm PUSH IY +PrintTxtLine PUSH IY LD IYL,C ; Y координата LD B,A GETPORT WINSP.Y_PORT ; Сохраняем Y порт @@ -492,7 +493,8 @@ PrnNORe LD L,C ; ; B - кол-во печатаемых символов ; A - цвет печати (7-4бит PAPER, 3-0бит INK) ; (конец строки - 0) -PrnTxtLnNormC PUSH IY +PrintTxtLineNumsChar: + PUSH IY LD IYL,C ; Y координата LD IYH,B ; кол-во симв LD B,A diff --git a/fnsort.a80 b/fnsort.a80 index 3bcbe26..06c7fc7 100644 --- a/fnsort.a80 +++ b/fnsort.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]----------------------------------------------------------[] ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) @@ -693,7 +693,7 @@ SortDIRins DEC HL EX DE,HL LD A,B OR C - CALL NZ,MoveBytesUp + CALL NZ,MoveBytesDec POP DE POP HL LD BC,FileHDR.SIZE diff --git a/fnsys.a80 b/fnsys.a80 index b91734a..804e4f4 100644 --- a/fnsys.a80 +++ b/fnsys.a80 @@ -1,12 +1,12 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij ;[]-----------------------------------------------------------[] ; Процедура умножения (8*8bit) ; На вход: E * C ; На выход: ; HL - результат -Mult8 SUB A +Mul_8X8_16b: SUB A LD L,A LD H,A LD D,A @@ -26,7 +26,7 @@ Mult8 SUB A ; На вход: DE * C ; На выход: ; AHL - результат -Mult16X8 SUB A +Mul_16X8_24b: SUB A LD L,A LD H,A CP C @@ -48,7 +48,7 @@ Mult16X8 SUB A ; На вход: DE * BC ; На выход: ; HL - результат -Mult16 LD HL,0x0000 +Mul_16X16_16b: LD HL,0x0000 LD A,0x10 .L1 RR B RR C @@ -64,7 +64,7 @@ Mult16 LD HL,0x0000 ; На вход: DE * BC ; На выход: ; HLDE - результат -Mult16X16 PUSH IX +Mul_16X16_32b: PUSH IX EX DE,HL LD E,0x00 LD D,E @@ -90,7 +90,7 @@ Mult16X16 PUSH IX ; На вход: HLDE * BC ; На выход: ; HLDE - результат -Mult32 PUSH IX +Mul_32X16_32b: PUSH IX LD IX,0x0000 LD A,0x20 EX DE,HL @@ -114,7 +114,8 @@ Mult32 PUSH IX ; На выход: ; BC - результат ; HL - остаток -Divis16X16 LD A,D +Div_16X16_16b_16b: + LD A,D OR E RET Z LD HL,0x0000 @@ -149,7 +150,8 @@ Divis16X16 LD A,D ; На выход: ; A -результат ; HL - остаток -Divis24X16 LD A,D +Div_24X16_8b_16b: + LD A,D CPL LD D,A LD A,E @@ -184,7 +186,8 @@ Divis24X16 LD A,D ; На выход: ; DE - результат ; HL - остаток -Divis32X16 LD A,0x10 +Div_32X16_16b_16b: + LD A,0x10 .L2 EX DE,HL ADD HL,HL EX DE,HL @@ -206,7 +209,8 @@ Divis32X16 LD A,0x10 ; На выход: ; HLDE - результат ; BC-остаток -Divis32 PUSH IX +Div_32X16_32b_16b: + PUSH IX LD IXL,E LD IXH,D EX DE,HL @@ -235,7 +239,8 @@ Divis32 PUSH IX ;На вход: ; ABCHL - число 40 бит ; DE - буфер -ConvNumTxt40: PUSH IX +ConvertNumbers_40b: + PUSH IX LD IX,ConvertFlg RES 7,(IX+0x00) PUSH BC @@ -273,7 +278,8 @@ ConvNumTxt40: PUSH IX ;На вход: ; BCHL - число 32 бит ; DE - буфер -ConvNumTxt32 PUSH IX +ConvertNumbers_32b: + PUSH IX LD IX,ConvertFlg RES 7,(IX+0x00) PUSH BC @@ -333,7 +339,8 @@ ConvNumTxt32_Shared: ; На вход: ; HL - число 16 бит ; DE - буфер -ConvNumTxt16 PUSH IX +ConvertNumbers_16b: + PUSH IX PUSH BC LD IX,ConNumbExit ld (ChooseStringFormat.address),IX @@ -359,7 +366,8 @@ ConvNumTxt16 PUSH IX ; На вход: ; A - число 8 бит ; DE - буфер -ConvNumTxt8 PUSH IX +ConvertNumbers_8b: + PUSH IX PUSH BC LD IX,ConNumbExit ld (ChooseStringFormat.address),IX @@ -452,7 +460,7 @@ ConNumbExit: CP "0" ; На выход: ; HLIX - число ; CY - ошибка -ConvTxtNum32 LD IX,0x0000 +atoi_32b: LD IX,0x0000 LD HL,0x0000 ConvTN1 LD A,(DE) CP 0x21 @@ -494,7 +502,7 @@ ConvTN1 LD A,(DE) ; На выход: ; HL - число ; CY - ошибка -ConvTxtNum16 LD HL,0x0000 +atoi_16b: LD HL,0x0000 ConvTN2 LD A,(DE) CP 0x21 CCF @@ -522,7 +530,7 @@ ConvTN2 LD A,(DE) JR ConvTN2 ;[]-----------------------------------------------------------[] -MoveBytes LD A,B +MoveBytesInc: LD A,B OR A JR Z,MvByte1 DI @@ -563,7 +571,7 @@ Mvlen1 EQU $-1 INC H RET -MoveBytesUp LD A,B +MoveBytesDec: LD A,B OR A JR Z,MovUp1 DI @@ -675,49 +683,52 @@ SkipWord: ld b,0x20 jr .skipSpace ;[]----------------------------------------------------------[] -SetCMOSPrint: EX AF,AF' - LD (CMOSposXT),HL - LD (CMOSposYT),DE +; HL - X позиция вывода времени +; DE - Y позиция вывода времени +; B - цвет вывода времени +; HL' - X позиция вывода даты +; DE' - Y позиция вывода даты +; B' - цвет вывода даты +CMOSPrintDateTime: + EX AF,AF' + LD (CMOSpos.posXtime),HL + LD (CMOSpos.posYtime),DE LD A,B - LD (CMOSColorT),A + LD (CMOSpos.colorTime),A SUB A LD L,A LD H,A LD (CMOSPrint),A - LD (CMOSTime),HL - LD (CMOSTime+2),A - LD (CMOSData),HL - LD (CMOSData+2),A - LD HL,CMOSTimeT - LD DE,CMOSDataT - LD A,'0' - LD B,0x03 -.L1 LD (HL),A - INC HL - LD (HL),A - INC HL - INC HL - LD (DE),A - INC DE - LD (DE),A - INC DE - INC DE - DJNZ .L1 + LD (CMOSpos.Time),HL + LD (CMOSpos.Time + 2),A +; LD (CMOSpos.Date),HL +; LD (CMOSpos.Date + 2),A +; LD HL,CMOSpos.TimeTXT +; LD DE,CMOSpos.DateTXT +; LD A,'0' +; LD B,0x03 +;.L1 LD (HL),A +; INC HL +; LD (HL),A +; INC HL +; INC HL +; LD (DE),A +; INC DE +; LD (DE),A +; INC DE +; INC DE +; DJNZ .L1 EX AF,AF' - LD (CMOSOut),A + LD (CMOSpos.CMOSOut),A OR A JR Z,TestCMOS EXX - LD (CMOSposXD),HL - LD (CMOSposYD),DE + LD (CMOSpos.posXDate),HL + LD (CMOSpos.posYDate),DE LD A,B - LD (CMOSColorD),A + LD (CMOSpos.colorDate),A EXX - JR TestCMOS - -ResCMOSPrint: LD A,0x01 - LD (CMOSPrint),A - RET +; JR TestCMOS TestCMOS: LD A,(CMOSFlag) OR A @@ -733,143 +744,143 @@ TestCMOS: LD A,(CMOSFlag) ;!TEST ;EI PUSH DE - PUSH IX + PUSH IX ; DE,IX сохранили день,месяц год EX DE,HL - LD HL,(CMOSTime) + LD HL,(CMOSpos.Time) OR A SBC HL,DE - JR NZ,PrnCMOSTime - LD A,(CMOSTime+2) + JR NZ,.PrnCMOSTime + LD A,(CMOSpos.Time + 2) CP B JR Z,TCMOS1 -PrnCMOSTime: EX DE,HL - LD (CMOSTime),HL +.PrnCMOSTime: EX DE,HL + LD (CMOSpos.Time),HL LD A,B - LD (CMOSTime+2),A - LD DE,CMOSTimeT - LD A,H - CALL GetCMOS + LD (CMOSpos.Time + 2),A + LD DE,CMOSpos.TimeTXT + LD A,H ; часы + CALL Conv4CMOS INC DE - LD A,L - CALL GetCMOS + LD A,L ; минуты + CALL Conv4CMOS INC DE - LD A,(CMOSTime+2) - CALL GetCMOS - LD HL,CMOSTimeT - LD DE,(CMOSposXT) - LD BC,(CMOSposYT) - LD A,(CMOSColorT) - CALL PrnTxtLnIFF + LD A,(CMOSpos.Time + 2) ; секунды + CALL Conv4CMOS + LD HL,CMOSpos.TimeTXT + LD DE,(CMOSpos.posXtime) + LD BC,(CMOSpos.posYtime) + LD A,(CMOSpos.colorTime) + CALL PrintTxtLine_IFF TCMOS1 POP IX - POP DE - LD A,(CMOSOut) + POP DE ; DE,IX восстановили день,месяц,год + LD A,(CMOSpos.CMOSOut) OR A - JP Z,TCMOSex - PUSH IX - POP HL - LD BC,1900 - OR A - SBC HL,BC - LD B,L - LD HL,(CMOSData) - OR A - SBC HL,DE - JR NZ,PrnCMOSData - LD A,(CMOSData+2) - CP B - JP Z,TCMOSex -PrnCMOSData EX DE,HL - LD (CMOSData),HL - LD A,B - LD (CMOSData+2),A - LD DE,CMOSDataT + JP Z,TCMOSexit +; PUSH IX +; POP HL +; LD BC,1900 +; OR A +; SBC HL,BC +; LD B,L +; LD HL,(CMOSpos.Date) +; OR A +; SBC HL,DE +; JR NZ,.PrnCMOSData +; LD A,(CMOSpos.Date + 2) +; CP B +; JP Z,TCMOSexit +;.PrnCMOSData + EX DE,HL + LD (CMOSpos.Date),HL ; день,месяц +; LD A,B + LD (CMOSpos.Date + 2),IX ; год + LD A,(CMOSpos.CMOSOut) + DEC A + JR NZ,.TCMOS2 +; вывод даты ввиде 02.08.2025 + LD DE,CMOSpos.DateTXT LD A,H - CALL GetCMOS + CALL Conv4CMOS INC DE LD A,L - CALL GetCMOS + CALL Conv4CMOS INC DE - LD A,(CMOSData+2) - CALL GetCMOS - LD A,(CMOSOut) - DEC A - JR NZ,TCMOS2 - LD HL,CMOSDataT - LD DE,(CMOSposXD) - LD BC,(CMOSposYD) - LD A,(CMOSColorD) - CALL PrnTxtLnIFF - JR TCMOSex +; LD A,(CMOSpos.Date + 2) + LD HL,(CMOSpos.Date + 2) + CALL ConvertNumbers_16b;Conv4CMOS +; LD A,(CMOSpos.CMOSOut) +; DEC A +; JR NZ,.TCMOS2 + LD HL,CMOSpos.DateTXT + LD DE,(CMOSpos.posXDate) + LD BC,(CMOSpos.posYDate) + LD A,(CMOSpos.colorDate) + CALL PrintTxtLine_IFF + JR TCMOSexit -TCMOS2 LD DE,CMOSDataT1 +; вывов даты ввиде 2 Aug 2025 +.TCMOS2 LD DE,CMOSpos.DateT1 LD A,H - CALL ConvNumTxt8 + CALL ConvertNumbers_8b LD A,' ' LD (DE),A INC DE LD A,L DEC A ADD A,A - LD L,A +; LD L,A ADD A,A - ADD A,L +; ADD A,L LD HL,Month ADD A,L LD L,A - JR NC,.L1 - INC H -.L1 LD A,' ' + ADC A,H + SUB L + LD H,A + LD A,' ' .L2 LDI CP (HL) JR NZ,.L2 - LD (DE),A - INC DE - PUSH IX - POP HL - CALL ConvNumTxt16 +; LD (DE),A +; INC DE + LDI +; PUSH IX +; POP HL + LD HL,(CMOSpos.Date + 2) + CALL ConvertNumbers_16b SUB A LD (DE),A - LD HL,(CMOSposXD) - LD (CMOSclX),HL - LD HL,(CMOSposYD) - LD (CMOSclY),HL - LD A,(CMOSColorD) - AND 0xF0 - RRCA - RRCA - RRCA - RRCA - LD (CMOScol),A - MAKEWINDOW WINSUBOBJ.WOBIND - W_FILL 0,0,76,8,COLORI.BLACK - W_END -CMOSclX EQU $ - 10 -CMOSclY EQU $ - 8 -CMOScol EQU $ - 2 - LD HL,CMOSDataT1 - LD DE,(CMOSposXD) - LD BC,(CMOSposYD) - LD A,(CMOSColorD) - CALL PrnTxtLnIFF -TCMOSex POP IX +; LD HL,(CMOSpos.posXDate) +; LD (CMOSclX),HL +; LD HL,(CMOSpos.posYDate) +; LD (CMOSclY),HL +; LD A,(CMOSpos.colorDate) +; AND 0xF0 +; RRCA +; RRCA +; RRCA +; RRCA +; LD (CMOScol),A +; MAKEWINDOW WINSUBOBJ.WOBIND +; W_FILL 0,0,76,8,COLORI.BLACK +; W_END +;CMOSclX EQU $ - 10 +;CMOSclY EQU $ - 8 +;CMOScol EQU $ - 2 + LD HL,CMOSpos.DateT1 + LD DE,(CMOSpos.posXDate) + LD BC,(CMOSpos.posYDate) + LD A,(CMOSpos.colorDate) + CALL PrintTxtLine_IFF +TCMOSexit POP IX RET -;CMOSPrint: DB 0x01 -CMOSOut: DB 0 -CMOSposXT: DW 0 -CMOSposYT: DW 0 -CMOSColorT: DB 0 -CMOSTime: DB 3 DUP 0 -CMOSTimeT: DB "00:00:00",0 -CMOSposXD: DW 0 -CMOSposYD: DW 0 -CMOSColorD: DB 0 -CMOSData: DB 3 DUP 0 -CMOSDataT: DB "00/00/00",0 -CMOSDataT1: DB 14 DUP ' ' +;CMOSPrintOff: LD A,DateMonthFormat.Digit +; LD (CMOSPrint),A +; RET -GetCMOS: EX DE,HL - LD BC,(('0' - 1) << 8) | 10;0x2F0A +Conv4CMOS: EX DE,HL + LD BC,(('0' - 1) << 8) + 10 .L1 INC B SUB C JR NC,.L1 @@ -882,21 +893,39 @@ GetCMOS: EX DE,HL EX DE,HL RET -Month: DB "Jan " - DB "Febr " - DB "March " - DB "Apr " - DB "May " - DB "June " - DB "July " - DB "Aug " - DB "Sept " - DB "Oct " - DB "Nov " - DB "Dec " +CMOSpos +.CMOSOut: DB 0 ; тип вывода даты: + ; 0 - тест + ; 1 - день/месяц/год + ; 2 - день месяц год +.posXtime: DW 0 ; позиция X для времени +.posYtime: DW 0 ; позиция Y для времени +.colorTime: DB 0 ; цвет для времени +.Time: DB 3 DUP 0 ; часы,минуты,секунды +.TimeTXT: DZ "00:00:00" +.posXDate: DW 0 ; позиция X для даты +.posYDate: DW 0 ; позиция Y для даты +.colorDate: DB 0 ; цвет для даты +.Date: DD 0 ; день,месяц,год +.DateTXT: DZ "00.00.0000" +.DateT1: DB 14 DUP 0 + +Month: DB "Jan " + DB "Feb " + DB "Mar " + DB "Apr " + DB "May " + DB "Jun " + DB "Jul " + DB "Aug " + DB "Sep " + DB "Oct " + DB "Nov " + DB "Dec " ;[]----------------------------------------------------------[] -SetClock: LD A,(MouseFlag) +PointerMouseClock: + LD A,(MouseFlag) OR A RET Z PUSH IY @@ -922,7 +951,8 @@ SetClock: LD A,(MouseFlag) HALT RET -SetMouse LD A,(MouseFlag) +PointerMousePointer: + LD A,(MouseFlag) OR A RET Z PUSH IY diff --git a/fntab.a80 b/fntab.a80 index 2d04d11..d50f330 100644 --- a/fntab.a80 +++ b/fntab.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 02.05.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]==========================================================[] ; Формат таблицы @@ -240,20 +240,20 @@ PullTab DW 6, 40, 15, 26,%0000000000100000,0,MFile,0 DW 0x8000 ;[]==========================================================[] -FilterTab DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0 - DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0 - DW 0,208, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 432,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0 +FilterTab DW 240,312,123,137,%0000000000000001,0,InputLine.InputLineExitOk,0 + DW 328,400,123,137,%0000000000000001,0,InputLine.InputLineExitCancel,0 + DW 0,208, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 432,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640, 0, 81,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640,143,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 -SMaskTab DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0 - DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0 - DW 0,208, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 432,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0 +SMaskTab DW 240,312,123,137,%0000000000000001,0,InputLine.InputLineExitOk,0 + DW 328,400,123,137,%0000000000000001,0,InputLine.InputLineExitCancel,0 + DW 0,208, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 432,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640, 0, 81,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640,143,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 DOSTab DW 0,256, 0,256,%0000000000000000,0,DOSLnExtC,0 @@ -262,12 +262,12 @@ DOSTab DW 0,256, 0,256,%0000000000000000,0,DOSLnExtC,0 DW 0,640,239,256,%0000000000000000,0,DOSLnExtC,0 DW 0x8000 -ViewEditTab DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0 - DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0 - DW 0,200, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 440,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0 +ViewEditTab DW 240,312,123,137,%0000000000000001,0,InputLine.InputLineExitOk,0 + DW 328,400,123,137,%0000000000000001,0,InputLine.InputLineExitCancel,0 + DW 0,200, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 440,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640, 0, 81,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640,143,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 ;[]==========================================================[] diff --git a/fntree.a80 b/fntree.a80 index ac5a2e4..b173de9 100644 --- a/fntree.a80 +++ b/fntree.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij MAX_LEVEL_DIR EQU 21 @@ -451,7 +451,7 @@ LoadItemDIRR: LD DE,(EndTree) LD DE,336 ; X pos LD BC,116 ; Y pos LD A,COLORP.HIGHGRAY - JP PrnTxtLnIFF + JP PrintTxtLine_IFF .GetN16 LD A,'0' - 1 OR A diff --git a/fnwin.a80 b/fnwin.a80 index b7fb423..4747b3c 100644 --- a/fnwin.a80 +++ b/fnwin.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 17.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]----------------------------------------------------------[] ;Процедура отчиски 0 экрана @@ -200,9 +200,10 @@ StoreWindow DI LD HL,RAMPAGES.BuffPg1 ADD A,L LD L,A - JR NC,.L1 - INC H -.L1 LD A,(HL) + ADC A,H + SUB L + LD H,A + LD A,(HL) SETPORT WINSP.CPU3,,0 EXX LD A,H @@ -328,9 +329,10 @@ RestoreWindow LD HL,MakeWindow.Open LD HL,RAMPAGES.BuffPg1 ADD A,L LD L,A - JR NC,.L2 - INC H -.L2 LD A,(HL) + ADC A,H + SUB L + LD H,A + LD A,(HL) SETPORT WINSP.CPU3,,0 EXX LD A,H @@ -469,7 +471,7 @@ PutAdrTxtLine LD HL,(MakeWindow.PositX) LD A,H OR L LD A,IYL - CALL NZ,PrnTxtLnIFF ; печатать если адрес не 0 + CALL NZ,PrintTxtLine_IFF ; печатать если адрес не 0 POP IY RET @@ -495,7 +497,7 @@ PutTxtLine LD HL,(MakeWindow.PositX) INC IY PUSH IY POP HL - CALL PrnTxtLnIFF + CALL PrintTxtLine_IFF PUSH HL POP IY RET @@ -761,7 +763,7 @@ PutButton LD HL,(MakeWindow.PositX) INC IY PUSH IY POP HL - CALL PrnTxtLnIFF + CALL PrintTxtLine_IFF PUSH HL POP IY RET @@ -996,7 +998,7 @@ SBdown DB 0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77 ; 7 ;[]----------------------------------------------------------[] -; Процедура инвертирования прямоугольной плоскости +; Процедура замены цвета в прямоугольной плоскости ; На вход: ; HL - X координата ; BC - Y координата @@ -1004,7 +1006,8 @@ SBdown ; LX - длина X ; D - текущий цвет ; E - нужный цвет -InvertRectan PUSH IY +ReplaceColorRectan: + PUSH IY GETPORT WINSP.Y_PORT ; Сохраняем Y порт PUSH AF GETPORT WINSP.CPU1 diff --git a/fnwork.a80 b/fnwork.a80 index 948e32d..0db1930 100644 --- a/fnwork.a80 +++ b/fnwork.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 29.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]===========================================================[] CursUp LD A,(IY + PANEL.FILES_ALL) @@ -171,7 +171,7 @@ ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG) POP IX LD DE,PANEL.BAR_X ADD IX,DE - JP PrnHScrBar + JP DrawHScrollBar ScrlDnP GETPORT WINSP.CPU1 @@ -257,7 +257,7 @@ ScrlDnP POP IX LD DE,PANEL.BAR_X ADD IX,DE - JP PrnVScrBar + JP DrawVScrollBar ScrlDnT GETPORT WINSP.CPU1 @@ -344,7 +344,7 @@ ScrDdn2 LD DE,WorkBuffer+0x100 POP IX LD DE,PANEL.BAR_X ADD IX,DE - JP PrnVScrBar + JP DrawVScrollBar ;[]===========================================================[] CursDown LD C,(IY+PANEL.FILES_ALL) @@ -507,7 +507,7 @@ ScrlUp1 BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG) POP IX LD DE,PANEL.BAR_X ADD IX,DE - JP PrnHScrBar + JP DrawHScrollBar ScrlUpP GETPORT WINSP.CPU1 @@ -594,7 +594,7 @@ ScrlUpP POP IX LD DE,PANEL.BAR_X ADD IX,DE - JP PrnVScrBar + JP DrawVScrollBar ScrlUpT GETPORT WINSP.CPU1 @@ -681,7 +681,7 @@ ScrDup1 PUSH BC POP IX LD DE,PANEL.BAR_X ADD IX,DE - JP PrnVScrBar + JP DrawVScrollBar ; На вход: ; HL - X позиция @@ -858,9 +858,9 @@ PageUDex CALL PrintDIR LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar LD B,0x07 PgUDext PUSH BC SPMOUSE MOUSEF.READ_STATE @@ -1032,7 +1032,7 @@ NewFile1 LD HL,0x003F LD (IY+PANEL.CURR_FILE + 1),H CALL SetInvert CALL PrnFileInfo - JP ResFire + JP WaitUnpressMouse ;[]==========================================================[] OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) @@ -1111,7 +1111,7 @@ OpenF2 PUSH AF PUSH HL CALL ResInvert POP HL - CALL SetClock + CALL PointerMouseClock PUSH IY SPDSS DSSF.CHDIR POP IY @@ -1147,13 +1147,13 @@ OpenF2 PUSH AF LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar - CALL SetMouse + CALL NZ,DrawVScrollBar + CALL PointerMousePointer LD A,(TreeFlag) OR A - JP Z,ResFire + JP Z,WaitUnpressMouse PUSH IY BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) LD IY,LeftPanel @@ -1176,7 +1176,7 @@ OpenF2 PUSH AF POP IX LD DE,PANEL.BAR_X ADD IX,DE - CALL PrnVScrBar + CALL DrawVScrollBar POP IY RET @@ -1353,7 +1353,7 @@ ShowDSlp JR Z,ShowDSlp ShowDSexit SPDSS DSSF.SETVMOD,0,SETVMOD.GRF640X256 - JP ResFire + JP WaitUnpressMouse ;[]==========================================================[] RunEXEfile: LD IX,fn_ext diff --git a/plugins/build_all.bat b/plugins/build_all.bat index 854715d..5f9da7f 100644 --- a/plugins/build_all.bat +++ b/plugins/build_all.bat @@ -1,7 +1,7 @@ @echo off -cls +rem cls cd cdplayer call build diff --git a/plugins/calc/calc.a80 b/plugins/calc/calc.a80 index f5f3c30..3cecb0b 100644 --- a/plugins/calc/calc.a80 +++ b/plugins/calc/calc.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 15.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij include macros.a80 include fn_const.a80 @@ -42,102 +42,102 @@ PluginEntry: ld hl, asc_C36E ; "7" ld de, 107h ld bc, 75h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C370 ; "8" ld de, 123h ld bc, 75h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr sub_C103: ld hl, asc_C372 ; "9" ld de, 140h ld bc, 75h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C37F ; "/" ld de, 15Bh ld bc, 75h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C374 ; "C" ld de, 177h ld bc, 75h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C368 ; "4" ld de, 107h ld bc, 84h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C36A ; "5" ld de, 123h ld bc, 84h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C36C ; "6" ld de, 140h ld bc, 84h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C37D ; "*" ld de, 15Bh ld bc, 84h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C376 ; "CE" ld de, 178h ld bc, 84h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C362 ; "1" ld de, 107h ld bc, 93h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C364 ; "2" ld de, 123h ld bc, 93h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C366 ; "3" ld de, 140h ld bc, 93h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C37B ; "-" ld de, 15Bh ld bc, 93h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C387 ; "=" ld de, 178h ld bc, 9Ah - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C360 ; "0" ld de, 107h ld bc, 0A2h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C381 ; "+/-" ld de, 123h ld bc, 0A2h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C385 ; "." ld de, 13Fh ld bc, 0A2h - ld a, 80h - call JUMPS.PrnRangPathC + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr ld hl, asc_C379 ; "+" ld de, 15Bh ld bc, 0A2h - ld a, 80h - call JUMPS.PrnRangPathC - call JUMPS.ResFire + ld a,COLORP.HIGHGRAY + COLORI.BLACK + call JUMPS.PrintPathCentr + call JUMPS.WaitUnpressMouse loc_C1F4: call sub_C324 loc_C1F7: ld ix, PluginMouseTab - call JUMPS.TestCoords + call JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY jp z, loc_C1F7 ld a, b @@ -290,9 +290,8 @@ sub_C324: ld hl, asc_C34D sub_C32D: ld ix, 48h ld de, 183h ld bc, 65h - ld a, 80h - call JUMPS.PrnRangPathR - ret + ld a,COLORP.HIGHGRAY + COLORI.BLACK + JP JUMPS.PrintPathRight byte_C33D: db 0 byte_C33E: db 0 diff --git a/plugins/cdplayer/build.bat b/plugins/cdplayer/build.bat index 27a9cd2..f3d815b 100644 --- a/plugins/cdplayer/build.bat +++ b/plugins/cdplayer/build.bat @@ -6,7 +6,7 @@ set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad call ..\..\setpath_includes set includes=%includes%;..\..\ -cls +rem cls asl -U -L -C -x -olist tmp\cdplayer.lst -i %includes% cdplayer.a80 || goto error p2bin cdplayer.p ..\cdplayer.flx -r $-$ -k diff --git a/plugins/cdplayer/cdplayer.a80 b/plugins/cdplayer/cdplayer.a80 index 988b446..1884ae0 100644 --- a/plugins/cdplayer/cdplayer.a80 +++ b/plugins/cdplayer/cdplayer.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 15.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij include macros.a80 include fn_const.a80 @@ -36,7 +36,7 @@ PluginEntry: W_BUTTON 442,35,36,18 W_HORIZLINE 2,56,480 W_END - call JUMPS.ResFire + call JUMPS.WaitUnpressMouse CALL SHOW_BUTTON ; вывод иконок на кнопки IF DEBUG CALL DEBUG_TXTKEYS ; отладочный текст @@ -68,7 +68,7 @@ plugin_loop: LD HL,FLAG CALL Z,BIGDIGITSALL ; или выводим на экран ; основной цикл опроса управления .L3 ld ix,PluginMouseTab - call JUMPS.TestCoords + call JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY jr z,plugin_loop ld a,b @@ -310,7 +310,7 @@ CDinit: LD B,0xC0 - 1 LD DE,360 LD BC,140 LD A,COLORP.HIGHGRAY + COLORI.BLUE - CALL JUMPS.PrnTxtLnIFF + CALL JUMPS.PrintTxtLine_IFF LD A,1 LD (CURRENT.TRACK),A ; обновление текущего номера трека и времени играния на экране @@ -363,7 +363,7 @@ noCD: ld hl,msgN ld a,COLORP.HIGHGRAY + COLORI.RED CDprn: ld de,84 ld bc,140 - JP JUMPS.PrnTxtLnIFF + JP JUMPS.PrintTxtLine_IFF msgY DZ "CD-ROM is present" msgN DZ "CD-ROM is absent" @@ -418,7 +418,7 @@ DEBUG_TXTKEYS LD HL,DEBUGTABLKEYS INC HL EX (SP),HL LD A,COLORP.HIGHGRAY + COLORI.RED - CALL JUMPS.PrnTxtLnIFF + CALL JUMPS.PrninTxtLine_IFF POP HL JR .L1 ENDIF diff --git a/plugins/date/date.a80 b/plugins/date/date.a80 index 4f7e515..92ca4d7 100644 --- a/plugins/date/date.a80 +++ b/plugins/date/date.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 15.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij include macros.a80 include fn_const.a80 @@ -52,17 +52,17 @@ aYear: EQU $ - STRLEN("Year") - 2 ld de,202 ld bc,149 ld a,COLORP.HIGHGRAY;80h - call JUMPS.PrnRangPathC + call JUMPS.PrintPathCentr ld hl,aReset ; "Reset" ld de,270 ld bc,149 ld a,COLORP.HIGHGRAY;80h - call JUMPS.PrnRangPathC + call JUMPS.PrintPathCentr ld hl,aQuit ; "Quit" ld de,438 ld bc,149 ld a,COLORP.HIGHGRAY;80h - call JUMPS.PrnRangPathC + call JUMPS.PrintPathCentr call GetSysTime call InitDate ld ix,320 @@ -70,13 +70,13 @@ aYear: EQU $ - STRLEN("Year") - 2 ld de,320 ld bc,114 ld a,COLORP.HIGHGRAY;80h - call JUMPS.PrnRangPathC + call JUMPS.PrintPathCentr call sub_C2B7 call PrintMonth call PrintYear - call JUMPS.ResFire + call JUMPS.WaitUnpressMouse _plugin_loop: ld ix,PluginMouseTab - call JUMPS.TestCoords + call JUMPS.CheckCoordsMouse halt SPDSS DSSF.SCANKEY jr z,_plugin_loop @@ -109,9 +109,8 @@ PrintDay: ld a,(Day) ld ix,14h ld de,0C3h ld bc,82h - ld a,80h - call JUMPS.PrnRangPathL - ret + ld a,COLORP.HIGHGRAY + COLORI.BLACK + JP JUMPS.PrintPathLeft DecDay: ld a,(max_date) ld b,a @@ -149,8 +148,7 @@ sub_C1F3: ld ix,40h ; '@' ld de,13Ah ld bc,82h ld a,80h - call JUMPS.PrnRangPathC - ret + JP JUMPS.PrintPathCentr DecMonth: ld a,(Month) cp 0Bh @@ -186,10 +184,9 @@ PrintYear: ld ix,1Ah ld de,1A7h ld bc,82h ld a,80h - call JUMPS.PrnRangPathC + call JUMPS.PrintPathCentr call sub_C268 - call sub_C2B7 - ret + JP sub_C2B7 DecYear: ld hl, a0+4 ; " " ld c,'9' @@ -230,25 +227,25 @@ loc_C281: ld (max_date),a ret loc_C285: ld de, a0+1 ; " " - call JUMPS.ConvTxtNum16 + call JUMPS.atoi_16b push hl pop bc ld de,190h push bc - call JUMPS.Divis16X16 + call JUMPS.Div_16X16_16b_16b pop bc ld a,h or l jr z,loc_C2AF ld de,4 push bc - call JUMPS.Divis16X16 + call JUMPS.Div_16X16_16b_16b pop bc ld a,h or l jr nz,loc_C2B3 ld de,64h ; 'd' - call JUMPS.Divis16X16 + call JUMPS.Div_16X16_16b_16b ld a,h or l jr z,loc_C2B3 @@ -264,11 +261,10 @@ sub_C2B7: ld a,(Day) cp b jr nc,loc_C2C4 ld (Day),a -loc_C2C4: call PrintDay - ret +loc_C2C4: JP PrintDay SetDate: ld de, a0+1 ; " " - call JUMPS.ConvTxtNum16 + call JUMPS.atoi_16b push hl SPDSS DSSF.GETTIME,0 ld a,(Day) @@ -284,8 +280,7 @@ SetDate: ld de, a0+1 ; " " ReadDate: call GetSysTime loc_C2E9: call PrintDay call PrintMonth - call PrintYear - ret + JP PrintYear GetSysTime: SPDSS DSSF.GETTIME,0 @@ -302,7 +297,7 @@ loc_C307: ld (hl),30h ; '0' djnz loc_C307 pop hl ld de, a0+1 ; " " - call JUMPS.ConvNumTxt16 + call JUMPS.ConvertNumbers_16b InitDate: ld hl, aToday+6 ; "" ld b,' ' loc_C318: ld (hl),0 diff --git a/plugins/fneditor/feditor.a80 b/plugins/fneditor/feditor.a80 index 1c692da..0f03580 100644 --- a/plugins/fneditor/feditor.a80 +++ b/plugins/fneditor/feditor.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 29.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij ENABLE_CODEPAGE EQU 0 @@ -46,7 +46,7 @@ EditorLoop CALL FEChCursor JP NZ,HEditLoop ; режим редактирования текст TEditLoop LD IX,FEASCIItab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY ; Ожидаем нажатия клавиш JR Z,EditorLoop LD A,D @@ -138,7 +138,7 @@ TEditLoop LD IX,FEASCIItab ; режим редактирования HEX HEditLoop LD IX,FEHEXtab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY ; Ожидаем нажатия клавиш JP Z,EditorLoop LD A,D @@ -276,7 +276,7 @@ EditorExit CALL PutString W_TEXT 150,45,COLORP.HIGHGRAY,"No" W_END SureLoop LD IX,SureTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,SureLoop LD A,B @@ -319,7 +319,7 @@ QuitAsk: ld a,0 W_TEXT 150,35,COLORP.HIGHGRAY,"No" W_END FEQuitLoop: LD IX,FEQuitTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,FEQuitLoop LD A,B @@ -389,18 +389,18 @@ FEInitScreen LD HL,WorkBuffer LD DE,0x0030 LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnRangPathL - LD HL,0x01FC - LD DE,0x0003 - LD B,0x08 + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintPathLeft + LD HL,508 + LD DE,3 + LD B,COLORP.BLACK + COLORI.HIGHGRAY EXX - LD HL,0x022E - LD DE,0x0003 - LD B,0x08 + LD HL,558 + LD DE,3 + LD B,COLORP.BLACK + COLORI.HIGHGRAY EXX - LD A,0x02 - JP JUMPS.SetCMOSPrint + LD A,DateMonthFormat.Text + JP JUMPS.CMOSPrintDateTime ;[]==========================================================[] InitStatus @@ -478,7 +478,7 @@ ASCIIenc2 EQU $ - 2 InitFile LD A,(EditMode) OR A JR NZ,InitFileHex - CALL JUMPS.SetClock + CALL JUMPS.PointerMouseClock LD HL,0x0000 LD E,L LD D,H @@ -511,7 +511,7 @@ InitAlp PUSH HL LD (CLine),HL LD H,0x00 LD (CAddX),HL - JP JUMPS.SetMouse + JP JUMPS.PointerMousePointer InitFileHex LD HL,(FEFileLenght) LD A,L @@ -704,7 +704,7 @@ FEAbout CALL FEResCursor W_TEXT 154,69,COLORP.HIGHGRAY,"Ok" W_END FEAboutLoop LD IX,FEAboutTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,FEAboutLoop LD A,B diff --git a/plugins/fneditor/fedos.a80 b/plugins/fneditor/fedos.a80 index 34da050..0860d98 100644 --- a/plugins/fneditor/fedos.a80 +++ b/plugins/fneditor/fedos.a80 @@ -1,8 +1,8 @@ -; LAST UPDATE: 29.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] -FELoadFile CALL JUMPS.SetClock +FELoadFile CALL JUMPS.PointerMouseClock LD DE,EditingFile PUSH HL SPDSS DSSF.F_FIRST,1,0x37 @@ -51,12 +51,12 @@ FELoadFile CALL JUMPS.SetClock AND 0xC0 RLCA RLCA - LD (IX+PROC.MAX_PAGES),A + LD (IX+PROGRESSBAR.MAX_PAGES),A SUB A - LD (IX+PROC.MAX_PAGES + 1),A - LD (IX+PROC.MAX_PAGES + 2),A - LD (IX+PROC.MAX_PAGES + 3),A - CALL JUMPS.InitProcess + LD (IX+PROGRESSBAR.MAX_PAGES + 1),A + LD (IX+PROGRESSBAR.MAX_PAGES + 2),A + LD (IX+PROGRESSBAR.MAX_PAGES + 3),A + CALL JUMPS.InitProgressBar MAKEWINDOW WINSUBOBJ.STORE W_MAIN 160,88,320,48 W_FILL 4,2,312,10,COLORI.BLACK @@ -97,8 +97,8 @@ FELoadFile CALL JUMPS.SetClock LD HL,WorkBuffer LD DE,0x00D8 LD BC,0x0068 - LD A,0x80 - CALL JUMPS.PrnRangPathL + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintPathLeft LD HL,EditingFile+33 SPDSS DSSF.OPEN,,1 PUSH AF @@ -162,7 +162,7 @@ FELoadExit HALT HALT WINDOWCLOSE PUSH AF - CALL JUMPS.SetMouse + CALL JUMPS.PointerMousePointer POP AF RET @@ -176,7 +176,7 @@ FENoRead LD A,(FEMemIndef) ;[]==========================================================[] FENewFile PUSH AF - CALL JUMPS.SetMouse + CALL JUMPS.PointerMousePointer POP AF CP 0x03 JR Z,.NewFile1 @@ -204,10 +204,10 @@ FENewFile PUSH AF LD HL,WorkBuffer LD DE,0x0140 LD BC,0x0076 - LD A,0x80 - CALL JUMPS.PrnRangPathC + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintPathCentr NewFLoop LD IX,NewFileTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,NewFLoop LD A,B @@ -307,7 +307,7 @@ EError PUSH AF ;[]==========================================================[] SaveFile CALL PutString - CALL JUMPS.SetClock + CALL JUMPS.PointerMouseClock LD IX,ProcessEdit LD HL,(FEFileLenght) LD A,H @@ -320,12 +320,12 @@ SaveFile CALL PutString OR L JR Z,.L1 INC B -.L1 LD (IX+PROC.MAX_PAGES),B +.L1 LD (IX+PROGRESSBAR.MAX_PAGES),B SUB A - LD (IX+PROC.MAX_PAGES + 1),A - LD (IX+PROC.MAX_PAGES + 2),A - LD (IX+PROC.MAX_PAGES + 3),A - CALL JUMPS.InitProcess + LD (IX+PROGRESSBAR.MAX_PAGES + 1),A + LD (IX+PROGRESSBAR.MAX_PAGES + 2),A + LD (IX+PROGRESSBAR.MAX_PAGES + 3),A + CALL JUMPS.InitProgressBar MAKEWINDOW WINSUBOBJ.STORE W_MAIN 160,88,320,48 W_FILL 4,2,312,10,COLORI.BLACK @@ -370,8 +370,8 @@ SaveFile CALL PutString LD HL,WorkBuffer LD DE,0x00D0 LD BC,0x0068 - LD A,0x80 - CALL JUMPS.PrnRangPathL + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintPathLeft LD HL,EditingFile+33 LD A,(EditingFile+32) PUSH IY @@ -438,7 +438,7 @@ SaveExit SUB A SaveExit1 HALT HALT WINDOWCLOSE - CALL JUMPS.SetMouse + CALL JUMPS.PointerMousePointer RET SaveAbort POP HL @@ -448,20 +448,20 @@ SaveAbort POP HL ;[]----------------------------------------------------------[] FENextProcess LD IX,ProcessEdit - LD L,(IX+PROC.CURR_PAGE) - LD H,(IX+PROC.CURR_PAGE + 1) + LD L,(IX+PROGRESSBAR.CURR_PAGE) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX+PROC.CURR_PAGE),L - LD (IX+PROC.CURR_PAGE + 1),H + LD (IX+PROGRESSBAR.CURR_PAGE),L + LD (IX+PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.NextPr1 - LD L,(IX+PROC.CURR_PAGE + 2) - LD H,(IX+PROC.CURR_PAGE + 3) + LD L,(IX+PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX+PROC.CURR_PAGE + 2),L - LD (IX+PROC.CURR_PAGE + 3),H -.NextPr1 CALL JUMPS.PrnProcess + LD (IX+PROGRESSBAR.CURR_PAGE + 2),L + LD (IX+PROGRESSBAR.CURR_PAGE + 3),H +.NextPr1 CALL JUMPS.DrawProgressBar RET ProcessEdit DW 178 diff --git a/plugins/fneditor/fehex.a80 b/plugins/fneditor/fehex.a80 index b4cafe8..350ffd8 100644 --- a/plugins/fneditor/fehex.a80 +++ b/plugins/fneditor/fehex.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 26.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]==========================================================[] ;Процедура печати страницы дампа с тек.смещ. от начала файла @@ -161,7 +161,7 @@ FEFillHex LD A,0x10 ; LD B,0x4E LD C,IXH LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar OR A RET ;CY-была последняя строка @@ -222,18 +222,18 @@ PrnHEXinfo LD HL,LineH LD HL,(CurLine) LD DE,LineH INC HL - CALL JUMPS.ConvNumTxt16 + CALL JUMPS.ConvertNumbers_16b LD DE,ColH LD A,(IY+CursorX) SRL A INC A - CALL JUMPS.ConvNumTxt8 + CALL JUMPS.ConvertNumbers_8b LD HL,0xC000 LD DE,FreeH LD BC,(FEFileLenght) OR A SBC HL,BC - CALL JUMPS.ConvNumTxt16 + CALL JUMPS.ConvertNumbers_16b LD HL,ReadyNo LD A,(IY+ReadyFile) OR A @@ -241,23 +241,23 @@ PrnHEXinfo LD HL,LineH LD HL,ReadyYes .L1 LD DE,0x017E LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD HL,LineH LD DE,0x01AE LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD HL,ColH LD DE,0x01F8 LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD HL,FreeH LD DE,0x0248 LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD IX,EditVBar LD HL,(ELines) LD DE,(EquipLines) @@ -268,7 +268,7 @@ PrnHEXinfo LD HL,LineH CALL JUMPS.InitScrollBar LD HL,(CurLine) LD (CLine),HL - CALL JUMPS.PrnVScrBar + CALL JUMPS.DrawVScrollBar RET TstLinH LD HL,(CLine) @@ -277,7 +277,7 @@ TstLinH LD HL,(CLine) SBC HL,DE RET Z LD (CLine),DE - CALL JUMPS.PrnVScrBar + CALL JUMPS.DrawVScrollBar RET LineH DUPL 6,0 @@ -448,7 +448,7 @@ HDeleteByte LD HL,(LineShift) LD C,A LD B,0x06 LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar HDelS1 LD (IY+ReadyFile),0x01 RES 0,(IY+CursorX) LD A,0x01 @@ -1076,7 +1076,7 @@ FEPrintHGT LD HL,FENewShift LD DE,0x0008 LD BC,0x051C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD A,(FECursPos) ;Позиция вывода курсора INC A LD L,A @@ -1089,7 +1089,7 @@ FEPrintHGT LD HL,FENewShift LD (HL),0xAB;'<' LD BC,0x011C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD A,0x01 ;Номер выведенного курсора LD (FECurCurs),A LD A,0x06 ;Ожидание для смены курсора @@ -1127,7 +1127,7 @@ FECurCurs EQU $-1 LD (HL),A LD BC,0x011C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD A,0x0C ;Ожидание для смены курсора LD (FECurWait),A RET @@ -1169,8 +1169,7 @@ FEHGTenter SUB A ; SUB A LD (IY+CursorX),A LD (IY+CursorY),A - CALL FEPrnHEXpage ;Печатаем страницу - RET + JP FEPrnHEXpage ;Печатаем страницу ;Нажат Escape FEHGTescape LD HL,FENewShift ;Буфер строки @@ -1185,10 +1184,9 @@ FEHGTescape LD HL,FENewShift ; LD DE,0x0008 LD BC,0x051C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar CALL PrHEXCr - CALL JUMPS.ResFire - RET ;Выходим + JP JUMPS.WaitUnpressMouse ;Выходим FENewShift DEFB " ",0 diff --git a/plugins/fneditor/feprn.a80 b/plugins/fneditor/feprn.a80 index 592eef7..6a2b99d 100644 --- a/plugins/fneditor/feprn.a80 +++ b/plugins/fneditor/feprn.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 26.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] FEPrintFile CALL FEResCursor @@ -13,7 +13,7 @@ FEPrintFile CALL FEResCursor W_TEXT 140,35,COLORP.HIGHGRAY,"Stop" W_END LD IX,FEPrintTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse LD IX,FEProcessPrn LD HL,(FEFileLenght) LD A,L @@ -22,11 +22,11 @@ FEPrintFile CALL FEResCursor OR A JR Z,.InitPrn INC HL -.InitPrn LD (IX+PROC.MAX_PAGES),L - LD (IX+PROC.MAX_PAGES + 1),H - LD (IX+PROC.MAX_PAGES + 2),0x00 - LD (IX+PROC.MAX_PAGES + 3),0x00 - CALL JUMPS.InitProcess +.InitPrn LD (IX+PROGRESSBAR.MAX_PAGES),L + LD (IX+PROGRESSBAR.MAX_PAGES + 1),H + LD (IX+PROGRESSBAR.MAX_PAGES + 2),0x00 + LD (IX+PROGRESSBAR.MAX_PAGES + 3),0x00 + CALL JUMPS.InitProgressBar LD A,(EditMode) OR A JP NZ,FEPrintHEX @@ -227,7 +227,7 @@ FEPrintCHAR LD IXL,A BIT 0,A JR Z,.PrnCH1 LD IX,FEPrintTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse JR C,.PrnCH2 .PrnCH1 SPDSS DSSF.SCANKEY @@ -278,20 +278,20 @@ FENxtPrnProc LD A,E EXX PUSH DE LD IX,FEProcessPrn - LD L,(IX+PROC.CURR_PAGE) - LD H,(IX+PROC.CURR_PAGE + 1) + LD L,(IX+PROGRESSBAR.CURR_PAGE) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX+PROC.CURR_PAGE),L - LD (IX+PROC.CURR_PAGE + 1),H + LD (IX+PROGRESSBAR.CURR_PAGE),L + LD (IX+PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.NxtProc - LD L,(IX+PROC.CURR_PAGE + 2) - LD H,(IX+PROC.CURR_PAGE + 3) + LD L,(IX+PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX+PROC.CURR_PAGE + 2),L - LD (IX+PROC.CURR_PAGE + 3),H -.NxtProc CALL JUMPS.PrnProcess + LD (IX+PROGRESSBAR.CURR_PAGE + 2),L + LD (IX+PROGRESSBAR.CURR_PAGE + 3),H +.NxtProc CALL JUMPS.DrawProgressBar POP DE EXX POP BC diff --git a/plugins/fneditor/fesetup.a80 b/plugins/fneditor/fesetup.a80 index 5588899..a4cb23d 100644 --- a/plugins/fneditor/fesetup.a80 +++ b/plugins/fneditor/fesetup.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 26.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij FECSign: DB "FEC" HomeKeyFlag: DB 0 @@ -140,7 +140,7 @@ BracketsFlg: EQU $-2 W_END FESetupLoop: LD IX,FESetupTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,FESetupLoop LD A,E @@ -182,9 +182,9 @@ SetupConfirmDlgInvert: LD (HL),A LD DE,0x00DC LD BC,0x0065 - LD A,0xF0 - CALL JUMPS.PrnTxtLnIFF - JP JUMPS.ResFire + LD A,COLORP.WHITE + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF + JP JUMPS.WaitUnpressMouse SetupHomeKeyInvert: LD HL,CheckTxt @@ -195,9 +195,9 @@ SetupHomeKeyInvert: LD (HL),A LD DE,0x00DC LD BC,0x0075 - LD A,0xF0 - CALL JUMPS.PrnTxtLnIFF - JP JUMPS.ResFire + LD A,COLORP.WHITE + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF + JP JUMPS.WaitUnpressMouse SetupAutoIndentInvert: LD HL,CheckTxt @@ -208,9 +208,9 @@ SetupAutoIndentInvert: LD (HL),A LD DE,0x00DC LD BC,0x0085 - LD A,0xF0 - CALL JUMPS.PrnTxtLnIFF - JP JUMPS.ResFire + LD A,COLORP.WHITE + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF + JP JUMPS.WaitUnpressMouse SetupAutoBracketsInvert: LD HL,CheckTxt @@ -221,9 +221,9 @@ SetupAutoBracketsInvert: LD (HL),A LD DE,0x00DC LD BC,0x0095 - LD A,0xF0 - CALL JUMPS.PrnTxtLnIFF - JP JUMPS.ResFire + LD A,COLORP.WHITE + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF + JP JUMPS.WaitUnpressMouse FESetupOkey: ld a,(ExitDlgFlag) LD (QuitAsk.param),a diff --git a/plugins/fneditor/fetext.a80 b/plugins/fneditor/fetext.a80 index 0784f82..90a76fb 100644 --- a/plugins/fneditor/fetext.a80 +++ b/plugins/fneditor/fetext.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 29.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]==========================================================[] FEPrnASCIIpage LD HL,PrnASCIIinfo @@ -235,7 +235,7 @@ PutLnExA LD L,(IY+CursAddX) LD B,0x4E LD C,IXH LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar OR A RET @@ -285,7 +285,7 @@ PrASCIIex1 CALL FEResCursor ADD A,0x1C LD C,A LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD E,(IY+CursorX) LD D,(IY+CursorY) JP FESetCursor @@ -770,18 +770,18 @@ PrnASCIIinfo LD HL,LineT LD HL,(CurLine) LD DE,LineT INC HL - CALL JUMPS.ConvNumTxt16 + CALL JUMPS.ConvertNumbers_16b LD DE,ColT LD A,(IY+CursorX) ADD A,(IY+CursAddX) INC A - CALL JUMPS.ConvNumTxt8 + CALL JUMPS.ConvertNumbers_8b LD HL,0xC000 LD DE,FreeT LD BC,(FEFileLenght) OR A SBC HL,BC - CALL JUMPS.ConvNumTxt16 + CALL JUMPS.ConvertNumbers_16b LD HL,ReadyNo LD A,(IY+ReadyFile) OR A @@ -789,23 +789,23 @@ PrnASCIIinfo LD HL,LineT LD HL,ReadyYes .L1 LD DE,0x017E LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD HL,LineT LD DE,0x01AE LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD HL,ColT LD DE,0x01F8 LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD HL,FreeT LD DE,0x0248 LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnTxtLnIFF + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintTxtLine_IFF LD IX,EditVBar LD HL,(ELines) LD DE,(EquipLines) @@ -816,7 +816,7 @@ PrnASCIIinfo LD HL,LineT CALL JUMPS.InitScrollBar LD HL,(CurLine) LD (CLine),HL - CALL JUMPS.PrnVScrBar + CALL JUMPS.DrawVScrollBar JR TstAddX TstLine LD HL,(CLine) @@ -825,7 +825,7 @@ TstLine LD HL,(CLine) SBC HL,DE JR Z,TstAddX LD (CLine),DE - CALL JUMPS.PrnVScrBar + CALL JUMPS.DrawVScrollBar TstAddX LD A,(CAddX) SUB (IY+CursorX) CP (IY+CursAddX) @@ -834,7 +834,7 @@ TstAddX LD A,(CAddX) ADD A,(IY+CursAddX) LD (CAddX),A LD IX,EditHBar - JP JUMPS.PrnHScrBar + JP JUMPS.DrawHScrollBar ReadyNo DEFB 0x01,0 ReadyYes DEFB "*",0 @@ -1945,7 +1945,7 @@ NewPos6 LD A,C LD D,(IY+CursorY) CALL FESetCursor CALL PrnASCIIinfo - JP JUMPS.ResFire + JP JUMPS.WaitUnpressMouse IF ENABLE_CODEPAGE ; перекдючение кодировки diff --git a/plugins/fnviewer/fvhex.a80 b/plugins/fnviewer/fvhex.a80 index 2ada502..bbaa4ef 100644 --- a/plugins/fnviewer/fvhex.a80 +++ b/plugins/fnviewer/fvhex.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 28.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;-------------------------------------------------------------- ; Процедура печати страницы дампа с тек.смещ. от начала файла @@ -153,7 +153,7 @@ FillHex LD A,0x10 ; LD B,0x50 LD C,IXH LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar OR A RET ; CY-была последняя строка @@ -369,7 +369,7 @@ HPageDwn LD HL,(FileShift) RET ; В начало файла -HBegFile LD HL,JUMPS.ResFire +HBegFile LD HL,JUMPS.WaitUnpressMouse PUSH HL LD HL,(FileShift) LD BC,(FileShift+2) @@ -384,7 +384,7 @@ HBegFile LD HL,JUMPS.ResFire JP PrnHEXpage ; Печатаем страницу ; В конец файла -HEndFile LD HL,JUMPS.ResFire +HEndFile LD HL,JUMPS.WaitUnpressMouse PUSH HL LD HL,(FileShift) LD BC,(FileShift+2) @@ -552,7 +552,7 @@ PrintHGT LD HL,NewShift LD DE,0x0008 LD BC,0x081C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD A,(CursPos+1) ; Позиция вывода курсора INC A LD L,A @@ -565,7 +565,7 @@ PrintHGT LD HL,NewShift LD (HL),0xAB;"<" LD BC,0x011C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD A,0x01 ; Номер выведенного курсора LD (CurCurs),A LD A,0x06 ; Ожидание для смены курсора @@ -603,7 +603,7 @@ CurCurs EQU $-1 LD (HL),A LD BC,0x011C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar LD A,0x0C ; Ожидание для смены курсора LD (CurWait),A RET @@ -661,8 +661,8 @@ HGTescape LD HL,NewShift ; LD DE,0x0008 LD BC,0x081C LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC - JP JUMPS.ResFire ; Выходим + CALL JUMPS.PrintTxtLineNumsChar + JP JUMPS.WaitUnpressMouse ; Выходим NewShift DEFB " ",0 diff --git a/plugins/fnviewer/fviewer.a80 b/plugins/fnviewer/fviewer.a80 index 3c70714..badac46 100644 --- a/plugins/fnviewer/fviewer.a80 +++ b/plugins/fnviewer/fviewer.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 28.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij LineBuffer := WorkBuffer+0x300 @@ -29,7 +29,7 @@ ViewerLoop LD A,(ViewMode) ; реж JR NZ,HViewLoop ; режим просмотра текст TViewLoop LD IX,ASCIItab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY ; Ожидаем нажатия клавиш JR Z,TViewLoop LD A,E ; Е-ASCII код @@ -87,7 +87,7 @@ TViewLoop LD IX,ASCIItab ;-------------------------------------------------------------- ; режим просмотра HEX HViewLoop LD IX,HEXtab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY ; Ожидаем нажатия клавиш JR Z,HViewLoop LD A,E ; Е-ASCII код @@ -168,7 +168,7 @@ ViewerExit LD A,(FVMemIndef) RET ;[]==========================================================[] -LoadFile CALL JUMPS.SetClock +LoadFile CALL JUMPS.PointerMouseClock LD DE,ViewingFile SPDSS DSSF.F_FIRST,1, DIR.M_Archive + \ DIR.M_Dir + \ @@ -233,13 +233,13 @@ LoadFl1 LD A,D POP DE JP C,LoadExit LD IX,ProcessView - LD (IX+PROC.MAX_PAGES),E - LD (IX+PROC.MAX_PAGES + 1),D + LD (IX+PROGRESSBAR.MAX_PAGES),E + LD (IX+PROGRESSBAR.MAX_PAGES + 1),D SUB A - LD (IX+PROC.MAX_PAGES + 2),A - LD (IX+PROC.MAX_PAGES + 3),A + LD (IX+PROGRESSBAR.MAX_PAGES + 2),A + LD (IX+PROGRESSBAR.MAX_PAGES + 3),A PUSH DE - CALL JUMPS.InitProcess + CALL JUMPS.InitProgressBar POP DE LD B,E SPDSS DSSF.GETMEM @@ -286,8 +286,8 @@ LoadFl1 LD A,D LD HL,WorkBuffer LD DE,0x00D8 LD BC,0x0068 - LD A,0x80 - CALL JUMPS.PrnRangPathL + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintPathLeft LD HL,ViewingFile+33 SPDSS DSSF.OPEN,,1 PUSH AF @@ -358,7 +358,7 @@ LoadExit HALT HALT WINDOWCLOSE PUSH AF - CALL JUMPS.SetMouse + CALL JUMPS.PointerMousePointer POP AF RET @@ -371,20 +371,20 @@ NoRead LD A,(FVMemIndef) JR LoadExit FVNextProcess LD IX,ProcessView - LD L,(IX+PROC.CURR_PAGE) - LD H,(IX+PROC.CURR_PAGE + 1) + LD L,(IX+PROGRESSBAR.CURR_PAGE) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX+PROC.CURR_PAGE),L - LD (IX+PROC.CURR_PAGE + 1),H + LD (IX+PROGRESSBAR.CURR_PAGE),L + LD (IX+PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.NextPr1 - LD L,(IX+PROC.CURR_PAGE + 2) - LD H,(IX+PROC.CURR_PAGE + 3) + LD L,(IX+PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX+PROC.CURR_PAGE + 2),L - LD (IX+PROC.CURR_PAGE + 3),H -.NextPr1 JP JUMPS.PrnProcess + LD (IX+PROGRESSBAR.CURR_PAGE + 2),L + LD (IX+PROGRESSBAR.CURR_PAGE + 3),H +.NextPr1 JP JUMPS.DrawProgressBar ;[]----------------------------------------------------------[] ProcessView DW 178 @@ -434,7 +434,7 @@ InitViewScr LD HL,FVFLen LD H,(IX+29) LD C,(IX+30) LD B,(IX+31) - CALL JUMPS.ConvNumTxt32 + CALL JUMPS.ConvertNumbers_32b LD A,0x20 LD (DE),A INC DE @@ -448,7 +448,7 @@ InitViewScr LD HL,FVFLen LD L,(IX+26) LD H,(IX+27) LD DE,FVFClast - CALL JUMPS.ConvNumTxt16 + CALL JUMPS.ConvertNumbers_16b LD HL,FVFAtributs LD DE,FVFAttrib LD C,(IX+32) @@ -516,18 +516,18 @@ FVFAttrib EQU $ - STRLEN(" ") - 1 LD HL,WorkBuffer LD DE,0x0034 LD BC,0x0011 - LD A,0x80 - CALL JUMPS.PrnRangPathL - LD HL,0x01FC - LD DE,0x0003 - LD B,0x08 + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL JUMPS.PrintPathLeft + LD HL,508 + LD DE,3 + LD B,COLORP.BLACK + COLORI.HIGHGRAY EXX - LD HL,0x022E - LD DE,0x0003 - LD B,0x08 + LD HL,558 + LD DE,3 + LD B,COLORP.BLACK + COLORI.HIGHGRAY EXX - LD A,0x02 - JP JUMPS.SetCMOSPrint + LD A,DateMonthFormat.Text + JP JUMPS.CMOSPrintDateTime FVFAtributs DEFB "--ad-shr" @@ -667,7 +667,7 @@ About W_TEXT 154,69,COLORP.HIGHGRAY,"Ok" W_END AboutLoop LD IX,FVAboutTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,AboutLoop LD A,B @@ -821,7 +821,7 @@ InitProc PUSH HL PUSH DE EX DE,HL LD BC,100 ; Длина файла/100 (%) - CALL JUMPS.Divis32 + CALL JUMPS.Div_32X16_32b_16b LD (Coeff1+1),DE ; Получаем кол-во байт на LD (Coeff2+1),HL ; один процент LD IX,ProcentTab @@ -988,8 +988,8 @@ PutProcent LD HL,ProcText POP HL LD DE,0x0250 LD BC,0x0011 - LD A,0x80 - JP JUMPS.PrnTxtLnNorm + LD A,COLORP.HIGHGRAY + COLORI.BLACK + JP JUMPS.PrintTxtLine InitCodePage: LD A,0 CodePage EQU $-1 diff --git a/plugins/fnviewer/fvprn.a80 b/plugins/fnviewer/fvprn.a80 index 34bceeb..5493cac 100644 --- a/plugins/fnviewer/fvprn.a80 +++ b/plugins/fnviewer/fvprn.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 28.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] FVPrintFile @@ -13,7 +13,7 @@ FVPrintFile W_TEXT 140,35,COLORP.HIGHGRAY,"Stop" W_END LD IX,PrintTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse LD IX,ProcessPrn LD HL,(FileLenght) LD DE,(FileLenght+2) @@ -28,11 +28,11 @@ FVPrintFile OR L JR NZ,.InitPrn INC E -.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 JUMPS.InitProcess +.InitPrn LD (IX+PROGRESSBAR.MAX_PAGES),L + LD (IX+PROGRESSBAR.MAX_PAGES + 1),H + LD (IX+PROGRESSBAR.MAX_PAGES + 2),E + LD (IX+PROGRESSBAR.MAX_PAGES + 3),0x00 + CALL JUMPS.InitProgressBar LD A,(ViewMode) OR A JP NZ,PrintHEX @@ -220,7 +220,7 @@ FVPrintCHAR LD IXL,A BIT 0,A JR Z,.PrnCH1 LD IX,PrintTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse JR C,.PrnCH2 .PrnCH1 SPDSS DSSF.SCANKEY @@ -271,20 +271,20 @@ FVNxtPrnProc LD A,E EXX PUSH DE LD IX,ProcessPrn - LD L,(IX+PROC.CURR_PAGE) - LD H,(IX+PROC.CURR_PAGE + 1) + LD L,(IX+PROGRESSBAR.CURR_PAGE) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX+PROC.CURR_PAGE),L - LD (IX+PROC.CURR_PAGE + 1),H + LD (IX+PROGRESSBAR.CURR_PAGE),L + LD (IX+PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.NxtProc - LD L,(IX+PROC.CURR_PAGE + 2) - LD H,(IX+PROC.CURR_PAGE + 3) + LD L,(IX+PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX+PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX+PROC.CURR_PAGE + 2),L - LD (IX+PROC.CURR_PAGE + 3),H -.NxtProc CALL JUMPS.PrnProcess + LD (IX+PROGRESSBAR.CURR_PAGE + 2),L + LD (IX+PROGRESSBAR.CURR_PAGE + 3),H +.NxtProc CALL JUMPS.DrawProgressBar POP DE EXX POP BC diff --git a/plugins/fnviewer/fvtext.a80 b/plugins/fnviewer/fvtext.a80 index 3b87b99..ba62d2e 100644 --- a/plugins/fnviewer/fvtext.a80 +++ b/plugins/fnviewer/fvtext.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 28.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]---------------------------------------------------------[] PrnASCIIpage LD HL,PrintVProc @@ -143,7 +143,7 @@ PutLine4 LD HL,LineBuffer LD B,0x50 LD C,IXH LD A,COLORP.PANEL + COLORI.FILES - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar OR A RET @@ -188,7 +188,7 @@ PutLnUW1 LD E,0x00 LD D,0x00 LD B,0x01 LD A,COLORP.PANEL + COLORI.YELLOW ;(Yellow) - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar POP BC POP HL INC L @@ -209,14 +209,14 @@ SaveUW EQU $-1 LD DE,0x0278 LD B,0x01 LD A,COLORP.PANEL + COLORI.YELLOW ;(Yellow) - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar POP BC POP DE POP HL DEC B PutLnUW3 LD D,0x00 LD A,COLORP.PANEL + COLORI.FILES ;(Yellow) - CALL JUMPS.PrnTxtLnNormC + CALL JUMPS.PrintTxtLineNumsChar OR A RET @@ -460,7 +460,7 @@ TPageDwn LD HL,(FVNextShift) RET ;[]----------------------------------------------------------[] -TBegFile LD HL,JUMPS.ResFire +TBegFile LD HL,JUMPS.WaitUnpressMouse PUSH HL LD HL,(FileShift) LD DE,(FileShift+2) @@ -475,7 +475,7 @@ TBegFile LD HL,JUMPS.ResFire JP PrnASCIIpage ;[]----------------------------------------------------------[] -TEndFile LD HL,JUMPS.ResFire +TEndFile LD HL,JUMPS.WaitUnpressMouse PUSH HL LD HL,(FVNextShift) LD DE,(FVNextShift+2) diff --git a/plugins/help/help.a80 b/plugins/help/help.a80 index a4f39af..4b768a2 100644 --- a/plugins/help/help.a80 +++ b/plugins/help/help.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 23.04.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] HelpR LD A,0x01 @@ -18,9 +18,9 @@ HelpR LD A,0x01 W_END CALL InitHelpTxt CALL PrnHelpPg - CALL JUMPS.ResFire + CALL JUMPS.WaitUnpressMouse HelpLoop LD IX,HelpTab - CALL JUMPS.TestCoords + CALL JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,HelpLoop LD A,B @@ -101,7 +101,7 @@ PrnHPg1 PUSH BC LD A,(HL) INC A LD A,240 - CALL NZ,JUMPS.PrnTxtLnIFF + CALL NZ,JUMPS.PrintTxtLine_IFF POP BC LD A,B ADD A,8 @@ -110,7 +110,7 @@ PrnHPg1 PUSH BC JR NZ,PrnHPg1 LD (NextShift),HL LD IX,HelpVBar - JP JUMPS.PrnVScrBar + JP JUMPS.DrawVScrollBar ClearHRect PUSH HL PUSH BC @@ -230,9 +230,9 @@ HLnUp2 LD (NextShift),HL LD A,(HL) INC A LD A,240 - CALL NZ,JUMPS.PrnTxtLnIFF + CALL NZ,JUMPS.PrintTxtLine_IFF LD IX,HelpVBar - JP JUMPS.PrnVScrBar + JP JUMPS.DrawVScrollBar HLineDown LD HL,(NextShift) LD A,(HL) @@ -274,9 +274,9 @@ HLineDown LD HL,(NextShift) LD A,(HL) INC A LD A,240 - CALL NZ,JUMPS.PrnTxtLnIFF + CALL NZ,JUMPS.PrintTxtLine_IFF LD IX,HelpVBar - JP JUMPS.PrnVScrBar + JP JUMPS.DrawVScrollBar ;На вход: ; D - Y откуда diff --git a/plugins/test/test.a80 b/plugins/test/test.a80 index 4fcc967..eadc91c 100644 --- a/plugins/test/test.a80 +++ b/plugins/test/test.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 15.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;// DEVICE ZXSPECTRUM128 ;[]=======================================================================[] @@ -38,10 +38,10 @@ PluginEntry: W_BUTTON 60,74,72,14 W_TEXT 88,77,COLORP.HIGHGRAY,"Ok" W_END - call JUMPS.ResFire + call JUMPS.WaitUnpressMouse .plugin_loop: ld ix, PluginMouseTab - call JUMPS.TestCoords + call JUMPS.CheckCoordsMouse SPDSS DSSF.SCANKEY jr z, .plugin_loop ld a, b diff --git a/rez2_fnconfig.a80 b/rez2_fnconfig.a80 index a2181a5..19174a8 100644 --- a/rez2_fnconfig.a80 +++ b/rez2_fnconfig.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij PALITRA.RESERV EQU PALETTE + 0x34 @@ -85,7 +85,7 @@ SaveFlg EQU $-2 CALL InitScrollBar CALL InitElement SetupLoop LD IX,SetupTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,SetupLoop LD A,B @@ -164,7 +164,7 @@ SetupLoop1 LD A,E RET ;[]----------------------------------------------------------[] -SaveSetup CALL SetClock +SaveSetup CALL PointerMouseClock PUSH IY SPDSS DSSF.CURDISK POP IY @@ -258,7 +258,7 @@ SetupSaveEx LD HL,WorkBuffer PUSH IY SPDSS DSSF.CHDIR POP IY - JP SetMouse + JP PointerMousePointer SetupHead DEFB 0xAE,"FlexSetup",0 SetupName DZ FILENAME.FN_INI @@ -344,9 +344,9 @@ RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG) LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar RefrErr POP IY RET @@ -404,8 +404,8 @@ ChSavePan LD HL,SavePanTxt LD DE,0x0074 LD BC,0x00A5 LD A,0xF0 - CALL PrnTxtLnIFF - JP ResFire + CALL PrintTxtLine_IFF + JP WaitUnpressMouse SavePanTxt DEFB 0x00,0x00 @@ -420,9 +420,9 @@ AutoActivatePanelFlag EQU $-1 LD (HL),A LD DE,0x0074 LD BC,0x0093 - LD A,0xF0 - CALL PrnTxtLnIFF - JP ResFire + LD A,COLORP.WHITE + COLORI.BLACK + CALL PrintTxtLine_IFF + JP WaitUnpressMouse ;-------------------------------------------------------------- DecRED LD HL,PALITRA.RESERV + 2 @@ -504,7 +504,7 @@ InputColor LD (ColorY),BC PUSH DE LD DE,ColText LD A,(HL) - CALL ConvNumTxt8 + CALL ConvertNumbers_8b SUB A LD (DE),A LD A,E @@ -519,7 +519,7 @@ InpAg LD IX,ColorStr PUSH HL PUSH DE LD DE,ColText - CALL ConvTxtNum16 + CALL atoi_16b JR C,InpAg LD A,H OR A @@ -597,7 +597,7 @@ SetupI1 LD IX,8 << 8 | 70 ; HIGH -> LD B,H ; Y LD HL,106 ; X ; TODO не учитывается позиция окна, сделать привязку - JP InvertRectan + JP ReplaceColorRectan InitElement LD HL,ElementColor LD A,(CurElement) @@ -631,7 +631,7 @@ PrintRED LD DE,WorkBuffer ADD HL,HL ADD HL,HL LD (CRed),HL - CALL ConvNumTxt8 + CALL ConvertNumbers_8b LD A,0x04 SUB E LD B,A @@ -645,9 +645,9 @@ InitEl1 LD (DE),A LD DE,0x01B8 LD BC,0x0058 LD A,0x80 - CALL PrnTxtLnIFF + CALL PrintTxtLine_IFF LD IX,BarRed - JP PrnHScrBar + JP DrawHScrollBar PrintGREEN LD DE,WorkBuffer LD A,(PALITRA.RESERV + 1) @@ -658,7 +658,7 @@ PrintGREEN LD DE,WorkBuffer ADD HL,HL ADD HL,HL LD (CGreen),HL - CALL ConvNumTxt8 + CALL ConvertNumbers_8b LD A,0x04 SUB E LD B,A @@ -672,9 +672,9 @@ InitEl2 LD (DE),A LD DE,0x01B8 LD BC,0x0068 LD A,0x80 - CALL PrnTxtLnIFF + CALL PrintTxtLine_IFF LD IX,BarGreen - JP PrnHScrBar + JP DrawHScrollBar PrintBLUE LD DE,WorkBuffer LD A,(PALITRA.RESERV) @@ -685,7 +685,7 @@ PrintBLUE LD DE,WorkBuffer ADD HL,HL ADD HL,HL LD (CBlue),HL - CALL ConvNumTxt8 + CALL ConvertNumbers_8b LD A,0x04 SUB E LD B,A @@ -699,9 +699,9 @@ InitEl3 LD (DE),A LD DE,0x01B8 LD BC,0x0078 LD A,0x80 - CALL PrnTxtLnIFF + CALL PrintTxtLine_IFF LD IX,BarBlue - JP PrnHScrBar + JP DrawHScrollBar PrnPALETTE LD HL,PALETTE LD DE,0x1000 diff --git a/rez2_fnerror.a80 b/rez2_fnerror.a80 index a2547c8..1f8f07a 100644 --- a/rez2_fnerror.a80 +++ b/rez2_fnerror.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 18.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ; !FIXIT переделать одинаковые окна с разным текстом для ошибок под автоматическую процедуру ;[]===========================================================[] @@ -48,7 +48,7 @@ DOSErrorR ;[x] 30/07/23 -bug RET Z ; если адрес перехода 0, выходим LD (.ADRJUMP),HL LD (.ADRJUMP2),HL - CALL SetMouse + CALL PointerMousePointer LD A,0 .WINTYPE EQU $-1 BIT 7,A @@ -161,7 +161,7 @@ InputDrive PUSH IY LD HL,ErrorTab1 CALL InputLine WINDOWCLOSE - CALL SetClock + CALL PointerMouseClock LD A,(CurDrv) RES 5,A SUB 'A' @@ -174,11 +174,11 @@ InputDrive PUSH IY SPDSS DSSF.CHDIR POP IY JP C,DOSErrorR - CALL SetMouse + CALL PointerMousePointer LD A,0x01 RET -ErrorTab1 DEFW 284,356,118,132,%0000000000000001,%0000000000000000,InputLine.InpLnExtN,0 +ErrorTab1 DEFW 284,356,118,132,%0000000000000001,%0000000000000000,InputLine.InputLineExitOk,0 DEFW 0x8000 DriveStr DEFB 0x01,0x00,0x00,0x00 @@ -190,7 +190,7 @@ CurDrv DUPL 0x02,0x00 ;-------------------------------------------------------------- ErrorLp0 LD IX,ErrorTab2 - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,ErrorLp0 LD A,B @@ -206,13 +206,13 @@ ErrorLp0 LD IX,ErrorTab2 JR NZ,ErrorLp0 ErrorExt0 WINDOWCLOSE - CALL SetClock + CALL PointerMouseClock LD HL,BegDIR PUSH IY SPDSS DSSF.CHDIR POP IY JP C,DOSErrorR - CALL SetMouse + CALL PointerMousePointer LD A,0x01 RET @@ -222,7 +222,7 @@ ErrorTab2 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt0,0 ;-------------------------------------------------------------- ErrorLp LD IX,ErrorTab3 - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,ErrorLp LD A,B diff --git a/rez2_fnfunct.a80 b/rez2_fnfunct.a80 index dabc970..b4b20a8 100644 --- a/rez2_fnfunct.a80 +++ b/rez2_fnfunct.a80 @@ -1,16 +1,16 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] CopyFilesR LD A,(IY + PANEL.FILES_ALL) OR (IY + PANEL.FILES_ALL + 1) - RET Z + RET Z ; файлов нет BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) - RET NZ + RET NZ ; режим отображения панели - дерево SETPORT WINSP.Y_PORT,0xC0 LD A,(IY + PANEL.FILES_MARK) OR (IY + PANEL.FILES_MARK + 1) - JP NZ,CopyMark + JP NZ,CopyMark ; есть помеченные файлы ; копирование файла/диры под курсором GETPORT WINSP.CPU3 PUSH AF @@ -63,9 +63,12 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL) COPY_DIR PUSH IX PUSH IY PUSH IX - LD HL,(AdrCopyFile) ; адрес описателя измеряемой диры - CALL RESIDENT.GetDirSize ; считаем и получаем размер в байтах - EXX +; LD HL,(AdrCopyFile) ; адрес описателя измеряемой диры +; CALL RESIDENT.GetDirSize ; считаем и получаем размер в байтах +; EXX + CALL RESIDENT.CountingDir + LD HL,JUMPS.FILES_BYTES + CALL GET_DWORD POP HL ; адрес описателя LD (CopyBytes),DE LD (CopyBytes + 2),BC @@ -81,8 +84,8 @@ COPY_DIR PUSH IX LD E,C CALL ConvBytes2Pages ; пересчет в количество страниц для копирования -; LD HL,(AdrCopyFile) ; адрес описателя копируемой диры -; CALL RESIDENT.MkdirsDst ; создание папок на приемнике + LD HL,(AdrCopyFile) ; адрес описателя копируемой диры + CALL RESIDENT.MkdirsDst ; создание папок на приемнике POP IY POP IX @@ -156,11 +159,11 @@ CopyNxt LD IX,ProcessAll EX DE,HL ADC HL,HL EX DE,HL - 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 + LD (IX + PROGRESSBAR.MAX_PAGES),L + LD (IX + PROGRESSBAR.MAX_PAGES + 1),H + LD (IX + PROGRESSBAR.MAX_PAGES + 2),E + LD (IX + PROGRESSBAR.MAX_PAGES + 3),D + CALL InitProgressBar CALL ResInvert LD HL,SetInvert PUSH HL @@ -232,7 +235,7 @@ CopyNxt LD IX,ProcessAll LD (CopySrc),HL LD HL,CurPath LD (CopyDst),HL - CALL SetClock + CALL PointerMouseClock PUSH IY GETPORT WINSP.CPU3 PUSH AF @@ -242,6 +245,7 @@ CopyNxt LD IX,ProcessAll LD A,(RAMPAGES.RIGHTPANEL) .L3 SETPORT WINSP.CPU3,,0 +; копирование файлов CopyNextFile CALL PrnFromTo LD IX,(AdrCopyFile) LD L,(IX + FileHDR.SizeBytes) @@ -260,12 +264,12 @@ CopyNextFile CALL PrnFromTo EX DE,HL ADC HL,HL EX DE,HL - 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 (IX + PROGRESSBAR.MAX_PAGES),L + LD (IX + PROGRESSBAR.MAX_PAGES + 1),H + LD (IX + PROGRESSBAR.MAX_PAGES + 2),E + LD (IX + PROGRESSBAR.MAX_PAGES + 3),D + CALL InitProgressBar + CALL DrawProgressBar LD HL,(FreeBanks) LD DE,0x0000 .PagesHigh EQU $-2 @@ -517,7 +521,7 @@ CopyEnd POP AF JP C,BegDIRECTORY CALL PrintDIR CALL PrnFileInfo - JP SetMouse + JP PointerMousePointer CopyError3: ; Если нет места на диске для копирования ;!FIXIT оптимизировать POP HL ; снимаем лишнее @@ -567,7 +571,7 @@ CopyErrorFileDelete: RET ;-------------------------------------------------------------- -OverWrite CALL SetMouse +OverWrite CALL PointerMousePointer MAKEWINDOW WINSUBOBJ.STORE W_MAIN 180,88,280,56 W_FILL 4,2,272,10,COLORI.GREEN @@ -602,9 +606,9 @@ OverWrite CALL SetMouse LD DE,320 LD BC,114 LD A,COLORP.HIGHGRAY + COLORI.BLACK - CALL PrnRangPathC + CALL PrintPathCentr OvWrtLp LD IX,OverWrtTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,OvWrtLp LD A,B @@ -636,7 +640,7 @@ OvrJump OverWrtAll LD A,0x01 LD (OverWriteFlg),A -OverWrtFile CALL SetClock +OverWrtFile CALL PointerMouseClock LD IX,(AdrCopyFile) LD HL,(AdrCopyFile) INC HL @@ -648,7 +652,7 @@ OverWrtFile CALL SetClock SPDSS DSSF.CREATE RET -OverSkip CALL SetClock +OverSkip CALL PointerMouseClock LD IX,(AdrCopyFile) LD L,(IX + FileHDR.SizeBytes) LD H,(IX + FileHDR.SizeBytes + 1) @@ -660,18 +664,18 @@ OverSkip CALL SetClock ADC HL,HL EX DE,HL LD IX,ProcessAll - LD C,(IX + PROC.CURR_PAGE) - LD B,(IX + PROC.CURR_PAGE + 1) + LD C,(IX + PROGRESSBAR.CURR_PAGE) + LD B,(IX + PROGRESSBAR.CURR_PAGE + 1) ADD HL,BC - 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) + LD (IX + PROGRESSBAR.CURR_PAGE),L + LD (IX + PROGRESSBAR.CURR_PAGE + 1),H + LD C,(IX + PROGRESSBAR.CURR_PAGE + 2) + LD B,(IX + PROGRESSBAR.CURR_PAGE + 3) EX DE,HL ADC HL,BC - LD (IX + PROC.CURR_PAGE + 2),L - LD (IX + PROC.CURR_PAGE + 3),H - CALL PrnProcess + LD (IX + PROGRESSBAR.CURR_PAGE + 2),L + LD (IX + PROGRESSBAR.CURR_PAGE + 3),H + CALL DrawProgressBar LD HL,CloseFile1 EX (SP),HL RET @@ -777,44 +781,44 @@ PrnFromTo LD HL,(CopySrc) LD DE,204 LD BC,97 LD A,COLORP.HIGHGRAY + COLORI.BLACK - CALL PrnRangPathL + CALL PrintPathLeft LD IX,0x0100 LD HL,WorkBuffer+0x100 LD DE,204 LD BC,107 LD A,COLORP.HIGHGRAY + COLORI.BLACK - JP PrnRangPathL + JP PrintPathLeft NextProcess LD IX,ProcessAll - LD L,(IX + PROC.CURR_PAGE) - LD H,(IX + PROC.CURR_PAGE + 1) + LD L,(IX + PROGRESSBAR.CURR_PAGE) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURR_PAGE),L - LD (IX + PROC.CURR_PAGE + 1),H + LD (IX + PROGRESSBAR.CURR_PAGE),L + LD (IX + PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.L1 - LD L,(IX + PROC.CURR_PAGE + 2) - LD H,(IX + PROC.CURR_PAGE + 3) + LD L,(IX + PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX + PROC.CURR_PAGE + 2),L - LD (IX + PROC.CURR_PAGE + 3),H -.L1 CALL PrnProcess + LD (IX + PROGRESSBAR.CURR_PAGE + 2),L + LD (IX + PROGRESSBAR.CURR_PAGE + 3),H +.L1 CALL DrawProgressBar LD IX,ProcessOne - LD L,(IX + PROC.CURR_PAGE) - LD H,(IX + PROC.CURR_PAGE + 1) + LD L,(IX + PROGRESSBAR.CURR_PAGE) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURR_PAGE),L - LD (IX + PROC.CURR_PAGE + 1),H + LD (IX + PROGRESSBAR.CURR_PAGE),L + LD (IX + PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.L2 - LD L,(IX + PROC.CURR_PAGE + 2) - LD H,(IX + PROC.CURR_PAGE + 3) + LD L,(IX + PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX + PROC.CURR_PAGE + 2),L - LD (IX + PROC.CURR_PAGE + 3),H -.L2 JP PrnProcess + LD (IX + PROGRESSBAR.CURR_PAGE + 2),L + LD (IX + PROGRESSBAR.CURR_PAGE + 3),H +.L2 JP DrawProgressBar ProcessAll DW 178 ; X позиция DW 138 ; Y позиция @@ -966,8 +970,8 @@ RNfile EQU $ - STRLEN(" ") - 2 LD D,0 ADC HL,DE LD (HL),0 - CALL SetClock - LD HL,SetMouse + CALL PointerMouseClock + LD HL,PointerMousePointer EX (SP),HL PUSH HL BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) @@ -1037,9 +1041,9 @@ ReName0 LD HL,CurName LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar ReName1 LD HL,LeftPanel + PANEL.CURR_PATH LD DE,RightPanel + PANEL.CURR_PATH ReName2 LD A,(DE) @@ -1071,9 +1075,9 @@ ReName2 LD A,(DE) LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar ReNameE POP IY RET @@ -1237,9 +1241,9 @@ ReNameT POP AF LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar PUSH IY BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD IY,RightPanel @@ -1251,7 +1255,7 @@ ReNameT POP AF POP IX LD DE,PANEL.BAR_X ADD IX,DE - CALL PrnVScrBar + CALL DrawVScrollBar POP IY RET @@ -1264,7 +1268,7 @@ ReNameExt1 INC SP POP IX LD DE,PANEL.BAR_X ADD IX,DE - CALL PrnVScrBar + CALL DrawVScrollBar IF TREE_REZID CALL TestTreeR.TestTreeBeg ELSE @@ -1309,9 +1313,9 @@ ReNameExit CALL ReadDIR LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar LD HL,LeftPanel + PANEL.CURR_PATH LD DE,RightPanel + PANEL.CURR_PATH RNameE1 LD A,(DE) @@ -1343,9 +1347,9 @@ RNameE1 LD A,(DE) LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar RNameE2 POP IY RET @@ -1391,8 +1395,8 @@ MkDIRlp LD A,(HL) CP '\\' RET Z DJNZ MkDIRlp - CALL SetClock - LD HL,SetMouse + CALL PointerMouseClock + LD HL,PointerMousePointer PUSH HL BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) JR Z,MkDIR0 @@ -1644,9 +1648,9 @@ MkDIRn1 CALL PrintDIR LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar PUSH IY BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD IY,RightPanel @@ -1678,9 +1682,9 @@ MkDIRn2 CALL PrintDIR LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar MkDIRex POP IY RET @@ -1819,9 +1823,9 @@ DelLp0 LD IX,0x00F8 LD DE,320 LD BC,106 LD A,COLORP.HIGHGRAY + COLORI.BLACK - CALL PrnRangPathC + CALL PrintPathCentr DelLoop LD IX,DeleteTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,DelLoop LD A,B @@ -1911,7 +1915,7 @@ DelSkip LD C,(IY + PANEL.FILES_MARK) CALL PrintDIR JP DeleteMain -DelDelete CALL SetClock +DelDelete CALL PointerMouseClock BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR Z,DelDel0 PUSH IY @@ -1961,14 +1965,14 @@ DelDel1 PUSH IY JP DelExit DelDel2 LD A,0x01 LD (DeleteFlag),A - CALL SetMouse + CALL PointerMousePointer JP DelSkip DelAll BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) JR NZ,DelDelete LD A,0x01 LD (DeleteFlag),A - CALL SetClock + CALL PointerMouseClock MAKEWINDOW WINSUBOBJ.STORE W_MAIN 160,88,320,48 W_FILL 4,2,312,10,COLORI.BLACK @@ -1989,12 +1993,12 @@ DelAll BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) OR L JR NZ,.L1 INC HL -.L1 LD (IX + PROC.MAX_PAGES),L - LD (IX + PROC.MAX_PAGES + 1),H +.L1 LD (IX + PROGRESSBAR.MAX_PAGES),L + LD (IX + PROGRESSBAR.MAX_PAGES + 1),H SUB A - LD (IX + PROC.MAX_PAGES + 2),A - LD (IX + PROC.MAX_PAGES + 3),A - CALL InitProcess + LD (IX + PROGRESSBAR.MAX_PAGES + 2),A + LD (IX + PROGRESSBAR.MAX_PAGES + 3),A + CALL InitProgressBar DeleteAllLp LD HL,0x0000 DelFrom EQU $-2 LD DE,WorkBuffer @@ -2017,7 +2021,7 @@ DelFrom EQU $-2 LD DE,208 LD BC,104 LD A,COLORP.HIGHGRAY + COLORI.BLACK - CALL PrnRangPathL + CALL PrintPathLeft SPDSS DSSF.SCANKEY LD HL,SC.ESC << 8 | 0x1B OR A @@ -2043,12 +2047,12 @@ DelFrom EQU $-2 JP DelAllExit DelA1 LD IX,ProcessDel - LD L,(IX + PROC.CURR_PAGE) - LD H,(IX + PROC.CURR_PAGE + 1) + LD L,(IX + PROGRESSBAR.CURR_PAGE) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURR_PAGE),L - LD (IX + PROC.CURR_PAGE + 1),H - CALL PrnProcess + LD (IX + PROGRESSBAR.CURR_PAGE),L + LD (IX + PROGRESSBAR.CURR_PAGE + 1),H + CALL DrawProgressBar LD C,(IY + PANEL.FILES_MARK) LD B,(IY + PANEL.FILES_MARK + 1) LD A,B @@ -2110,7 +2114,7 @@ DelExit BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) JR NZ,DelTreeDIR DelExt1 POP AF SETPORT WINSP.CPU3,,0 - LD HL,SetMouse + LD HL,PointerMousePointer PUSH HL LD A,(DeleteFlag) OR A @@ -2128,8 +2132,8 @@ DelTreeDIR1 LD A,(DeleteFlag) CALL MakeDELname POP AF SETPORT WINSP.CPU3,,0 - CALL SetClock - LD HL,SetMouse + CALL PointerMouseClock + LD HL,PointerMousePointer EX (SP),HL PUSH HL BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) @@ -2356,9 +2360,9 @@ DelDIRn POP AF LD A,(IY + PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - CALL NZ,PrnVScrBar + CALL NZ,DrawVScrollBar PUSH IY BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD IY,RightPanel @@ -2370,7 +2374,7 @@ DelDIRn POP AF POP IX LD DE,PANEL.BAR_X ADD IX,DE - CALL PrnVScrBar + CALL DrawVScrollBar POP IY RET @@ -2384,7 +2388,7 @@ DeleteExt1 INC SP LD DE,PANEL.BAR_X ADD IX,DE CALL InitScrollBar - CALL PrnVScrBar + CALL DrawVScrollBar IF TREE_REZID CALL MakeTreePathR ELSE @@ -2414,7 +2418,7 @@ QuitConfirmWin W_TEXT 150,35,COLORP.HIGHGRAY,"No" W_END .Loop LD IX,QuitTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,.Loop LD A,B diff --git a/rez2_fnmisc.a80 b/rez2_fnmisc.a80 index d54270d..ecb4c1a 100644 --- a/rez2_fnmisc.a80 +++ b/rez2_fnmisc.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 02.08.2025 savelij ;[]==========================================================[] FileInfoR LD A,(IY+PANEL.FILES_ALL) @@ -42,7 +42,7 @@ FileInfoR LD A,(IY+PANEL.FILES_ALL) LD A,(HL) CP '.' RET Z - CALL SetClock + CALL PointerMouseClock PUSH DE CALL MakeDOSname POP HL @@ -90,7 +90,7 @@ FileInfoR LD A,(IY+PANEL.FILES_ALL) LD H,(IX+0x10) LD C,(IX+0x11) LD B,(IX+0x12) - CALL ConvNumTxt32 + CALL ConvertNumbers_32b LD A,0x20 LD (DE),A INC DE @@ -107,7 +107,7 @@ FileInfoR LD A,(IY+PANEL.FILES_ALL) PUSH IY SPDSS DSSF.F_FIRST,0 POP IY - JP C,SetMouse + JP C,PointerMousePointer LD HL,FClast LD B,0x05 LD A,0x20 @@ -120,7 +120,7 @@ FileInfoR LD A,(IY+PANEL.FILES_ALL) LD D,(HL) EX DE,HL LD DE,FClast - CALL ConvNumTxt16 + CALL ConvertNumbers_16b MAKEWINDOW WINSUBOBJ.STORE W_MAIN 240,80,160,98 W_FILL 4,2,152,10,COLORI.BLACK @@ -139,9 +139,9 @@ FClast EQU $ - STRLEN(" ") - 1 W_BUTTON 44,80,72,14 W_TEXT 72,83,COLORP.HIGHGRAY,"Ok" W_END - CALL SetMouse + CALL PointerMousePointer FileInfoLoop: LD IX,FileInfoTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,FileInfoLoop LD A,B @@ -259,10 +259,10 @@ PrintFileR LD A,(IY+PANEL.FILES_ALL) LD HL,WorkBuffer LD DE,0x00F8 LD BC,0x0064 - LD A,0x80 - CALL PrnRangPathL + LD A,COLORP.HIGHGRAY + COLORI.BLACK + CALL PrintPathLeft LD IX,PrintFTab - CALL TestCoords + CALL CheckCoordsMouse LD IX,ProcessFPrn LD HL,(PrnFileLen) LD DE,(PrnFileLen+2) @@ -277,11 +277,11 @@ PrintFileR LD A,(IY+PANEL.FILES_ALL) OR L JR NZ,InitPrn INC E -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 +InitPrn LD (IX + PROGRESSBAR.MAX_PAGES),L + LD (IX + PROGRESSBAR.MAX_PAGES + 1),H + LD (IX + PROGRESSBAR.MAX_PAGES + 2),E + LD (IX + PROGRESSBAR.MAX_PAGES + 3),0x00 + CALL InitProgressBar LD HL,PrnFileName SPDSS DSSF.OPEN,,1 PUSH AF @@ -308,12 +308,12 @@ ReadPr1 INC HL JR C,ReadPrnEnd LD (PrnFileLen),HL LD (PrnFileLen+2),DE - CALL SetClock + CALL PointerMouseClock LD HL,0xC000 LD DE,0x4000 LD A,(PrnFHandle) SPDSS DSSF.READ - CALL SetMouse + CALL PointerMousePointer LD BC,0x4000 CALL PrintBlock POP HL @@ -330,12 +330,12 @@ ReadPrnEnd: LD HL,0xC000 LD A,D OR E JR Z,.L1 - CALL SetClock + CALL PointerMouseClock LD A,(PrnFHandle) PUSH DE SPDSS DSSF.READ POP BC - CALL SetMouse + CALL PointerMousePointer CALL PrintBlock JR C,.L2 .L1 CALL NxtPrnProc @@ -373,7 +373,7 @@ PrintCHAR: LD L,A BIT 0,A JR Z,PrnCH1 LD IX,PrintFTab - CALL TestCoords + CALL CheckCoordsMouse JR C,PrnCH2 PrnCH1 SPDSS DSSF.SCANKEY @@ -410,20 +410,20 @@ NxtPrnProc LD A,E PUSH DE PUSH BC LD IX,ProcessFPrn - LD L,(IX + PROC.CURR_PAGE) - LD H,(IX + PROC.CURR_PAGE + 1) + LD L,(IX + PROGRESSBAR.CURR_PAGE) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 1) INC HL - LD (IX + PROC.CURR_PAGE),L - LD (IX + PROC.CURR_PAGE + 1),H + LD (IX + PROGRESSBAR.CURR_PAGE),L + LD (IX + PROGRESSBAR.CURR_PAGE + 1),H LD A,H OR L JR NZ,.L1 - LD L,(IX + PROC.CURR_PAGE + 2) - LD H,(IX + PROC.CURR_PAGE + 3) + LD L,(IX + PROGRESSBAR.CURR_PAGE + 2) + LD H,(IX + PROGRESSBAR.CURR_PAGE + 3) INC HL - LD (IX + PROC.CURR_PAGE + 2),L - LD (IX + PROC.CURR_PAGE + 3),H -.L1 CALL PrnProcess + LD (IX + PROGRESSBAR.CURR_PAGE + 2),L + LD (IX + PROGRESSBAR.CURR_PAGE + 3),H +.L1 CALL DrawProgressBar POP BC POP DE RET @@ -448,8 +448,8 @@ SystemInfoR SETPORT WINSP.Y_PORT,0xC0 LD HL,SetInvert PUSH HL - LD HL,DOSvers - LD DE,BIOSver + LD HL,.DOSvers + LD DE,.BIOSver LD B,0x05 LD A,0x20 .L1 LD (HL),A @@ -461,14 +461,14 @@ SystemInfoR SPDSS DSSF.VERSION POP IY EX DE,HL - LD DE,DOSvers + LD DE,.DOSvers LD A,H - CALL ConvNumTxt8 + CALL ConvertNumbers_8b LD A,'.' LD (DE),A INC DE LD A,L - CALL ConvNumTxt8 + CALL ConvertNumbers_8b LD HL,WorkBuffer SPBIOS BIOSF.FN_VERSION SUB A @@ -480,7 +480,7 @@ SystemInfoR CP (HL) JR NZ,.L3 INC HL - LD DE,BIOSver + LD DE,.BIOSver SUB A .L4 LDI CP (HL) @@ -490,11 +490,11 @@ SystemInfoR OR A JR NZ,.L5 LD HL,NotPresent -.L5 LD DE,CMOS +.L5 LD DE,.CMOStxt LD BC,0x000B LDIR - LD HL,TotMem - LD DE,FreeMem + LD HL,.TotMem + LD DE,.FreeMem LD B,0x0F LD A,0x20 .L6 LD (HL),A @@ -519,11 +519,11 @@ SystemInfoR RR H RR L PUSH DE - CALL ConvNumTxt32 + CALL ConvertNumbers_32b SUB A LD (DE),A POP HL - LD DE,TotMem + LD DE,.TotMem CALL CorrBigNum INC DE LD HL,Bytes @@ -543,11 +543,11 @@ SystemInfoR RR H RR L PUSH DE - CALL ConvNumTxt32 + CALL ConvertNumbers_32b SUB A LD (DE),A POP HL - LD DE,FreeMem + LD DE,.FreeMem CALL CorrBigNum INC DE LD HL,Bytes @@ -559,20 +559,20 @@ SystemInfoR W_TEXT 48,3,COLORI.WHITE,"System information" W_TEXT 10,20,COLORP.HIGHGRAY,"FN version: \{FLEX_VERS.NAVIGATOR}" W_TEXT 10,32,COLORP.HIGHGRAY,"BIOS version: " -BIOSver EQU $ - STRLEN(" ") - 1 +.BIOSver EQU $ - STRLEN(" ") - 1 W_TEXT 10,44,COLORP.HIGHGRAY,"DOS version: " -DOSvers EQU $ - STRLEN(" ") - 1 +.DOSvers EQU $ - STRLEN(" ") - 1 W_TEXT 10,56,COLORP.HIGHGRAY,"CMOS: " -CMOS EQU $ - STRLEN(" ") - 1 +.CMOStxt EQU $ - STRLEN(" ") - 1 W_TEXT 10,70,COLORP.HIGHGRAY,"Total memory: " -TotMem EQU $ - STRLEN(" ") - 1 +.TotMem EQU $ - STRLEN(" ") - 1 W_TEXT 10,82,COLORP.HIGHGRAY,"Free memory: " -FreeMem EQU $ - STRLEN(" ") - 1 +.FreeMem EQU $ - STRLEN(" ") - 1 W_BUTTON 60,96,72,14 W_TEXT 88,99,COLORP.HIGHGRAY,"Ok",0 W_END SysInfoLoop: LD IX,SysInfoTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,SysInfoLoop LD A,B @@ -599,7 +599,7 @@ DiskInfoR: LD HL,SetInvert ;!FIXIT проверить для это оно или нет SAFE_PORTY PUSH HL SETPORT WINSP.Y_PORT,0xC0 - CALL SetClock + CALL PointerMouseClock PUSH IY SPDSS DSSF.CURDISK POP IY @@ -614,7 +614,7 @@ DiskInfoR: LD HL,SetInvert ;PUSH IY ;RST ToDSS.DRV ;!FIXIT rst 0x18 ;POP IY - ;JP C,SetMouse + ;JP C,PointerMousePointer LD B,0 CALL .get_info EX AF,AF' @@ -783,7 +783,7 @@ DiskInfoR: LD HL,SetInvert ; вычисляем общий размер в байтах ; A:BC:HL - число для перевода LD DE,WorkBuffer - CALL ConvNumTxt40 + CALL ConvertNumbers_40b SUB A LD (DE),A LD HL,WorkBuffer @@ -805,8 +805,8 @@ DiskInfoR: LD HL,SetInvert LD HL,0 .freeSpace_l EQU $-2 LD DE,WorkBuffer+0x80 -; A:BC:HL - число для перевода - CALL ConvNumTxt40 +; ABCHL - число для перевода + CALL ConvertNumbers_40b SUB A LD (DE),A LD HL,WorkBuffer+0x80 @@ -825,15 +825,15 @@ DiskInfoR: LD HL,SetInvert LD DE,0x0128 LD BC,0x0070 LD A,0x80 - CALL PrnTxtLnIFF + CALL PrintTxtLine_IFF LD HL,WorkBuffer+0x180 LD DE,0x0013A LD BC,0x007C LD A,0x80 - CALL PrnTxtLnIFF - CALL SetMouse + CALL PrintTxtLine_IFF + CALL PointerMousePointer .DiskInfoLoop: LD IX,DiskInfoTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,.DiskInfoLoop LD A,B @@ -947,9 +947,9 @@ VersionR W_BUTTON 92,133,72,14 W_TEXT 120,136,COLORP.HIGHGRAY,"OK" W_END - CALL ResFire + CALL WaitUnpressMouse VersionLoop LD IX,VersionTab - CALL TestCoords + CALL CheckCoordsMouse SPDSS DSSF.SCANKEY JR Z,VersionLoop LD A,B diff --git a/rez2_fnsearch.a80 b/rez2_fnsearch.a80 index 323efa9..7270885 100644 --- a/rez2_fnsearch.a80 +++ b/rez2_fnsearch.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 24.07.2025 savelij +; LAST UPDATE: 31.07.2025 savelij ;[]==========================================================[] QSearchR LD A,(IY+PANEL.FILES_ALL) @@ -188,9 +188,9 @@ FoundSFile PUSH HL LD A,(IY+PANEL.VIEWFLAG) AND VIEWFLAG.MASK PUSH AF - CALL Z,PrnHScrBar + CALL Z,DrawHScrollBar POP AF - JP NZ,PrnVScrBar + JP NZ,DrawVScrollBar RET QSdelet LD A,(IX+0x02) diff --git a/rez2_fntab1.a80 b/rez2_fntab1.a80 index 511269e..dd44367 100644 --- a/rez2_fntab1.a80 +++ b/rez2_fntab1.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 16.04.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]==========================================================[] ; Формат таблицы @@ -89,12 +89,12 @@ VersionTab: DW 284,356,157,171,%0000000000100001,0,VersionExt,0 DW 0x8000 ;[]===============================================================[] -PathTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0 - DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0 - DW 0, 96, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 544,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0 +PathTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InputLineExitOk,0 + DW 328,400,123,137,%0000000000000001,0,InputLine.InputLineExitCancel,0 + DW 0, 96, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 544,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640, 0, 81,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640,143,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 ;[]===============================================================[] @@ -109,21 +109,21 @@ OverWrtTab: DW 196,252,126,140,%0000000100100001,0,OverWrtFile,0 DW 0x8001 ;[]===============================================================[] -ReNameTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0 - DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0 - DW 0,208, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 432,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0 +ReNameTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InputLineExitOk,0 + DW 328,400,123,137,%0000000000000001,0,InputLine.InputLineExitCancel,0 + DW 0,208, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 432,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640, 0, 81,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640,143,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 ;[]===============================================================[] -MakeDIRTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0 - DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0 - DW 0,200, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 440,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0 - DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0 +MakeDIRTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InputLineExitOk,0 + DW 328,400,123,137,%0000000000000001,0,InputLine.InputLineExitCancel,0 + DW 0,200, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 440,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640, 0, 81,%0000000000000000,0,InputLine.InputLineExitCancel,0 + DW 0,640,143,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 ;[]===============================================================[] @@ -147,5 +147,5 @@ QuitTab: DW 0,640,138,256,%0000000000100000,0,QuitConfirmWin.Abort,0 DW 0x8000 -EmptyTab: DW 0,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0 +EmptyTab: DW 0,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0 DW 0x8000 diff --git a/rez3_fnmark.a80 b/rez3_fnmark.a80 index 294df1e..4ed96e8 100644 --- a/rez3_fnmark.a80 +++ b/rez3_fnmark.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 25.07.2025 savelij +; LAST UPDATE: 01.08.2025 savelij ;[]==========================================================[] MarkFileR LD A,(IY+PANEL.FILES_ALL) @@ -85,7 +85,7 @@ UnSelectFile: LD IXL,0x00 POP HL BIT DIR.B_Dir,C ; это дира? IF MARK_DIR - CALL NZ,COUNTING_DIR ; измерение размера диры + CALL NZ,CountingDirR ; измерение размера диры ELSE JR NZ,.MrFile1 ; дирекории копировать не умеем, только файлы ENDIF @@ -102,7 +102,7 @@ UnSelectFile: LD IXL,0x00 JR Z,.L8 IF MARK_DIR ; копируем размер в байтах из размера диры - LD HL,COUNTING_DIR.FILES_SIZE + LD HL,JUMPS.FILES_BYTES LD DE,WorkBuffer + FileHDR.SizeBytes LD BC,DWORD LDIR @@ -147,7 +147,7 @@ UnSelectFile: LD IXL,0x00 .L4 LD IX,8 << 8 + 48 DEC HL DEC HL - CALL InvertRectan + CALL ReplaceColorRectan POP AF JR NZ,.MarkExit1 JR .MarkExit2 @@ -172,7 +172,7 @@ UnSelectFile: LD IXL,0x00 JR NZ,.L6 LD DE,(COLORP.INVERTPAPER + COLORI.INVSELFILES) << 8 | (COLORP.INVERTPAPER + COLORI.INVERTINK) .L6 LD IX,8 << 8 + 146 - CALL InvertRectan + CALL ReplaceColorRectan POP AF JR Z,.MarkExit2 ; установка выбор файла @@ -682,7 +682,7 @@ SUB_SIZE: EX AF,AF' ; [ ] fat32 IF MARK_DIR ; подсчет в байтах размера отмеченной директории ; HL - адрес описателя диры в странице панели которую мерять -COUNTING_DIR +CountingDirR .OLDPATH EQU WorkBuffer + 0x300 ; сохраненный текущий путь .CURRPATH EQU WorkBuffer + 0x200 ; временной текущий путь @@ -692,7 +692,7 @@ COUNTING_DIR PUSH HL PUSH BC GETPORT WINSP.CPU3 - PUSH AF + PUSH AF ; текущий номер страницы PUSH HL BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD A,(RAMPAGES.LEFTPANEL) @@ -704,8 +704,9 @@ COUNTING_DIR LD H,A LD L,A LD IXH,A ; обнуление уровня вхождения в диры - LD (.FILES_SIZE),HL - LD (.FILES_SIZE + 2),HL ; обнуление размера диры + LD (JUMPS.FILES_BYTES),HL + LD (JUMPS.FILES_BYTES + 2),HL ; обнуление размера диры + LD (JUMPS.FILES_COUNT),HL ; обнуление количества файлов LD HL,CPU3 LD (.CURR_DIRNAME),HL ; сохранение текущего пути для возврата @@ -728,7 +729,7 @@ COUNTING_DIR LDIR ; забрали имя диры для измерения LD A,(RAMPAGES.FLX) SETPORT WINSP.CPU3,,0 - CALL .ADD_2DOT ; возврат в предыдущую диру + CALL .ADD_2DOT ; для возврата в предыдущую диру POP HL LD DE,(.CURR_DIRNAME) LD BC,FileHDR.Name_Size @@ -738,7 +739,7 @@ COUNTING_DIR LD (DE),A CALL .SET_PATH ; установка текущего пути INC IXH ; следующий уровень диры -.CONTINUE CALL .ADD_2DOT +.CONTINUE CALL .ADD_2DOT ; для возврата в предыдущую диру CALL .COUNT_FILES LD A,IXL AND A ; здесь диры есть? @@ -775,6 +776,7 @@ COUNTING_DIR POP IX RET +; выход в предыдущую диру .GET_NAME LD HL,(.CURR_DIRNAME) LD (HL),0 LD DE,-FileHDR.Name_Size @@ -808,7 +810,7 @@ COUNTING_DIR POP IX RET -; добавление имени диры для выхода в предыдущую диру +; добавление имени диры ".." для выхода в предыдущую диру .ADD_2DOT PUSH HL LD HL,.RET_DIR LD DE,(.CURR_DIRNAME) @@ -822,19 +824,20 @@ COUNTING_DIR ; и выгребаем имена дир в табличку .COUNT_FILES LD IXL,0 ; количество дир в текущей дире CALL .F_FIRST ; ищем первый описатель - RET C + RET C ; выход если ничего не найдено .L2 LD DE,FFIRST.Attr ADD HL,DE LD A,(HL) SBC HL,DE BIT DIR.B_Dir,A - JR Z,.L4 + JR Z,.ADD_FILES_BYTES ; для диры копируем имя в табличку LD DE,FFIRST.Name ADD HL,DE LD A,(HL) CP '.' ; . и .. пропускаем JR Z,.L5 +; для диры копируем имя в табличку LD DE,(.CURR_DIRNAME) LD BC,FFIRST.Name_Size LDIR @@ -843,14 +846,19 @@ COUNTING_DIR JR .L5 ; для файла добавляем длину -.L4 LD DE,FFIRST.FileSize +.ADD_FILES_BYTES: + LD DE,FFIRST.FileSize ADD HL,DE CALL GET_DWORD ; взять размер из описателя - LD HL,.FILES_SIZE + LD HL,JUMPS.FILES_BYTES PUSH HL CALL BCDEHLP ; добавили к текущему размеру POP HL CALL SET_DWORD ; положили обратно + LD HL,(JUMPS.FILES_COUNT) + INC HL + LD (JUMPS.FILES_COUNT),HL ; инкремент количества файлов +; ищем следующий описатель .L5 CALL .F_NEXT JR NC,.L2 RET @@ -879,7 +887,8 @@ COUNTING_DIR POP HL RET -.FILES_SIZE DD 0 +;.FILES_SIZE DD 0 +;.FILES_COUNT DW 0 .FILES_MASK DZ "*.*" .RET_DIR DZ ".. " .DIR_NAME DZ " " @@ -890,11 +899,11 @@ COUNTING_DIR ; HL - адрес описателя диры в странице панели которую мерять ; На выходе: ; BCDE' - размер в байтах -GetDirSizeR CALL COUNTING_DIR - LD HL,COUNTING_DIR.FILES_SIZE - CALL GET_DWORD - EXX - RET +;GetDirSizeR CALL CountingDirR +; LD HL,JUMPS.FILES_BYTES +; CALL GET_DWORD +; EXX +; RET ; создание папок на приемнике ; HL - адрес описателя диры в странице панели которую копировать @@ -917,7 +926,8 @@ MkdirsDstR JR Z,.L1 LD DE,LeftPanel ; для пути куда копировать LD A,(RAMPAGES.RIGHTPANEL) ; из какой страницы панели брать путь -.L1 ; включаем пагу с директорией текущей панели +.L1 +; включаем пагу с директорией текущей панели SETPORT WINSP.CPU3,,0 LD HL,PANEL.CURR_PATH ADD HL,DE ; откуда путь приемника взять @@ -934,11 +944,11 @@ MkdirsDstR INC HL SPDSS DSSF.CURDIR POP DE ; адрес описателя диры в странице панели которую копировать -; JP C,ERROR ;COUNTING_DIR.END_COUNT +; JP C,ERROR ;CountingDirR.END_COUNT ; копирование имени директории для копирования LD HL,FileHDR.Name ADD HL,DE - LD DE,COUNTING_DIR.DIR_NAME + LD DE,CountingDirR.DIR_NAME LD BC,FileHDR.Name_Size LDIR ; забрали имя диры для копирования EX DE,HL @@ -950,12 +960,12 @@ MkdirsDstR LD (.ENDPATHSRC),DE ; адрес хвоста пути источника ; добавление имени диры для копирования в путь источника LD HL,(.ENDPATHSRC) - LD DE,COUNTING_DIR.DIR_NAME + LD DE,CountingDirR.DIR_NAME CALL .ADDNAME2PATH LD (.ENDPATHSRC),DE ; адрес хвоста пути источника ; добавление имени диры для копирования в путь приемника LD HL,(.ENDPATHDST) - LD DE,COUNTING_DIR.DIR_NAME + LD DE,CountingDirR.DIR_NAME CALL .ADDNAME2PATH LD (.ENDPATHDST),DE @@ -994,7 +1004,7 @@ MkdirsDstR JR .L2 ; ищем следующий ; завершение и выход - JP COUNTING_DIR.END_COUNT;RestoreDIR + JP CountingDirR.END_COUNT;RestoreDIR ; LD A,(RAMPAGES.FLX) ; SETPORT WINSP.CPU3,,0 @@ -1004,7 +1014,7 @@ MkdirsDstR ; поиск первой диры в текущей поддиректории .FINDFIRSTSRCDIR - LD HL,COUNTING_DIR.FILES_MASK + LD HL,CountingDirR.FILES_MASK LD DE,.FINDBUF SPDSS DSSF.F_FIRST,1,DIR.M_Dir RET