; LAST UPDATE: 15.02.2025 savelij
; описатель окна (адрес в IX)
; +00 X координата
; +01 Y координата
; +02 V высота
; +03 H ширина
; +04 C цвет
; +05 C цвет курсора
; +06 F флаговый
; +07 N номер пункта в окне
; бит 7-0=байты 8-9 текущий пункт меню,
; 1=байты 8-9 адрес хранения
; +08 | текущий
; +09 | пункт меню
; +0A : количество
; +0B : пунктов меню
; +0C | адрес
; +0D | текста
; +0E : список адресов
; +0F : подпрограмм
; +10 | адрес списка активных
; +11 | зон для мыши
; +12 : адрес списка
; +13 : горячих клавиш
; формат флагового байта окна
; IX+6
; 7-0-нет, 1-есть нижний заголовок
; 6-0-с рамкой,1-без рамки
; 5-0-нет, 1-есть верхний заголовок
; 4-0-нет, 1-есть текст
; 3-0-меню, 1-показ файлов
; 2-
; 1-
; 0-
; раскладка байт выделений
; +0 флаговый
; 7 при активности установлен
; 6 установлен, не выделяется
; 5 установлен, вызов вектора
; 4
; 3 \
; 2 } форма курсора
; 1 } при попадании
; 0 /
; +1 X координата
; +2 Y координата
; +3 V высота
; +4 H ширина
; +5 K код клавиши
;===================MAIN MENU===================
MAIN_MENU
WINHDR 0x04,0x04,.NUMS+2,0x20,0x0F,0x1F,%00100000,0x80, \
DAT_MAIN_MENU,.NUMS, \
.TXT_MAINMENU,.MAINMENU1,.MOUSE_MAINMENU,.MAINMKEYS
.TXT_MAINMENU DB "\x17\xFFMAGIC Service"
DB "\r 0.Continue program"
DB "\r S.Setup"
DB "\r F.File browser"
IF BUILD_DEBUG=1
DB "\r D.Debugger STS"
ENDIF
DB 0
.MAINMKEYS DB .NUMS
IF BUILD_DEBUG=1
DB "0sfd"
ELSE
DB "0sf"
ENDIF
.NUMS := LOW ($ - .MAINMKEYS) - 1
.MAINMENU1 DW CONTINUE_PROG
DW SETUP
DW FILE_BROWSER
IF BUILD_DEBUG=1
DW DEBUGGER
ENDIF
.EMAINMENU1
.MOUSE_MAINMENU DB 0xFF
;===================MAIN MENU===================
;==================SETUP MENU===================
SETUP_MENU
WINHDR 0x06,0x06,.NUMS+2,0x20,0x0F,0x1F,%00100000,0x80, \
DAT_SETUP_MENU,.NUMS, \
.TXT_SETUPMENU,.SETUPMENU1,.MOUSE_SETUPMENU,.SETUPKEYS
.TXT_SETUPMENU DB "\x01\x17\xFFSetup"
DB "\r 0.Main menu"
DB "\r W.Turbo \x2"
DW TXT_TURBO_MODE
DB "\r M.Memory \x2"
DW TXT_MEMORY_MODE
; для резидента HONEY COMANDER
DB "\r R.Resident Honey Cmd \x2"
DW TXT_REZIDENT_MODE
DB "\r K.Kill rezident \x2"
DW TXT_KILLREZID
DB 0
; для резидента HONEY COMANDER
.SETUPKEYS DB .NUMS
DB "0wmrk"
.NUMS := LOW ($ - .SETUPKEYS) - 1
.SETUPMENU1 DW RESTART_MAIN
DW SET_TURBO
DW SET_MEMORY
; для резидента HONEY COMANDER
DW SET_REZIDENT
DW KILL_REZID
.ESETUPMENU1
.MOUSE_SETUPMENU DB 0xFF
;==================SETUP MENU===================
;================DEVICE NOT FOUND===============
DEV_NOTFOUND
WINHDR 0x15,0x08,0x05,0x18,0x17,0x1F,%00000000,0x00, \
0,0,.TXT_DEVNOTFOUND,0,0,0
.TXT_DEVNOTFOUND
DB "\r Device not found"
DB "\r\r Press any key ...",0
;================DEVICE NOT FOUND===============
;====================NO FILES===================
NOFILES
WINHDR 0x00,0x00,0x03,0x1A,0x17,0x1F,%00000000,0x00, \
0,0,.TXT_NOFILES,0,0,0
.TXT_NOFILES DB "\r Files or DIR not found",0
;====================NO FILES===================
;==================SELECT DRIVE=================
SEL_DRIVE DB 0x010,0x08,0x00,0x1A,BLACK<<3+WHITE,MAGENTA<<3+WHITE,%00100000
ESEL_DRIVE
TXT_SELDRIVES DB "\x17\xFFSelect drives"
ETXT_SELDRIVES
;==================SELECT DRIVE=================
;==================FILE BROWSER=================
FILESBROWSER
WINHDR 0x00,0x00,TXT.V_FILES,TXT.H_FILES,BLUE<<3+WHITE,BLUE<<3+BR_PAPER,%10101000,0xC0, \
DAT_FILEBROWS,0, \
.TXT_FILEBROWS,.SEL_FILEBROWS,.MOUS_FILEBROWS,.KEYS_FILEBROWS
.TXT_FILEBROWS DB "\x17\xFFFile browser"
DB "\x16",TXT.V_FILES-1,"\x02D.Drive select ENTER.Select",0; V.SCL/TRD view",0
.KEYS_FILEBROWS DB LOW (.SEL_FILEBROWS-$-1)
REPT TXT.V_FILES-2
DB "\r"
ENDM
DB "d"
.SEL_FILEBROWS
REPT TXT.V_FILES-2
DW SELECT_FILE
ENDM
DW SELECT_DRIVE
; DW SCLTRD_VIEW
.MOUS_FILEBROWS DB 0,0x00,TXT.V_FILES-1,0x01,TXT.H_FILES/2-1,"d"
DB 0,TXT.H_FILES/2-1,TXT.V_FILES-1,0x01,TXT.H_FILES/2,0x0D
DB 0xFF
;==================FILE BROWSER=================
;=========================IMAGE FDI ERROR================================
LDFDIERROR
WINHDR (TXT.H_FILES-0x14)/2,0x08,0x04,0x14,0x17,0x00,%00000000,0, \
0,0,.TXT_LDFDIERR,0,0,0
.TXT_LDFDIERR DB "\x17\xFF\r FDI image error\r Press any key",0
;=========================IMAGE FDI ERROR================================
;================COLOR EXT FILES================
LEGEND_EXT
WINHDR 0x3E,0x06,0x08,0x09,BLACK<<3+WHITE,0,0,0, \
0,0,.TXT_LEGENDEXT,0,0,0
.TXT_LEGENDEXT DB "\r\x17",BR_INK+BLACK<<3+WHITE," DIR"
DB "\r\x17",BR_INK+BLACK<<3+GREEN," TRD"
DB "\r\x17",BR_INK+BLACK<<3+YELLOW," SCL"
DB "\r\x17",BR_INK+BLACK<<3+YELLOW," FDI"
DB "\r\x17",BR_INK+BLACK<<3+RED," TAP"
DB "\r\x17",BR_INK+BLACK<<3+CYAN,"Unknown",0
;================COLOR EXT FILES================
;==================монтировать или загружать в рамдиск===================
WIN_SEL_MOUNT
WINHDR (TXT.H_FILES-0x0E)/2,0x07,.NUMS+2,0x10,BLACK<<3+WHITE,BLUE<<3+BR_PAPER,%00100000,0x80, \
DAT_MOUNT,.NUMS, \
.SELMOUNTTXT,.SELMOUNT1,0,.SELMOUNTKEYS
.SELMOUNTTXT DB "\x17\xFFImages\r"
DB " 0.Only load\r"
DB " 1.Ramdisk A:\r"
DB " 2.Ramdisk B:\r"
DB " 3.Ramdisk C:\r"
DB " 4.Ramdisk D:\r"
DZ " X.Exit",0
.SELMOUNTKEYS DB .NUMS
DB "l1234x"
.NUMS := LOW ($ - .SELMOUNTKEYS) - 1
.SELMOUNT1 DW LOADIMAGES
DW TRD2RAMDISKA
DW TRD2RAMDISKB
DW TRD2RAMDISKC
DW TRD2RAMDISKD
DW SEARCHFILES.L1
.SELMOUNT2
;==================монтировать или загружать в рамдиск===================
;===============выбор TRD образа=========================================
WIN_SEL_TRD
WINHDR (TXT.H_FILES-0x0E)/2,0x07,.NUMS+2,0x10,BLACK<<3+WHITE,BLUE<<3+BR_PAPER,%00100000,0x80, \
DAT_LOAD,.NUMS, \
.SELMOUNTTXT,.SELMOUNT1,0,.SELMOUNTKEYS
.SELMOUNTTXT DB "\x17\xFFTRD to:\r"
DB " 0.Only load\r"
DB " 1.Ramdisk A:\r"
DB " 2.Ramdisk B:\r"
DB " 3.Ramdisk C:\r"
DB " 4.Ramdisk D:\r"
DB " 5.Mount A:\r"
DB " 6.Mount B:\r"
DB " 7.Mount C:\r"
DB " 8.Mount D:\r"
DZ " X.Exit",0
.SELMOUNTKEYS DB .NUMS
DB "012345678x"
.NUMS := LOW ($ - .SELMOUNTKEYS) - 1
.SELMOUNT1 DW LOADIMAGES
DW TRD2RAMDISKA
DW TRD2RAMDISKB
DW TRD2RAMDISKC
DW TRD2RAMDISKD
DW MOUNT_A
DW MOUNT_B
DW MOUNT_C
DW MOUNT_D
DW SEARCHFILES.L1
.SELMOUNT2
;===============выбор TRD образа=========================================
; расширения файлов для раскраски
FILES_EXT DB "TRD" ; 1
DB "SCL" ; 2
DB "FDI" ; 3
DB "TAP" ; 4
DB 0
EFILES_EXT
; цвет раскраски строки по расширениям
COLOR_EXT DB CYAN,GREEN,YELLOW,YELLOW,RED,MAGENTA
TXT_TURBO DB " 7.0 3.514.0"
TXT_ONOFF DB "on "
TXT_MEMORY DB "off 48128"
; список клавиш проверяемых всегда
MAIN_KEYS DB .NUMS
DB " ",0x07,0x08,0x09,0x0A,0x0B,0x0D
.NUMS := LOW ($ - MAIN_KEYS) - 1
ADREXEKEYS DW ENTER ; SPACE
DW RESTART ; EDIT
DW PAGEUP ; 0x08
DW PAGEDN ; 0x09
DW CURSOR_DOWN ; 0x0A
DW CURSOR_UP ; 0x0B
DW ENTER ; 0x0D
EADREXEKEYS
; текст для отображения найденных разделов, по 16 байт строка
TXT4MENU_DEVICE ;1234567890123456
DB ".HDDNemo MAST:"
DB ".HDDNemo SLAV:"
DB ".HDDSmuc MAST:"
DB ".HDDSmuc SLAV:"
DB ".HDDDivIDE MAST:"
DB ".HDDDivIDE SLAV:"
DB ".HDDProfi MAST:"
DB ".HDDProfi SLAV:"
DB ".HDDTurbo2 MAST:"
DB ".HDDTurbo2 SLAV:"
DB ".NeoGS SDCard:"
DB ".ZContr SDCard:"
; тип раздела
TXT4MENU_TYPE DB "FAT12"
DB "FAT16"
DB "FAT32"