; LAST UPDATE: 21.02.2023 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
;2-
;1-
;0-
;РАСКЛАДКА БАЙТ ВЫДЕЛЕНИЙ
;+0 ФЛАГОВЫЙ
; 7 ПРИ АКТИВНОСТИ УСТАНОВЛЕН
; 6 УСТАНОВЛЕН, НЕ ВЫДЕЛЯЕТСЯ
; 5 УСТАНОВЛЕН, ВЫЗОВ ВЕКТОРА
; 4
; 3 \
; 2 } ФОРМА КУРСОРА
; 1 } ПРИ ПОПАДАНИИ
; 0 /
;+1 X КООРДИНАТА
;+2 Y КООРДИНАТА
;+3 V ВЫСОТА
;+4 H ШИРИНА
;+5 K КОД КЛАВИШИ
;===============мышиный курсор в двух видах================
SPRAR DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x50,0x03,0x48,0x01,0x4C,0x01,0x70,0x07,0x00
SPRAR2 DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x70,0x03,0x78,0x01,0x7C,0x01,0x70,0x07,0x00
;===============мышиный курсор в двух видах================
; инфа для создания 9 сектора нового диска
DSKINFO DB 0 ; + 0xE1 - НОМЕР ПЕРВОГО СВОБОДНОГО СЕКТОРА
DB 1 ; + 0xE2 - НОМЕР ПЕРВОГО СВОБОДНОГО ТРЕКА
DB 0x16 ; + 0xE3 - ТИП ДИСКЕТЫ
DB 0 ; + 0xE4 - КОЛИЧЕСТВО ФАЙЛОВ НА ДИСКЕТЕ
SECFREE DW 2544 ; + 0xE5 - КОЛИЧЕСТВО СВОБОДНЫХ СЕКТОРОВ
DB 0x10 ; + 0xE7 - ИДЕНТИФИКАЦИОННЫЙ КОД TRDOS
DW 0 ; + 0xE8 - 2 БАЙТА 0
DUPL 9,0x20 ; + 0xEA - 9 БАЙТ 0x20
DB 0 ; + 0xF3 - 1 БАЙТ 0
DB 0 ; + 0xF4 - КОЛИЧЕСТВО УДАЛЕННЫХ ФАЙЛОВ
DB "RAMDISKO" ; + 0xF5 - ИМЯ ДИСКЕТЫ
DSK_END
;===============меню дисковой ошибки=======================
DSK_ERR
WINHDR 0x08,0x08,LOW ((D_ERR2-D_ERR1)/2)+2,0x11,0x17,0x3A,%00100000,0, \
0,((D_ERR2-D_ERR1)/2),DSKERRTXT,D_ERR1,0,DSK_ERR_KEY
DSKERRTXT DB "\x17\xFFDOS MEDITATE!"
DB "\r R.Retry: "
NUM_TRK_TXT DB " /"
NUM_SEC_TXT DB " /"
SIDE_DISK DB " " ;r
DB "\r I.Ignore sector" ;i
DB "\r B.Break",0 ;b
DSK_ERR_KEY DB LOW (D_ERR1-$-1),"rib"
D_ERR1 DW _RETRY
DW _IGNORE
DW _STUPID
D_ERR2
;===============меню дисковой ошибки=======================
;===============сервисное меню=============================
MKILLS
WINHDR 0x0A,0x07,LOW ((KILL2-KILL1)/2)+2,0x12,0x0F,0x1F,%00100000,0, \
0,((KILL2-KILL1)/2),MKILLSTXT,KILL1,0,MKILLS_KEY
MKILLSTXT DB "\x17\xFFServices"
DB "\r R.Reset NeoGS" ;r
DB "\r E.Reset CMOS" ;e
DB "\r K.Format ramdisk 640k" ;k
DB "\r V.Basic 48 standart" ;v
DB "\r B.Basic 128 standart" ;b
DB "\r M.Edit CMOS" ;m
DB "\r S.Test PC keyboard" ;s
DB "\r D.HDD detector" ;d
DB "\r C.ATM CP/M" ;c
DB "\r T.IS-DOS boot" ;t
DB "\r F.Fast update ROM" ;f
DB "\r U.Update custom ROM" ;u
DB "\r N.Dismount image" ;n
DB "\r X.Exit",0 ;x
MKILLS_KEY DB LOW (KILL1-$-1),"rekvbmsdctfunx"
KILL1 DW RESETNGS ;r
DW RESET_CMOS ;e
DW RAM_640 ;k
DW BAS48STD ;v
DW BAS128STD ;b
DW EDIT_CMOS ;m
DW PC_KEYS_TEST ;s
DW HDD_DETECTOR ;d
DW ATM_CPM ;c
DW ISDOS_BOOT ;t
DW LOAD4FLASH_FULL ;f
DW LOAD4FLASH_CUST ;u
DW UMOUNTIMAGE ;n
DW RESTART ;x
KILL2
;===============сервисное меню=============================
;===============демонтирование образов=====================
WDISMOUNT
WINHDR 0x0E,0x08,LOW ((WDISM2-WDISM1)/2)+2,0x0D,0x07,0x1F,%00100000,0, \
0,((WDISM2-WDISM1)/2),WDISMTXT,WDISM1,0,WDISMKEY
WDISMTXT DB "\x17\xFFDismount"
DB "\r 1.Dismount A:" ;1
DB "\r 2.Dismount B:" ;2
DB "\r 3.Dismount C:" ;3
DB "\r 4.Dismount D:" ;4
DB "\r 5.Dismount all" ;5
DB "\r X.Exit",0 ;x
WDISMKEY DB LOW (WDISM1-$-1),"12345x"
WDISM1 DW DISMOUNT_A ;1
DW DISMOUNT_B ;2
DW DISMOUNT_C ;3
DW DISMOUNT_D ;4
DW DISMOUNT_ALL ;5
DW RESTART ;x
WDISM2
;===============демонтирование образов=====================
;===============меню установок=============================
SETUPER
WINHDR 0x07,0x07,LOW ((SETUPER2-SETUPER1)/2)+2,0x15,0x0F,0x1F,%00100000,0, \
0,((SETUPER2-SETUPER1)/2),SETUPERTXT,SETUPER1,0,SETUPERKEY
SETUPERTXT DB "\x01\x17\xFFSetup"
DB "\r S.Sound on keys: off"
SNDKEYS_STAT EQU $-2
DB "\r G.Access SD NeoGS: ofN"
ACCSSDG_STAT EQU $-2
DB "\r K.DRV AY printer: off"
ETXT_AYPRINTER EQU $-2
;ДЛЯ РЕЗИДЕНТА HONEY COMANDER
DB "\r R.Resident Honey Cmd: off"
TXT_REZIDENT EQU $-2
DB "\r E.Kill rezident: off"
TXT_KILLREZID EQU $-2
DB "\r T.Autostart tape: off"
TXT_AUTOTAPE EQU $-2
DB "\r H.Delay for HDD, secs 5"
TXT_HDDTIMEOUT EQU $-1
DB "\r L.Screensaver, minute: 5"
TXT_SCRSAVDELAY EQU $-1
DZ "\r X.Exit"
;ДЛЯ РЕЗИДЕНТА HONEY COMANDER
SETUPERKEY DB LOW (SETUPER1-$-1),"sgkrethlx"
SETUPER1 DW SOUND_KEYS ;s
DW ACS_SDNGS ;g
DW AYPRN_SETUP ;k
;ДЛЯ РЕЗИДЕНТА HONEY COMANDER
DW REZID_SETUP ;r
DW KILL_REZID ;e
DW AUTO_TAPE ;t
DW HDDTIMEOUT ;h
DW SCRSAVTIMEOUT ;l
DW RESTART ;x
SETUPER2
;===============меню установок=============================
;===============выбор FAT устройства=======================
SEL_FAT_DEV
WINHDR 0x03,0x04,0x00,0x16,0x07,0x1F,%00100000,0, \
0,0,SEL_FAT_DRV,0,0,0
SELFATDEVEXE EQU $-6
TXT_FAT_SEL DB "\x17\xFFDrive select"
ETXT_FAT_SEL
;===============выбор FAT устройства=======================
;===============главное меню===============================
MAINMENU
WINHDR 0x11,0x06,LOW ((MAIN2-MAIN1)/2)+2,0x0C,0x0F,0x1F,%00100000,0, \
0,((MAIN2-MAIN1)/2),MAINTXT,MAIN1,MAIN_ZONE,MAINMENU_KEY
MAINTXT DB "\x17\xFFMain menu"
DB "\r Z.TR-DOS boot" ;z
DB "\r F.File browse" ;f
DB "\r T.Tape load" ;t
DB "\r B.HDD boot" ;b
DB "\r D.CD boot" ;d
DB "\r 5.SDcard boot" ;5
DB "\r X.Perfect Cmd" ;x
DB "\r S.TR-DOS" ;s
DB "\r I.48k basic" ;i
DB "\r U.128k basic" ;u
DB "\r C.Setup" ;c
DB "\r R.Service" ;r
DB 0
MAINMENU_KEY DB LOW (MAIN1-$-1),"zftbd5xsiucrwmlg123489vyhejn"
MAIN1 DW GLUBOOT ;z ДИСКЕТОЗАГРУЗЧИК
DW FILES_BROWSE ;f ЗАГРУЗЧИК С ФАТА
DW TAPELOAD ;t ЗАГРУЗКА С ЛЕНТЫ
DW HDD_BOOT ;b СТАРЫЙ ЗАГРУЗЧИК С ВИНТА
DW CDBOOT ;d СТАРЫЙ ЗАГРУЗЧИК С СИДЮКА
DW SDCARDBOOT ;5 ЗАГРУЗЧИК С SD КАРТЫ
DW PERFECT ;x PERFECT COMANDER
DW DOS128 ;s ПЕРЕХОД В TR-DOS
DW BAS48 ;i ПЕРЕХОД В БЕЙСИК 48
DW BAS128 ;u ПЕРЕХОД В БЕЙСИК 128
DW SETUPM ;c УСТАНОВКИ
DW _KILLS ;r СЕРВИС МЕНЮ
MAIN2 DW CHNGTURBO ;w ИЗМЕНЕНИЕ ТУРБО
DW CHNGMODE ;m ИЗМЕНЕНИЕ РЕЖИМА ПАМЯТИ
DW CHNGTAPMODE ;l ПЕРЕКЛЮЧЕНИЕ ЭМУЛЯЦИИ ЛЕНТЫ
DW CHNGGLUKMOD ;g РАЗРЕШЕНИЕ СБРОСА В ГЛЮК
DW SELDRV ;1 ВЫБОР ДИСКОВОДА A
DW SELDRV ;2 ВЫБОР ДИСКОВОДА B
DW SELDRV ;3 ВЫБОР ДИСКОВОДА C
DW SELDRV ;4 ВЫБОР ДИСКОВОДА D
DW MOUSE_ONOFF ;8 ВКЛ/ВЫКЛ КУРСОРА МЫШИ
DW CMOS_ONOFF ;9 ВКЛ/ВЫКЛ ОТОБРАЖЕНИЯ ЧАСОВ
DW NEXTDRIVE ;v ПЕРЕБОР РЕАЛЬНЫХ ДИСКОВОДОВ
DW NEXTVIRT ;y ПЕРЕБОР ВИРТУАЛЬНЫХ ДИСКОВОДОВ
DW VIEW_HELP ;h ВЫВОД ХЕЛПА
DW EN_LOADFONT ;e РАЗРЕШЕНИЕ ПЕРЕЗАГРУЗКИ ШРИФТА ПО СБРОСУ
DW SET_TYPEFONT ;j ВЫБОР ТИПА ШРИФТА
DW EN_AUTOMNT ;n ВКЛ/ВЫКЛ АВТОМОНТИРОВАНИЯ ИЗ ФАЙЛА
;===============главное меню===============================
;===============для загрузки с ленты=======================
BAS4TAPE binclude "bas4tape.bin"
EBAS4TAPE
;===============для загрузки с ленты=======================
TAPE_LDT
WINHDR 0x06,0x08,0x04,0x14,0x0E,0x0F,%00000000,0, \
0,0,TAPELDTTXT,0,0,0
TAPELDTTXT DB "\x17\xFF\r\x03Tape loading..."
DZ "\r\x03Press PLAY on tape"
;===============для загрузки с ленты=======================
;===============не TR-DOS диск=============================
NONETRDOS
WINHDR 0x06,0x08,0x03,0x16,0x16,0x0F,%00000000,0, \
0,0,TXT_NONETRDOS,0,0,0
TXT_NONETRDOS DB "\x17\xFF\r\x03Not TR-DOS disk",0
;===============не TR-DOS диск=============================
;===============загрузка SCL образа========================
LOAD_SCL
WINHDR 0x07,0x07,LOW ((.SELMOUNT2-.SELMOUNT1)/2)+2,0x0C,0x07,0x1F,%00100000,0, \
0,((.SELMOUNT2-.SELMOUNT1)/2),.SELMOUNTTXT,.SELMOUNT1,0,.SELMOUNTKEYS
.SELMOUNTTXT DB "\x17\xFFSCL 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"
DZ " X.Exit"
.SELMOUNTKEYS DB LOW (.SELMOUNT1-$-1),"01234x"
.SELMOUNT1 DW LOADIMAGE
DW SCL_A
DW SCL_B
DW SCL_C
DW SCL_D
DW RESTART
.SELMOUNT2
;===============загрузка SCL образа========================
;===============запуск из TRD образа=======================
RUN_IMAGE
WINHDR 0x07,0x03,LOW ((.SELMOUNT2-.SELMOUNT1)/2)+2,0x0C,0x07,0x1F,%00100000,0, \
0,((.SELMOUNT2-.SELMOUNT1)/2),.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"
DB " W.Copy to A:\r"
DB " E.Copy to B:\r"
DB " R.Copy to C:\r"
DB " T.Copy to D:\r"
DZ " X.Exit"
.SELMOUNTKEYS DB LOW (.SELMOUNT1-$-1),"012345678wertx"
.SELMOUNT1 DW LOADIMAGE
DW RUNIMG_A
DW RUNIMG_B
DW RUNIMG_C
DW RUNIMG_D
DW MOUNT_A
DW MOUNT_B
DW MOUNT_C
DW MOUNT_D
DW SEL4COPY_A
DW SEL4COPY_B
DW SEL4COPY_C
DW SEL4COPY_D
DW RESTART
.SELMOUNT2
;===============запуск из образа===========================
;===============окно вывода найденных файлов TR-DOS========
WIN_FILES
WINHDR 0x00,0x00,0x00,0x0C,0x0F,0x1F,%00010010,0, \
0,0,SEL_FAT_DRV,WFILES1,0,WFILESKEYS
WFILESKEYS DB LOW (WFILES1-$-1)
REPT FH_FILE-2
DB 0
ENDM
DB "x"
WFILES1 REPT FH_FILE-2
DW RUNFILE
ENDM
DW SEL_FILES_WIN
;===============окно вывода найденных файлов TR-DOS========
;===============окно вывода найденных файлов FAT===========
FAT_FILES
WINHDR 0x00,0x00,0x00,0x0C,0x0F,0x1F,%10100010,0, \
0,0,FATFILESTXT,FATFILES1,FB_ZONE,FATFILESKEYS
FATFILESTXT DB "\x17\xFFFile browser"
DZ "\x16\x17\x08D.Drive ENTER.Run/Load V.View"
FATFILESKEYS DB LOW (FATFILES1-$-1)
REPT FH_FILE
DB 0x0D
ENDM
DB "dvx"
FATFILES1 REPT FH_FILE
DW RUN_HOB
ENDM
DW SELECT_DEVICE
DW VIEW_IMAGE
DW RESTART
FB_ZONE DB 0,0x00,FH_FILE-1,0x01,0x07,"d"
DB 0,0x07,FH_FILE-1,0x01,0x0C,0x0D
DB 0,0x13,FH_FILE-1,0x01,0x07,"v"
DB 0xFF
;===============окно вывода найденных файлов FAT===========
;===============нет бейсик файлов==========================
NOBASIC
WINHDR 0x00,0x00,0x03,0x0C,0x0F,0x27,%00000000,0, \
0,0,TXTNOBASIC,ADRNOBAS,0,0
TXTNOBASIC DZ "\x17\xFF\r\x03No Progs"
ADRNOBAS DW RESTART
;===============нет бейсик файлов==========================
;===============HDD не найден==============================
HDDBOOT_ERROR
WINHDR 0x08,0x08,0x04,0x10,0x17,0x00,%00000000,0, \
0,0,TXT_HDDBOOTERR,0,0,0
TXT_HDDBOOTERR DZ "\x17\xFF\r\x03HDD not found\r\x03Press any key"
;===============HDD не найден==============================
;===============image FDI error============================
LDFDIERROR
WINHDR 0x08,0x08,0x04,0x10,0x17,0x00,%00000000,0, \
0,0,TXT_LDFDIERR,0,0,0
TXT_LDFDIERR DZ "\x17\xFF\r\x03FDI image error\r\x03Press any key"
;===============image FDI error============================
;===============file not found=============================
FILENONE
WINHDR 0x08,0x08,0x04,0x10,0x17,0x00,%00000000,0, \
0,0,TXT_FILENONE,0,0,0
TXT_FILENONE DZ "\x17\xFF\r\x03File not found\r\x03Press any key"
;===============file not found=============================
;===============virtual error==============================
ERR_VIRTUAL
WINHDR 0x05,0x08,0x04,0x18,0x17,0x00,%00000000,0, \
0,0,TXT_ERRVIRTUAL,0,0,0
TXT_ERRVIRTUAL DB "\x17\xFF\r\x03Virtual drive not formatted"
DZ "\r\x03or image not loaded"
;===============virtual error==============================
;===============update ROM=================================
UPDATE_WIN
WINHDR 0x09,0x08,0x0B,0x12,0x17,0x00,%00100000,0, \
0,0,TXT_UPDATEWIN,0,0,0
TXT_UPDATEWIN DB "\x17\xFFUpdate FLASH ROM\r"
DB "\r\x03Page 0"
DB "\r\x03Page 1"
DB "\r\x03Page 2"
DB "\r\x03Page 3"
DB "\r\x03Page 4"
DB "\r\x03Page 5"
DB "\r\x03Page 6"
DZ "\r\x03Page 7"
;===============update ROM=================================
;===============update custom ROM==========================
UPDATE_CUSTOM
WINHDR 0x09,0x08,0x04,0x12,0x17,0x00,%00100000,0, \
0,0,TXT_UPDATECUST,0,0,0
TXT_UPDATECUST DZ "\x17\xFFUpdate custom ROM"
;===============update custom ROM==========================
;===============erase ROM==================================
ERASE_ROM
WINHDR 0x0D,0x03,0x05,0x0A,%00010111,%00000000,%00000000,0, \
0,0,TXT_ERASEROM,0,0,0
TXT_ERASEROM DZ "\x17\xFF\r\x03Erase FLASH"
;===============erase ROM==================================
;===============копирование образа на TR-DOS диск==========
WINCOPY_IMAGE
WINHDR 0x04,0x05,0x05,0x12,%00010111,%00000000,%00000000,0, \
0,0,.TXT,0,0,0
.TXT DZ "\x17\xFF\r\x03Copy image"
;===============копирование образа на TR-DOS диск==========
;===============страница помощи============================
WIN_HELP
WINHDR 0x01,0x03,0x14,0x1A,0x0F,0x00,%00100000,0, \
0,0,TXT_WINHELP,0,0,0
TXT_WINHELP DB "\x17\xFFHelp"
DB "\r Key+RESET:"
DB "\r Space=TRDOS"
DB "\r CS=Basic128"
DB "\r SS=Basic48"
DB "\r D=Grass!512b(PSB^Halloween CC04)"
DB "\r C=ColorTable+border keys+COVOX"
DB "\r S=old CMOS SetUp"
DB "\r 0=return to EVO Reset Service"
DB "\r----------------------------------"
DB "\r In main menu:"
DB "\r 1-4=TR-DOS drive"
DB "\r V=TR-DOS drive"
DB "\r Y=Virtual drive"
DB "\r M=memory mode"
DB "\r W=turbo 3,5-7-14 MHz"
DB "\r 8=on/off mouse"
DB "\r 9=on/off time"
DZ "\r & uppercased option keys."
;===============страница помощи============================
;===============SD карта удалена===========================
SDCARD_LOST
WINHDR 0x08,0x08,0x04,0x10,0x17,0,%00000000,0, \
0,0,TXT_SDLOST,0,0,0
TXT_SDLOST DZ "\x17\xFF\r\x03SD card lost\r\x03Press RESET"
;===============SD карта удалена===========================
;===============тексты и прочая фигня======================
TXTFULLSCR DB "\x16\x00\x00\x17",GREEN,"EVO Reset Service v",VERSBIOS
DB "\x16\x01\x00\x17",YELLOW,"ZX-Evolution 4096 Kb "
DB "\x16\x02\x00\x17",CYAN+BR_INK,"www.nedopc.com "
DB "\x16\x03\x00\x17",CYAN,"Baseconf: \x17\xFF"
VERS_CONF DB "NONE "
DB "\x16\x04\x00\x17",CYAN,"AVR Boot: \x17\xFF"
; 12345678901234567890123456789012
VERS_BOOT DB "NONE "
; распечатка времени и даты сборки ERS
IF BUILD_DEBUG=1
DB "\x16\x05\x00\x17",BLUE,"Build ERS: "
TEXTTIME
DB " "
TEXTDATE
DB " "
ENDIF
DB "\x16\x17\x00\x17",MAGENTA+BR_INK,"H.Help \x17\xFF",0
;===============текст смонтированных дисков=============
MOUNTED_DRV DB 0x16,0x12,0x00,0x17,GREEN,"Mount A: ",0x17,YELLOW
MNT_DRV_A DB "NONE "
DB 0x16,0x13,0x00,0x17,GREEN,"Mount B: ",0x17,YELLOW
MNT_DRV_B DB "NONE "
DB 0x16,0x14,0x00,0x17,GREEN,"Mount C: ",0x17,YELLOW
MNT_DRV_C DB "NONE "
DB 0x16,0x15,0x00,0x17,GREEN,"Mount D: ",0x17,YELLOW
MNT_DRV_D DB "NONE "
DB 0x16,0x11,0x00,0x17,GREEN,"Ramdisk: ",0x17,YELLOW
IN_RAMDISK DB "NONE "
DB 0x17,0xFF,0
;===============текст смонтированных дисков=============
;===============текст настроек главного меню============
TRDDRV_MODE DB "\x16\x06\x00\x17",MAGENTA,"1-4.TR-DOS Drive: \x17\xFFA",0
TXT_DRIVE EQU $-2
SPEED_MODE DB "\x16\x09\x00\x17",MAGENTA,"W.CPU frequency: \x17\xFF14.0",0
TXT_SPEED EQU $-5
MEM_MODE DB "\x16\x08\x00\x17",MAGENTA,"M.Memory Lock: \x17\xFF"
TXT_MEM DB "128",0
VIRTUAL_DRV DB "\x16\x07\x00\x17",MAGENTA,"Y.Virtual Drive: \x17\xFF A ",0
VIRT_DRIVE EQU $-4
EMUTAPLOAD DB "\x16\x0A\x00\x17",MAGENTA,"L.Emu tape load: \x17\xFFoff",0
EMTAPLOAD EQU $-3
SET_RESET DB "\x16\x0B\x00\x17",MAGENTA,"G.RESET=>\x17",YELLOW+BR_INK," \x17\xFF",0
TXT_RESET EQU $-0x0F
ROMLOADFONT DB "\x16\x0C\x00\x17",MAGENTA,"E.Reload FONT: \x17\xFFoff",0
EROMLOADFONT EQU $-3
TYPESFONT DB "\x16\x0D\x00\x17",MAGENTA,"J.Type FONT: \x17\xFF ATM",0
ETYPESFONT EQU $-6
TXT_AUTOMOUNT DB "\x16\x0E\x00\x17",MAGENTA,"N.Automount TRD: \x17\xFFoff",0
ETXT_AUTOMOUNT EQU $-3
;===============текст настроек главного меню============
;===============текст не соответствия прошики FPGA======
INCORRECTFPGA DB 0x16,0x16,0x00,0x17,RED << 3 + WHITE," Incorrect FPGA zxevo_fw.bin ",0
;===============текст не соответствия прошики FPGA======
;===============СПИСОК КЛАВИШ ПРОВЕРЯЕМЫХ ВСЕГДА========
MAIN_KEYS DB LOW (EMAIN_KEYS-$-1),"qaop ",0x07,0x08,0x09,0x0A,0x0B,0x0D
EMAIN_KEYS
ADREXEKEYS DW UP ; q
DW DOWN ; a
DW LEFT ; o
DW RIGHT ; p
DW ENTER ; SPACE
DW RESTART ; EDIT
DW LEFT ; 0x08
DW RIGHT ; 0x09
DW DOWN ; 0x0A
DW UP ; 0x0B
DW ENTER ; 0x0D
EADREXEKEYS
;===============ПРОВЕРЯЕМЫЕ ЗОНЫ МЫШИ===================
; F,X,Y,V,H,SYM
MAIN_ZONE DB 0,0x00,0x06,0x01,0x10,"v" ; перебор дисководов
DB 0,0x00,0x07,0x01,0x10,"y" ; перебор виртуальных дисководов
DB 0,0x00,0x08,0x01,0x10,"m" ; перебор режимов памяти
DB 0,0x00,0x09,0x01,0x10,"w" ; перебор турбо
DB 0,0x00,0x0A,0x01,0x10,"l" ; перебор эмуляции ленты
DB 0,0x00,0x0B,0x01,0x10,"g" ; перебор разрешения глюка
DB 0,0x00,0x0C,0x01,0x10,"e" ; перебор разрешения перезагрузки фонта
DB 0,0x00,0x0D,0x01,0x10,"j" ; перебор типа шрифта
; DB 0,0X00,0X0E,0X01,0X10,"k" ; перебор драйвера принтера
; DB 0,0x00,0x17,0x01,0x05,"h" ; вызов помощи
DB 0,0x00,0x0E,0x01,0x10,"n" ; вкл/выкл автомонтирования из файла
; DB 0,0x1D,0x15,0x03,0x03,0xAC
DB 0xFF
BUFF_TIME DB 0x16,0x00,0xD0,0x17,BLUE << 3 + YELLOW + BR_INK
TXT_TIME DB "00:00:00",0x16,0x01,0xD0
TXT_DATA DB "00.00.00",0x17,0xFF
; 000 PENT TV 71680
; 001 PENT VGA 71680
; 010 60Hz TV 58688
; 011 60Hz VGA 58688
; 100 48K TV 69888
; 101 48K VGA 69888
; 110 128K TV 70908
; 111 128K VGA 70908
TXT_VMODE DB 0x16,2,0xD0,0x17,GREEN+BR_INK
DB " ",0
TV_VGA EQU $-9
TXT_TVVGA DB "TV VGA"
TXT_HZ DB "PENT60Hz 48K128K"
TIME_OFF DB "\x16\x00\xD0\x17",WHITE," \x16\x01\xD0 \x17\xFF",0
TXT_RESETTO DB " EVO Service"
DB "GLUK Service"
DB " EVO ProfROM"
DB " Custom ROM"
TXT_SELDOS DB "EVO-DOS"
DB " TR-DOS"
TXTMODTYPE DB " ATMCP866"
TXTTURBOMODE DB " 3,5 7,014,0"
;===============ПОДДЕРЖИВАЕМЫЕ РАСШИРЕНИЯ==================
SUPPORT_EXT DB "TRD" ; 1
DB "SCL" ; 2
DB "FDI" ; 3
DB "TAP" ; 4
DB "SPG" ; 5
DB "$C " ; 6
DB "BMP" ; 7
DB "SNA" ; 8
DB 0
;===============НОМЕРА ПОДДЕРЖИВАЕМЫХ РАСШИРЕНИЙ===========
NUM_SUP_EXT DUPL 17,0
TYPE_FILE DB 0
SIGN_SCL DB "SINCLAIR"
IMAGES DB "FDIBMP"
VIEW_IMAGES DB "TRDSCL",0
TAPES DB "TAP",0
HOBETA DB "$C SPGSNA",0
ROMS DB "ROM",0
FONTS DB "FNT",0
; текст для отображения найденных разделов, по 16 байт строка
TXT4MENU_DEVICE ;12345678901234567890
DB ".HDDNemo MASTER:"
DB ".HDDNemo SLAVE:"
DB ".HDDSmuc MASTER:"
DB ".HDDSmuc SLAVE:"
DB ".HDDDIVIDE MASTER:"
DB ".HDDDIVIDE SLAVE:"
DB ".HDDProfi MASTER:"
DB ".HDDProfi SLAVE:"
DB ".HDDTURBO2 MASTER:"
DB ".HDDTURBO2 SLAVE:"
DB ".NeoGS SDCard:"
DB ".ZContr SDCard:"
;ТИП РАЗДЕЛА
TXT4MENU_TYPE DB "FAT12"
DB "FAT16"
DB "FAT32"
TXT_EDITCMOS1 DB "Press cursor keys, 0..9, A..F for edit, X.Exit",0
TXT_EDITCMOS2 DB "CMOS Editor",0
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
;80 А Б В Г Д Е Ж З И Й К Л М Н О П
CONV_CP866_ATM DB 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0
;90 Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
DB 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1
;A0 а б в г д е ж з и й к л м н о п
DB 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0
;B0 ░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐
DB 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F
;C0 └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧
DB 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F
;D0 ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀
DB 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF
;E0 р с т у ф х ц ч ш щ ъ ы ь э ю я
DB 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1
;F0 Ё ё Є є Ї ї Ў ў ° ∙ · √ № ¤ ■
DB 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF
if 0
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
;80 ░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐
CONV_ATM_CP866 DB 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF
;90 └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧
DB 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF
;A0 ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀
DB 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
;B0 Ё ё Є є Ї ї Ў ў ° ∙ · √ № ¤ ■
DB 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
;C0 Ю А Б Ц Д Е Ф Г Х И Й К Л М Н О
DB 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E
;D0 П Я Р С Т У Ж В Ь Ы З Ш Э Щ Ч Ъ
DB 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A
;E0 ю а б ц д е ф г х и й к л м н о
DB 0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3,0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE
;F0 п я р с т у ж в ь ы з ш э щ ч ъ
DB 0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2,0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEC
endif
;===============TXT_HELP========================================
; 0123456789ABCDEF0123456789ABCDEF
TXT_HELPREG DB "SECOND ",0 ; 00
DB "SECOND ALARM ",0 ; 01
DB "MINUTE ",0 ; 02
DB "MINUTE ALARM ",0 ; 03
DB "HOUR ",0 ; 04
DB "HOUR ALARM ",0 ; 05
DB "DAY OF WEEK ",0 ; 06
DB "DAY ",0 ; 07
DB "MONTH ",0 ; 08
DB "YEAR ",0 ; 09
DB "#20 ",0 ; 0A
DB "#02 ",0 ; 0B
DB "#00 ",0 ; 0C
DB "#80 ",0 ; 0D
DB "BIT 7=TURBO,BIT 2-0=MEMORY MODE",0 ; 0E
DB " ",0 ; 0F
DB "NUMBER TR-DOS DRIVE ",0 ; 10
DB "#AA OR #55 ",0 ; 11
EMPTY_STROKA DB " ",0
DUPL 0x10,0
DSTUPID DW _STUPID
MSTUPID DB 3,8,3,26,0xEA
DC "GO SLEEP,STUPID USER!!!"
DB 0xFF
TXT_BETA DB " beta"
TXT_NONE DB "NONE "
ETXT_NONE
T_ALL DB "off" ; 0
T_128 DB "128" ; 2
T_48 DB " 48" ; 1
SCRSAV
.START DD 0
.CURR DD 0
.TIMEOUT DB 0
; переменные при обращении к TR-DOS
DOSVARS
.CURR_IX DW 0
.COPY_1F DB 0
.DSKERR DB 0
.TMP_ERR_SP DW 0
.CNT_COPY DB 0
TXT_DOSTYPES0 DB "EVO-DOS"
TXT_DOSTYPES1 DB " TR-DOS"
ETXT_DOSTYPES
NUMFAT_SELECT DW 0 ; номер выбранного файла
FILESIZE_BLOCKS DW 0 ; размер файла в блоках по 16К
DRV_SYM DB 0 ; номер выбранного дисковода
MEMMODE DB 0 ; режим памяти
SYSREG1 DB 0 ; копия для вывода в порт EFF7
TURBO_NUM DB 0 ; номер турборежима
ERS_FLAGS DB 0
BITMASK LOAD_IMG, 6 ; =1-загрузка образа в рамдиск
BITMASK VIEW_IMG, 5 ; =1-показ содержимого образа (SCL TRD ONLY),=0-обычная работа
BITMASK EMU_TAPE, 4 ; =1-эмуляция загрузки с ленты, =0-загрузка через магнитофонный вход
BITMASK RUN_FAT, 3 ; =1-запуск с фата, =0-запуск с дискеты
BITMASK CLOCK_ON, 2 ; =1-часы найдены, =0-нет
BITMASK MOUSE_ON, 1 ; =1-мышь есть, =0-нет
BITMASK NUM_CURSOR, 0 ; =какой курсор рисовать, для мигания
;===============RUN_BASIC==================================
RUN_BASIC DW 0x100 ; номер строки бейсик проги
DW ERUN_BASIC-RUN_BASIC-5 ; длина бейсик строки
DB __CLEAR,__VAL,"\"65368\":"
DB __RANDOMIZE,__USR,__VAL,"\"15619\":",__REM,":",__RUN,"\""
RUNNAM DUPL 8,0 ; место под 8 символов имени для запуска файла
DB 0x22,0x0D,0x80
ERUN_BASIC
; RUN_CODE
RUN_CODE DW 0x100
DW ERUN_CODE-RUN_CODE-5
DB __RANDOMIZE,__USR,"0",0x0E,0,0,0,0,0,0x0D,0x80
ERUN_CODE
OUT_NAME_FILE DB 0x16,0,0,0x17,0xFF
OUT_NAME_FILET DUPL 0x100,0
TRSTPAL DB 0x00,0x21,0x42,0x63,0x90,0xB1,0xD2,0xF3
DB 0xE0,0xE1,0xE2,0xE3,0xF0,0xF1,0xF2,0xF3
;===============бумкалка в AY==============================
DIN DW 0x10
DUPL 4,0
DB 0x0F,0x36,0xF0,0,0
dw 0x100
gFenv EQU $-1
DB 9
;===============бумкалка в AY==============================
;===============переменные для кошака======================
WAITINGH DW 0 ; счетчик ожидания нажатых клавиш или движения мыши
WAITINGL DB 0 ; счетчик паузы перерисовки фазы кошака
NUMKOSHAK DB 0 ; номер выводимого спрайта кошака
ZEVOK DB 0 ; количество зеваний кошака
;===============переменные для кошака======================