; LAST UPDATE: 25.07.2025 savelij INIT_VAR 0x8000 SETVAR WorkBuffer, 0x400 ; рабочий буфер SETVAR StackTree, 0x100 ; начало буфера стека для работы с деревом директорий SETVAR STACKTREE, 0 ; указатель на конец буфера (стек растет вниз) SETVAR Stack, 0x100 ; начало рабочего стека SETVAR STACK, 0 ; указатель на конец буфера (стек растет вниз) SETVAR PagesList, 0x100 ; список страниц памяти SETVAR BASE_ADDR, 0x100 ; начало кода (блок переходов и общих переменных для доступа из плагинов) SETVAR PALETTE, 0 ; палитра сразу за таблицей переходов и глобальных переменных ; адреса буферов BUF_REZ2 _INIT_VAR 0x8000 _MINUSVAR .FLXdir, 0x100 _MINUSVAR .FlexDIRECTORY, 0x100 ; адреса для плагинов PluginOrgCPU3 EQU 0xC000 - 0x10 ; адрес плагина для окна 3 с учетом размера заголовка PluginOrgCPU1 EQU 0x4000 - 0x10 ; адрес плагина для окна 1 с учетом размера заголовка ; битовые маски для плагинов FLXMODES _BITMASK NORESTORE, 0 ; 0 - работает с восстановлением рабочей области Flex Navigator ; (т.е. после работы плагина не нужно восстанавливать экран) ; работает без восстановления рабочей области Flex Navigator ; (т.е. после работы плагина нужно восстанавливать экран) _BITMASK ADRORG, 1 ; 0 - адрес компиляции и работы в адресах 0xC000-0xFFFF ; 1 - адрес компиляции и работы в адресах 0x4000-0x7FFF LenInpData EQU 12 ; какое-то смещение для метки SearchStr CursTimer EQU 6 ; "частота" моргания текстового курсора Step EQU 8 ; ширина символа для перемещения курсора при вводе текста MainPullMenu EQU 6 ; количество пунктов в главном меню MASK_SIZE EQU 13 PANFILES ; количество файлов/директорий в панели в высоту .BRIEF EQU 17 ; для Brief режима .FULL EQU 18 ; для Full режима .TREE EQU 18 ; для Tree режима SUPPFILES _INIT_VAR 1 _SETVAR .EXE _SETVAR .BAT _SETVAR .FLX ; цвета INK COLORI _INIT_VAR _SETVAR .BLACK ; 0 _SETVAR .RED ; 1 _SETVAR .GREEN ; 2 _SETVAR .YELLOW ; 3 _SETVAR .BLUE ; 4 _SETVAR .INVERTPAPER ; 5 _SETVAR .INVERTINK ; 6 _SETVAR .BLACKGRAY ; 7 _SETVAR .HIGHGRAY ; 8 _SETVAR .PANEL ; 9 _SETVAR .FILES ; A _SETVAR .SELECTFILES ; B _SETVAR .INVSELFILES ; C _SETVAR .RESERVED ; D _SETVAR .WHITE0E ; E _SETVAR .WHITE ; F ; цвета PAPER COLORP _INIT_VAR _SETVAR .BLACK, 0x10 _SETVAR .RED, 0x10 _SETVAR .GREEN, 0x10 _SETVAR .YELLOW, 0x10 _SETVAR .BLUE, 0x10 _SETVAR .INVERTPAPER, 0x10 _SETVAR .INVERTINK, 0x10 _SETVAR .BLACKGRAY, 0x10 _SETVAR .HIGHGRAY, 0x10 _SETVAR .PANEL, 0x10 _SETVAR .FILES, 0x10 _SETVAR .SELECTFILES, 0x10 _SETVAR .INVSELFILES, 0x10 _SETVAR .RESERVED, 0x10 _SETVAR .WHITE0E, 0x10 _SETVAR .WHITE, 0x10 WINOBJECT _INIT_VAR _SETVAR .TYPE, BYTE ; нумерация подобъектов окна WINSUBOBJ _INIT_VAR _SETVAR .END ; конец описателя окна _SETVAR .TEXT ; печать текстовой строки _SETVAR .FILL ; заливка цветом указанной области _SETVAR .BORDER ; углубление _SETVAR .BUTTON ; кнопка _SETVAR .BUTTONTEXT ; кнопка с текстом _SETVAR .HORIZLINE ; горизонтальная линия _SETVAR .VERTICLINE ; вертикальная линия _SETVAR .ICONLEFTARROW ; спрайтик для скроллбара "стрелка влево" _SETVAR .ICONRIGHTARROW ; спрайтик для скроллбара "стрелка вправо" _SETVAR .ICONUPARROW ; спрайтик для скроллбара "стрелка вверх" _SETVAR .ICONDOWNARROW ; спрайтик для скроллбара "стрелка вниз" _SETVAR .ADRTEXT ; печать текстовой строки по адресу _INIT_VAR 0x7F _SETVAR .RESTOREWIN ; восстановление экрана под окном _SETVAR .WOBIND ; все выше перечисленное без привязки к описателю _INIT_VAR _SETVAR .NOSTORE ; без сохранения данных под окном _SETVAR .STORE ; с сохранением данных под окном ;[]----------------------------------------------------------[] PANEL _INIT_VAR _SETVAR .PANELFLAG, BYTE ; Флаг панели бит 7 - бит выделенности ; бит 0 - номер панели _SETVAR .VIEWFLAG, BYTE ; Флаг вида панели 0 - краткая панель ; бит 0 - подробная панель ; бит 1 - дерево ; бит 2 - ужатое дерево _SETVAR .SORTFLAG, BYTE ; Вид сортировки ; бит 0 - по имени ; бит 1 - по расширению ; бит 2 - по размеру ; бит 3 - по дате ; бит 4 - execute file ; бит 5 - file mask _SETVAR .X, WORD ; X позиция панели _SETVAR .BAR_X, WORD ; X позиция скролбара _SETVAR .BAR_Y, WORD ; Y позиция скролбара _SETVAR .BAR_MAX, WORD ; Max длина скролбара _SETVAR .BAR_CURR, WORD ; тек.длина скролбара ??? _SETVAR .BAR_ADR_LEFT, WORD ; Адрес ячейки BarLeft _SETVAR .BAR_ADR_RIGHT, WORD ; Адрес ячейки BarRight _SETVAR .FILES_PAGE, WORD ; Кол-во файлов на странице _SETVAR .FILES_ALL, WORD ; Общее кол-во файлов _SETVAR .FIRST_FILE, WORD ; Первый файл на странице _SETVAR .CURR_FILE, WORD ; Tекущий файл на странице _SETVAR .FILES_MARK, WORD ; Кол-во маркированных файлов _SETVAR .BYTES_MARK, DWORD ; Кол-во маркированных байтов _SETVAR .BYTES_MARK_H, BYTE ; Кол-во маркированных байтов FAT32 _SETVAR .FILE_MASK, MASK_SIZE ; Маска показа файлов _SETVAR .CURR_PATH, 0x100 ; Текущий путь панели PANELFLAG _BITMASK PRNDOSPATH, 7 ; =1-печатать путь DOS _BITMASK SIDE, 0 ; =1-правая панель, =0-левая панель VIEWFLAG _BITMASK SHORTTREE, 2 ; =1-ужатое дерево _BITMASK TREE, 1 ; =1-показ дерева каталогов _BITMASK FULL, 0 ; =1-подробный показ каталогов, 0-краткий .MASK EQU .M_TREE | .M_FULL SORTFLAG _BITMASK BIT7, 7 ; not used _BITMASK BIT6, 6 ; not used _BITMASK FILTER, 5 ; =1-показ файлов по фильтру _BITMASK EXEC, 4 ; =1-показывать только исполняемые файлы _BITMASK SIZE, 3 ; =1-сортировка по размеру _BITMASK DATE, 2 ; =1-сортировка по дате _BITMASK EXT, 1 ; =1-сортировка по расширению _BITMASK NAME, 0 ; =1-сортировка по имени .MASK EQU .M_SIZE | .M_DATE | .M_EXT | .M_NAME .MASKH EQU .M_BIT7 | .M_BIT6 | .M_FILTER | .M_EXEC .MASKEXECFILTER EQU .M_FILTER | .M_EXEC ;[]----------------------------------------------------------[] BAR _INIT_VAR _SETVAR .X, WORD _SETVAR .Y, WORD _SETVAR .MAX_LEN, WORD ; размер бара _SETVAR .LEN_FILES, WORD ; количество файлов _SETVAR .LEFT_FILES, WORD _SETVAR .RIGHT_FILES, WORD _SETVAR .PAGE_FILES, WORD ; количество файлов на страницу _SETVAR .MAX_FILES, WORD ; максимальное количество файлов _SETVAR .FIRST_FILE, WORD ; первый файл ;[]----------------------------------------------------------[] ; Прогресс бар PROC _INIT_VAR _SETVAR .X, WORD _SETVAR .Y, WORD _SETVAR .MAX_LEN, WORD ; максимальная длина процесса _SETVAR .INDEX, WORD ; Коэффициент для процесса _SETVAR .CORR_INDEX, WORD ; Коррекция коэфициента _SETVAR .MAX_PAGES, DWORD ; Максимум страниц _SETVAR .CURR_PAGE, DWORD ; Текущая страница _SETVAR .COLOR, BYTE ; Цвет прогресса ; Формат таблицы ; +00 2 Xmin ; +02 2 Xmax ; +04 2 Ymin ; +06 2 Ymax ; +08 2 0 - простой об'ект ; бит 0 - кнопка ; бит 1 - рабочая кнопка ; бит 2 - инверт 1 ; бит 3 - статичный инверт ; бит 4 - программа запускается без адреса возвр. ; и без огня ; бит 5 - программа запускается без адреса возвр. ; по левой кнопке огня ; бит 6 - программа запускается без адреса возвр. ; по правой кнопке огня ; бит 7 - вызвать функцию закрытия окна перед ; запуском программы без огня ; бит 8 - вызвать функцию закрытия окна перед ; запуском программы по левой кнопке ; бит 9 - вызвать функцию закрытия окна перед ; запуском программы по правой кнопке ; бит15 - это переключатель (инверт при огне не ; убирать) ; +0A 2 Адрес обработчика при не нажатом огне ; +0C 2 Адрес обработчика при нажатом огне (лев) ; +0E 2 Адрес обработчика при нажатом огне (прав) FORMTABL _INIT_VAR _SETVAR .X_MIN, WORD ; Xmin _SETVAR .X_MAX, WORD ; Xmax _SETVAR .Y_MIN, WORD ; Ymin _SETVAR .Y_MAX, WORD ; Ymax _SETVAR .FLAG, WORD ; битовые флаги _SETVAR .FIRE_NOFIRE, WORD ; Адрес обработчика при не нажатом огне _SETVAR .FIRE_LEFT, WORD ; Адрес обработчика при нажатом огне (лев) _SETVAR .FIRE_RIGHT, WORD ; Адрес обработчика при нажатом огне (прав) _SETVAR .SIZE, 0 ;FLAGS ; биты 7-0 _BITMASK EXECNOPRESS, 7 ; вызвать функцию закрытия окна перед запуском программы без огня _BITMASK EXECNORETRMB, 6 ; программа запускается без адреса возвр. по правой кнопке огня _BITMASK EXECNORETLMB, 5 ; программа запускается без адреса возвр. по левой кнопке огня _BITMASK EXECONLY, 4 ; программа запускается без адреса возвр. и без огня _BITMASK STATICINV, 3 ; статичный инверт _BITMASK INV1, 2 ; инверт 1 _BITMASK WORKBUTTON, 1 ; рабочая кнопка _BITMASK BUTTON, 0 ; кнопка ; ; биты 15-8 _BITMASK FIRENOINV, 7 ; это переключатель (инверт при огне не убирать) _BITMASK HZ, 6 ; ???? _BITMASK CLOSEANDRUN, 1 ; вызвать функцию закрытия окна перед запуском программы по левой кнопке _BITMASK CLOSEWIN, 0 ; вызвать функцию закрытия окна перед запуском программы по левой кнопке _BITMASK ENDTABL, 7 ; бит в .XMINH указатель на конец списка ; база таблицы переходов для вызова из плагинов JUMPS .JUMPSIZE EQU 3 ; таблица переходов на функции для плагинов _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 .InputLine, .JUMPSIZE _SETVAR .InpLnExtN, .JUMPSIZE _SETVAR .InpLnExtC, .JUMPSIZE _SETVAR .DOSError, .JUMPSIZE _SETVAR .InitScrBar, .JUMPSIZE _SETVAR .PrnHScrBar, .JUMPSIZE _SETVAR .PrnVScrBar, .JUMPSIZE _SETVAR .InitProcess, .JUMPSIZE _SETVAR .PrnProcess, .JUMPSIZE _SETVAR .InitScrollBar, .JUMPSIZE _ADDVAR .JUMPSIZE * 4 ; DUPL 15,0xC9 _SETVAR .ResFire, .JUMPSIZE _SETVAR .TestCoords, .JUMPSIZE _SETVAR .SetCMOSPrint, .JUMPSIZE _SETVAR .ResCMOSPrint, .JUMPSIZE _SETVAR .SetClock, .JUMPSIZE _SETVAR .SetMouse, .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 .Resident, .JUMPSIZE _ADDVAR (BASE_ADDR + 0xC0) - .CURRVAR; - .JUMPSIZE; * 4 ; DUPL 12,0xC9 ; переменные для доступа из плагинов _SETVAR .NUM_DEVICES, BYTE ; Кол-во устройств _SETVAR .TreeFlag, BYTE ; Флаг дерева _SETVAR .CMOSFlag, BYTE ; Флаг CMOS 0 - нет ; 1 - есть _SETVAR .MouseFlag, BYTE ; Флаг мыши 0 - нет ; 1 - есть _SETVAR .CMOSPrint, BYTE _SETVAR .FNPAGESID, BYTE ; Индеф.памяти где FN _SETVAR .FNREZ2, BYTE ; Страница с функциями FN _SETVAR .FNFONT, BYTE ; Страница шрифтов _SETVAR .FNREZ3, BYTE ; Страница FN HELP IFDEF ENABLE.VIEW _SETVAR .FNVIEW, BYTE ; Страница с FileViewer ENDIF IFDEF ENABLE.EDIT _SETVAR .FNEDIT, BYTE ; Страница с FileEditor ENDIF _SETVAR .BufferID, BYTE ; Индентификатор памяти под буфера _SETVAR .FLX, BYTE ; Страница для подгрузки FLX просмотр. FLX утилит _SETVAR .LEFTPANEL, BYTE ; Страница каталога Левой панели _SETVAR .RIGHTPANEL, BYTE ; Страница каталога Правой панели ; Буферные страницы под интерфейс _SETVAR .BuffPg1, WORD _SETVAR .BuffPg3, 3 FileHDR _INIT_VAR _SETVAR .Flag, BYTE ; +#00 _SETVAR .Name, 8 ; +#01 _SETVAR .Dot, BYTE ; +#09 ??? _SETVAR .Ext, 3 ; +#0A _SETVAR .Zero, BYTE ; +#0D ??? _SETVAR .Attr, BYTE ; +#0E используется бит7 для чего-то _SETVAR .SizeBytes, DWORD ; +#0F _SETVAR .Date, BYTE ; +#13 _SETVAR .Month, BYTE ; +#14 _SETVAR .Year, BYTE ; +#15 _SETVAR .Hours, BYTE ; +#16 _SETVAR .Minutes, BYTE ; +#17 _SETVAR .SIZE, 0 _BITMASK MARK, 0 ; 1-файл помечен ; имена файлов FILENAME .FN_INI EQU "fn.ini" .FN_EXT EQU "fn.ext" .FNVIEW_EXT EQU "fnview.ext" .FNEDIT_EXT EQU "fnedit.ext" .FNTREE_FLN EQU "treeinfo.fln" .FNEDIT_INI EQU "FNEDIT.INI" .HELP_FLX EQU "HELP.FLX" .EDIT_FLX EQU "FNEDITOR.FLX" .VIEW_FLX EQU "FNVIEWER.FLX" FNinternal _INIT_VAR 0xF0 _SETVAR .PlugNotFound ; отладочное, не менять по избежание глюков PLUGS_ENABLE EQU 0 ; меню плагинов TREE_REZID EQU 0 MARK_DIR EQU 0 ; выбор директории с подсчетом размера всех файлов TREE_DIR_ENTER EQU 0 ; показ содержимого директории в дереве по ENTER CORR_FILENAME EQU 1 ; преобразование символов имени файла