; LAST UPDATE: 25.06.2025 savelij DOShistory_Size EQU 0x200 ; размер буфера DOS истории INIT_VAR 0x8000 SETVAR WorkBuffer, 0x400 ; рабочий буфер SETVAR StackTree, 0x100 ; начало буфера стека для работы с деревом директорий SETVAR STACKTREE, 0 ; указатель на конец буфера (стек растет вниз) SETVAR PagesList, 0x100 ; список страниц памяти SETVAR Stack, 0x100 ; начало рабочего стека SETVAR STACK, 0 ; указатель на конец буфера (стек растет вниз) SETVAR BASE_ADDR, 0x100 ; начало кода (блок переходов и общих переменных для доступа из плагинов) SETVAR PALETTE, 0 ; палитра сразу за таблицей переходов и глобальных переменных ADDR _INIT_VAR 0x4000 _SETVAR .FlexDIRECTORY PluginOrg EQU 0xC000 - 0x10 ; адрес плагина с учетом размера заголовка 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 ; Флаг панели бит 7 - бит выделенности ; бит 0 - номер панели _SETVAR .VIEWFLAG ; Флаг вида панели 0 - краткая панель ; бит 0 - подробная панель ; бит 1 - дерево ; бит 2 - ужатое дерево _SETVAR .SORTFLAG ; Вид сортировки ; бит 0 - по имени ; бит 1 - по расширению ; бит 2 - по размеру ; бит 3 - по дате ; бит 4 - execute file ; бит 5 - file mask _SETVAR .XL ; X позиция панели LOW _SETVAR .XH ; X позиция панели HIGH _SETVAR .BARXL ; X позиция скролбара LOW _SETVAR .BARXH ; X позиция скролбара HIGH _SETVAR .BARYL ; Y позиция скролбара LOW _SETVAR .BARYH ; Y позиция скролбара HIGH _SETVAR .BARMLL ; Max длина скролбара LOW _SETVAR .BARMLH ; Max длина скролбара HIGH _SETVAR .BARCLL ; тек.длина скролбара LOW _SETVAR .BARCLH ; тек.длина скролбара HIGH _SETVAR .BARLFL ; Адрес ячейки BarLeft LOW _SETVAR .BARLFH ; Адрес ячейки BarLeft HIGH _SETVAR .BARRTL ; Адрес ячейки BarRight LOW _SETVAR .BARRTH ; Адрес ячейки BarRight HIGH _SETVAR .FPL ; Кол-во файлов на странице LOW _SETVAR .FPH ; Кол-во файлов на странице HIGH _SETVAR .EFL ; Общее кол-во файлов LOW _SETVAR .EFH ; Общее кол-во файлов HIGH _SETVAR .FFL ; Первый файл на странице LOW _SETVAR .FFH ; Первый файл на странице HIGH _SETVAR .CFL ; Tекущий файл на странице LOW _SETVAR .CFH ; Tекущий файл на странице HIGH _SETVAR .MFL ; Кол-во маркированных файлов LOW _SETVAR .MFH ; Кол-во маркированных файлов HIGH _SETVAR .MBL1 ; Кол-во маркированных байтов [ _SETVAR .MBH1 ; Кол-во маркированных байтов _SETVAR .MBL2 ; Кол-во маркированных байтов _SETVAR .MBH2 ; Кол-во маркированных байтов ] _SETVAR .MBL3 ; Кол-во маркированных байтов FAT32 _SETVAR .FILEMASK, MASK_SIZE ; Маска показа файлов _SETVAR .CURRPATH, 0x100 ; Текущий путь панели 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 .XL _SETVAR .XH _SETVAR .YL _SETVAR .YH _SETVAR .MAXLL _SETVAR .MAXLH _SETVAR .LENL _SETVAR .LENH _SETVAR .LEFTL _SETVAR .LEFTH _SETVAR .RIGHTL _SETVAR .RIGHTH _SETVAR .PAGEL _SETVAR .PAGEH _SETVAR .MAXL _SETVAR .MAXH _SETVAR .FIRSTL _SETVAR .FIRSTH ;[]----------------------------------------------------------[] PROC _INIT_VAR _SETVAR .XL _SETVAR .XH _SETVAR .YL _SETVAR .YH _SETVAR .MAXLL _SETVAR .MAXLH _SETVAR .COEFL _SETVAR .COEFH _SETVAR .CORRL _SETVAR .CORRH _SETVAR .MAXL1 _SETVAR .MAXH1 _SETVAR .MAXL2 _SETVAR .MAXH2 _SETVAR .CURL1 _SETVAR .CURH1 _SETVAR .CURL2 _SETVAR .CURH2 _SETVAR .COLOR ; Формат таблицы ; +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 .XMINL _SETVAR .XMINH _SETVAR .XMAXL _SETVAR .XMAXH _SETVAR .YMINL _SETVAR .YMINH _SETVAR .YMAXL _SETVAR .YMAXH _SETVAR .FLAGL _SETVAR .FLAGH _SETVAR .FIRENOL _SETVAR .FIRENOH _SETVAR .FIRELEFTL _SETVAR .FIRELEFTH _SETVAR .FIRERIGHTL _SETVAR .FIRERIGHTH _SETVAR .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 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 .FNFUNCT, BYTE ; Страница с функциями FN _SETVAR .FNVIEW, BYTE ; Страница с FileViewer _SETVAR .FNEDIT, BYTE ; Страница с FileEditor _SETVAR .FNHELP, BYTE ; Страница FN HELP _SETVAR .FNFONT, BYTE ; Страница шрифтов _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" ; отладочное, не менять по избежание глюков PLUGS_ENABLE EQU 0 TREE_REZID EQU 0 MARK_DIR EQU 0 ; выбор директории с подсчетом размера всех файлов TREE_DIR_ENTER EQU 0 ; показ содержимого директории в дереве по ENTER CORR_FILENAME EQU 1 ; преобразование символов имени файла