Rev 999 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
305 | savelij | 1 | |
1041 | savelij | 2 | ; LAST UPDATE: 25.11.2022 savelij |
305 | savelij | 3 | |
999 | savelij | 4 | include ports_evo.a80 |
5 | |||
961 | savelij | 6 | ; страницы VIDEO RAM |
1041 | savelij | 7 | VMODE7_0 EQU LOW (-0x08)-1 ; 0xF7 страница одностраничного текстмода 0 экран |
8 | VMODE7_1 EQU LOW (-0x0A)-1 ; 0xF5 страница одностраничного текстмода 1 экран |
||
9 | VMODE6_0M EQU LOW (-0x05)-1 ; 0xFA страница ATM текстмода монохром 0 экран |
||
10 | VMODE6_0C EQU LOW (-0x01)-1 ; 0xFE страница ATM текстмода цвет 0 экран |
||
11 | VMODE6_1M EQU LOW (-0x07)-1 ; 0xF8 страница ATM текстмода монохром 1 экран |
||
12 | VMODE6_1C EQU LOW (-0x03)-1 ; 0xFC страница ATM текстмода цвет 1 экран |
||
13 | ZXSCR_0 EQU LOW (-0x05)-1 ; 0xFA страница ZX экрана 0 |
||
14 | ZXSCR_1 EQU LOW (-0x07)-1 ; 0xF8 страница ZX экрана 1 |
||
585 | savelij | 15 | |
961 | savelij | 16 | ; страницы памяти ZX стандарта |
1041 | savelij | 17 | ZXSTD_CPU1 EQU LOW (-0x05)-1; 0xFA ; страница 1 окна проецирования |
18 | ZXSTD_CPU2 EQU LOW (-0x02)-1; 0xFD ; страница 2 окна проецирования |
||
831 | savelij | 19 | |
961 | savelij | 20 | ; страницы RAM |
21 | RAM_EVODOS EQU 1 ; страница копии EVO-DOS для перехвата |
||
22 | RAM_FATVARS EQU 2 ; страница для переменых FAT |
||
23 | RAM_BASIC EQU 3 ; страница BASIC стандартная версия |
||
24 | RAM_PROFROM EQU 4 ; страница переменных PROFROM |
||
25 | RAM_MOUNTER EQU 5 ; страница для монтирования образов |
||
26 | RAM_STS EQU 6 ; страница для отладчика STS |
||
27 | RAM_ADDSTS EQU 7 ; страница для отладки ROM |
||
28 | RAM_SCR_FONT EQU 8 ; страница сохраненных экранов и фонтов |
||
29 | RAM_TEMP EQU 9 ; страница всяких временных переменных |
||
1041 | savelij | 30 | RAM_RAMDISK EQU 0x0A ; страница начала рамдиска |
31 | RAM_DATARAMD EQU 0x0B ; страница начала данных рамдиска |
||
32 | RAM_TEMP2 EQU 0x3F ; страница сортировки файлов и просмотра содержимого образов |
||
33 | RAM_FLASHER EQU 0x40 ; страница начала загрузки прошивки |
||
34 | RAM_TAPE EQU 0x60 ; страница для загрузки TAP файла |
||
305 | savelij | 35 | |
961 | savelij | 36 | ; страницы ROM |
37 | ROM_ERS EQU 0 ; номер страницы ROM EVO RESET SERVICE |
||
38 | ROM_BAS128 EQU 1 ; номер страницы ROM BASIC 128 |
||
39 | ROM_DOS EQU 2 ; номер страницы ROM EVO-DOS для реальной дискеты |
||
40 | ROM_BAS48 EQU 3 ; номер страницы ROM BASIC 48 |
||
801 | savelij | 41 | |
961 | savelij | 42 | ROM_MAINMENU EQU 5 ; номер страницы упакованного главное меню |
43 | ROM_RST80 EQU 6 ; номер страницы ROM RST 8 |
||
44 | ROM_RST81 EQU 7 ; номер страницы ROM RST 8 |
||
45 | ROM_RST82 EQU 8 ; номер страницы ROM RST 8 |
||
46 | ROM_RST83 EQU 9 ; номер страницы ROM RST 8 |
||
1041 | savelij | 47 | ROM_ADD_DOS EQU 0x0A ; номер страницы ROM EVO-DOS для эмуляции |
48 | ROM_ADD_BAS48 EQU 0x0B ; номер страницы ROM BASIC 48 |
||
49 | ROM_BAS48_STD EQU 0x18 ; номер страницы ROM BASIC 48 (стандартная версия) |
||
50 | ROM_BAS128_STD EQU 0x19 ; номер страницы ROM BASIC 128 (стандартная версия) |
||
51 | ROM_BAS48_128 EQU 0x1A ; номер страницы ROM BASIC 48 (стандартная версия для BASIC 128) |
||
52 | ROM_ATMCPM EQU 0x1B ; номер страницы ROM АТМ CP/M |
||
585 | savelij | 53 | |
1041 | savelij | 54 | CONF4PROF EQU 0x90 ; стартовая страница для EVO PROFROM 128K |
55 | CONF4GLUK EQU 0x94 ; стартовая страница для GLUK 64K |
||
56 | CONF4CUSTOM EQU 0x9C ; стартовая страница для пользовательской прошивки 64К |
||
501 | savelij | 57 | |
1041 | savelij | 58 | CPU0 EQU 0x0000 ; начало окна проецирования 0 |
59 | CPU1 EQU 0x4000 ; начало окна проецирования 1 |
||
60 | CPU2 EQU 0x8000 ; начало окна проецирования 2 |
||
61 | CPU3 EQU 0xC000 ; начало окна проецирования 3 |
||
553 | savelij | 62 | |
961 | savelij | 63 | ; маска кнопок мыши |
761 | savelij | 64 | BITMASK MOUSE_M_KEY, 2 |
65 | BITMASK MOUSE_R_KEY, 1 |
||
66 | BITMASK MOUSE_L_KEY, 0 |
||
689 | savelij | 67 | _MOUSE_WHEEL EQU %11110000 |
68 | |||
961 | savelij | 69 | ; скорости RS232 |
646 | savelij | 70 | BAUD110 EQU 115200/110 |
71 | BAUD150 EQU 115200/150 |
||
72 | BAUD300 EQU 115200/300 |
||
73 | BAUD600 EQU 115200/600 |
||
74 | BAUD1200 EQU 115200/1200 |
||
75 | BAUD2400 EQU 115200/2400 |
||
76 | BAUD4800 EQU 115200/4800 |
||
77 | BAUD9600 EQU 115200/9600 |
||
78 | BAUD19200 EQU 115200/19200 |
||
79 | BAUD38400 EQU 115200/38400 |
||
80 | BAUD57600 EQU 115200/57600 |
||
81 | BAUD115200 EQU 115200/115200 |
||
82 | |||
961 | savelij | 83 | ; одностраничный текстмод |
1041 | savelij | 84 | LSYM EQU 0x01C0 ; смещение в странице начала левых символов текстмода |
85 | LATTR EQU 0x31C0 ; смещение в странице начала левых атрибутов символов |
||
86 | RSYM EQU 0x11C0 ; смещение в странице начала правых символов текстмода |
||
87 | RATTR EQU 0x21C1 ; смещение в странице начала правых атрибутов символов |
||
573 | savelij | 88 | |
961 | savelij | 89 | ; ATM текстмод |
1041 | savelij | 90 | ALSYM EQU 0x01C0 ; смещение в странице начала левых символов текстмода |
91 | ALATTR EQU 0x21C0 ; смещение в странице начала левых атрибутов символов |
||
92 | ARSYM EQU 0x21C0 ; смещение в странице начала правых символов текстмода |
||
93 | ARATTR EQU 0x01C1 ; смещение в странице начала правых атрибутов символов |
||
702 | savelij | 94 | |
961 | savelij | 95 | ; цвета и яркости |
585 | savelij | 96 | BLACK EQU 0 |
97 | BLUE EQU 1 |
||
98 | RED EQU 2 |
||
99 | MAGENTA EQU 3 |
||
100 | GREEN EQU 4 |
||
588 | savelij | 101 | CYAN EQU 5 |
585 | savelij | 102 | YELLOW EQU 6 |
103 | WHITE EQU 7 |
||
1041 | savelij | 104 | BR_INK EQU 0x40 |
105 | BR_PAPER EQU 0x80 |
||
573 | savelij | 106 | |
961 | savelij | 107 | ; цвета для ATM видеорежимов |
1041 | savelij | 108 | BITMASK G_L, 7 |
109 | BITMASK G_H, 4 |
||
110 | BITMASK R_L, 6 |
||
111 | BITMASK R_H, 1 |
||
112 | BITMASK B_L, 5 |
||
113 | BITMASK B_H, 0 |
||
593 | savelij | 114 | |
961 | savelij | 115 | ; маска порта 7FFD |
1041 | savelij | 116 | BITMASK ZX_SCREEN, 3 |
117 | BITMASK ZX_ROM, 4 |
||
585 | savelij | 118 | |
961 | savelij | 119 | ; маска порта 0xBF |
120 | BITMASK BREAK_BF, 4 ; бит разрешения срабатывания BREAK на адресе |
||
121 | BITMASK NMI_BF, 3 ; бит генерации NMI |
||
122 | BITMASK FONT_BF, 2 ; бит разрешения изменения шрифта |
||
123 | BITMASK FLASH_BF, 1 ; бит разрешения программирования FLASH |
||
124 | BITMASK SHADOW_BF, 0 ; бит разрешения доступа к теневым портам |
||
585 | savelij | 125 | |
961 | savelij | 126 | ; маска порта 0xEFF7 |
127 | BITMASK PENT_CMOS, 7 ; бит разрешения доступа к кмосу |
||
128 | BITMASK PENT_TURBO, 4 ; турборежим пентагона |
||
736 | savelij | 129 | |
961 | savelij | 130 | ; маски режимов |
131 | MEMORY_ALL EQU %00010000 ; доступ к первому мегабайту через порт 0xEFF7 |
||
132 | MEMORY_48 EQU %00100000 ; доступен только 48Kb памяти |
||
133 | MEMORY_128 EQU %00110000 ; доступно только 128Kb памяти |
||
134 | TURBO_3 EQU %01000000 ; частота процессора 3,5 МГц |
||
135 | TURBO_7 EQU %10000000 ; частота процессора 7 МГц |
||
136 | TURBO_14 EQU %11000000 ; частота процессора 14 МГц |
||
137 | NUM_EGA EQU %00000000 ; номер видеорежима для ATM порта (EGA МОД 320*200) |
||
138 | NUM_APPMULTI EQU %00000010 ; номер видеорежима для ATM порта (АППАРАТНЫЙ МУЛЬТИКОЛОР 640*200) |
||
139 | NUM_ZXSCR EQU %00000011 ; номер видеорежима для ATM порта (ZX SCREEN 6912) |
||
140 | NUM_TXTATM EQU %00000110 ; номер видеорежима для ATM порта (ATM текстмод 80*25) |
||
141 | NUM_TXTSCR EQU %00000111 ; номер видеорежима для ATM порта (одностраничный текстмод 80*25) |
||
585 | savelij | 142 | |
838 | savelij | 143 | SET_VIDEOMODE EQU %00001000 |
144 | |||
961 | savelij | 145 | ; номера видеорежимов с маской для записи в порт |
1041 | savelij | 146 | V_EGA EQU NUM_EGA | 0xA0 |
147 | V_APPMULTI EQU NUM_APPMULTI | 0xA0 |
||
148 | V_ZXSCR EQU NUM_ZXSCR | 0xA0 |
||
149 | V_TXTATM EQU NUM_TXTATM | 0xA0 |
||
150 | V_TXT1PAGE EQU NUM_TXTSCR | 0xA0 |
||
678 | savelij | 151 | |
961 | savelij | 152 | ; маски отладчика |
153 | BITMASK DBG_ACTIV, 7 ; активен отладчик |
||
154 | BITMASK TRACE_DBG, 6 ; трассировка |
||
155 | BITMASK STEP_DBG, 5 ; пошаговая отладка |
||
156 | ; BITMASK CASH_INST, 4 ; установлен CASH REMEMBER |
||
157 | ; BITMASK CASH_ACTIV, 3 ; активен CASH REMEMBER |
||
585 | savelij | 158 | |
961 | savelij | 159 | ; смещения FDI образа |
1041 | savelij | 160 | FDI_TABLE_CYL EQU 0x4000 ; адрес таблицы начал дорожек в образе |
161 | FDI_PAGE_START EQU 0x40FF ; смещение в страницах начала секторов образа |
||
162 | FDI_BYTE_SMESH EQU 0x41FE ; смещение в байтах начала образа загруженного в рамдиск |
||
163 | FDI_BLOCK_SMESH EQU 0x41FF ; смещение в блоках (по 256 байт) начала секторов образа |
||
164 | FDI_IMAGE1SECT EQU 0x4400 ; адрес загрузки первого сектора для определения смещения |
||
472 | savelij | 165 | |
961 | savelij | 166 | ; ячейки в CMOS |
1041 | savelij | 167 | INIT_VAR |
168 | SETVAR _CMOS_SECOND ; секунды |
||
169 | SETVAR _CMOS_SECOND_AL ; секунды будильника |
||
170 | SETVAR _CMOS_MINUTE ; минуты |
||
171 | SETVAR _CMOS_MINUTE_AL ; минуты будильника |
||
172 | SETVAR _CMOS_HOUR ; часы |
||
173 | SETVAR _CMOS_HOUR_AL ; часы будильника |
||
174 | SETVAR _CMOS_DAY ; день недели |
||
175 | SETVAR _CMOS_DAY_MONTH ; день месяца |
||
176 | SETVAR _CMOS_MONTH ; месяц |
||
177 | SETVAR _CMOS_YEAR ; год |
||
736 | savelij | 178 | |
961 | savelij | 179 | ; номера ячеек CMOS и их содержимое |
1041 | savelij | 180 | CRCCMOSHIGH EQU 0xEF ; старший байт CRC CMOS |
181 | CRCCMOSLOW EQU 0xEE ; младший байт CRC CMOS |
||
182 | CMOS_BYTE_00 EQU 0xED ; адрес хранения в CMOS |
||
183 | CMOS_BYTE_01 EQU 0xEC ; адрес хранения в CMOS |
||
184 | VIRT_REAL_DRIVE EQU 0xEB ; хранение номера реального и виртуального дисковода, тип DOS |
||
185 | HDD_TIMEOUT EQU 0xEA ; задержка опредения наличия винта после включения питания |
||
186 | CMOS_BYTE_02 EQU 0xE9 ; адрес хранения в CMOS |
||
187 | CMOS_BYTE_03 EQU 0xE8 ; адрес хранения в CMOS |
||
585 | savelij | 188 | |
961 | savelij | 189 | ; ячейка CMOS 0xED CMOS_BYTE_00 |
190 | BITMASK TURBO14, 7 ; разрешение включения TURBO 14MHZ |
||
191 | BITMASK EMUL_TAPE, 6 ; разрешение эмуляции загрузки с ленты |
||
192 | BITMASK PRINTER_AY, 5 ; разрешение подмены драйвера печати в BASIC48 |
||
193 | BITMASK RELOAD_FONT, 4 ; разрешение перезагрузки шрифта при сбросе |
||
194 | BITMASK TYPE_FONT, 3 ; выбор кодировки шрифта |
||
195 | BITMASK AUTO_TAPE, 2 ; автозапуск TAP файлов |
||
487 | savelij | 196 | |
961 | savelij | 197 | ; номера сбросов, биты 1-0 ячейки 0xED (CMOS_BYTE_00) |
1041 | savelij | 198 | INIT_VAR |
199 | SETVAR RESET2EVOSERV ; сброс в EVO SERVICE |
||
200 | SETVAR RESET2GLUK ; сброс в GLUK SERVICE |
||
201 | SETVAR RESET2PROFROM ; сброс в PROFROM |
||
202 | SETVAR RESET2CUSTOM ; сброс в CUSTOM ROM |
||
702 | savelij | 203 | |
961 | savelij | 204 | ; ячейка CMOS 0xEC CMOS_BYTE_01 |
205 | BITMASK TURBO357, 7 ; турбо режим 3,5 или 7 Мгц |
||
206 | BITMASK SD_NGS_ONOFF, 6 ; включение/выключение доступа к SD КАРТЕ NEOGS |
||
207 | BITMASK AUTOMOUNT, 5 ; вкл/выкл автомонтирования из файла |
||
208 | BITMASK CLOCK_VIEW, 4 ; хранение отображение часов |
||
209 | BITMASK SOUNDKEYS, 3 ; разрешение озвучивания нажатых клавиш |
||
210 | BITMASK REZIDENT, 2 ; разрешение проверки наличия резидента |
||
573 | savelij | 211 | |
961 | savelij | 212 | ; номера моделей памяти, биты 1-0 ячейки 0xEC (CMOS_BYTE_01) |
1041 | savelij | 213 | INIT_VAR |
214 | SETVAR _1MB ; память 1 Мб |
||
215 | SETVAR _48K ; память 48 Кб |
||
216 | SETVAR _128K ; память 128 Кб |
||
702 | savelij | 217 | |
961 | savelij | 218 | KOL_MODES EQU 4 ; количество режимов сброса |
1041 | savelij | 219 | MKOL_MODES EQU %00000011 ; маска для количества режимов сброса |
585 | savelij | 220 | |
961 | savelij | 221 | ; ячейка CMOS 0xEB |
222 | BITMASK ACCESSZCSD, 7 ; разрешение доступа к ZC SD CARD |
||
223 | BITMASK ACCESSSDG, 6 ; разрешения доступа к SD карте NEOGS |
||
224 | BITMASK ACCESSHDDM, 5 ; разрешение доступа к HDD MASTER |
||
225 | BITMASK ACCESSHDDS, 4 ; разрешение доступа к HDD SLAVE |
||
226 | _REAL_DRIVE EQU %00001100 ; маска номера реального дисковода |
||
227 | _VIRT_DRIVE EQU %00000011 ; маска номера виртуального дисковода |
||
631 | savelij | 228 | |
961 | savelij | 229 | ; ячейка CMOS 0xE9 |
230 | BITMASK AUTOBOOT, 7 ; автостарт загружаемого устройства |
||
231 | BOOTDEVICE EQU %00000011 ; номер загружаемого устройства |
||
507 | savelij | 232 | |
961 | savelij | 233 | ; ячейка CMOS 0xE8 |
234 | BITMASK KILL_REZIDENT, 7 ; изменение резидента перед запуском |
||
838 | savelij | 235 | |
961 | savelij | 236 | ; номера загружаемых устройств |
1041 | savelij | 237 | INIT_VAR |
238 | SETVAR _FDD ; дисковод |
||
239 | SETVAR _HDD ; винчестер |
||
240 | SETVAR _SD ; SD карта |
||
702 | savelij | 241 | |
1041 | savelij | 242 | _SD_NONE EQU 0x80 ; признак не вставленной карты |
736 | savelij | 243 | |
961 | savelij | 244 | ; переменные для 0 окна проецирования |
1041 | savelij | 245 | DEBUG_ONOFF EQU 0x0013 ; вкл/выкл отладчика |
246 | ADR_SEL_ROM EQU 0x0014 ; адрес переключения страниц ROM |
||
247 | CONT_RST8 EQU 0x002C ; адрес продолжения обработки RST 8 |
||
248 | CONTINUE_MAGIC EQU 0x0034 ; адрес перехода продолжения обработчика MAGIC |
||
249 | ADR_PERFECT EQU 0x0036 ; адрес расположения PERFECT COMANDER |
||
250 | EI_RET EQU 0x003E ; адрес расположения EI:RET |
||
251 | UNP_DOS_FE EQU 0x0040 ; адрес распаковщика DOS FE |
||
252 | UNP_SONGLN EQU 0x0043 ; адрес распаковки SONGLINES |
||
253 | UNPACK EQU 0x0080 ; адрес распаковщика |
||
254 | _BIOS_JUMPS EQU 0x0100 ; адрес начала таблицы переходов в драйверы девайсов |
||
255 | ADRBRK_EMUTAP EQU 0x0569 ; адрес установки бряка для эмуляции загрузки TAP |
||
256 | START_STS EQU 0xC000 ; адрес входа в отладчик |
||
257 | ADR_RST8END EQU 0x3CE8 ; адрес возврата из RST 8 |
||
258 | ICALL2PAGE EQU 0x8000 ; адрес вызывов кода из другой страницы |
||
550 | savelij | 259 | |
1041 | savelij | 260 | INIT_VAR |
261 | SETVAR OFFSET_FNTSAVE, 0x800 ; смещение в странице для сохранения считанного шрифта |
||
262 | SETVAR OFFSET_BUFSYM, 0x800 ; смещение в странице текущего шрифта |
||
263 | SETVAR OFFSET_SCRSAVE, 0x1B00 ; смещение в странице для сохранения экрана |
||
264 | SETVAR OFFSET_USBDRV, 0 ; ??? смещение до начала USB драйвера |
||
585 | savelij | 265 | |
1041 | savelij | 266 | BUF_512 EQU CPU3-0x200 ; буфер сектора |
267 | BUF_TABLVOL EQU BUF_512-0x100 ; буфер таблицы найденных разделов |
||
268 | BUF_TEKVOL EQU BUF_TABLVOL-0x100 ; буфер выбранного раздела |
||
269 | BUF_TDIRCLS EQU BUF_TEKVOL-0x800 ; буфер кластеров текущей директории |
||
270 | BUF_256 EQU BUF_TDIRCLS-0x100 ; буфер 256 байт для переносов |
||
271 | BUF_PATH EQU BUF_256-0x100 ; буфер текущего пути |
||
272 | MOUNT_DRIVES EQU BUF_PATH-0x100 ; буфер описателей примонтированных файлов |
||
273 | BUF_LEVELDIR EQU MOUNT_DRIVES-0x100 ; буфер сохранения позиций окон при переходах по директориям |
||
274 | BUF_WINPATH EQU BUF_LEVELDIR-0x400 ; буфер сохранения позиций в окне при хождении по директориям |
||
553 | savelij | 275 | |
961 | savelij | 276 | ; переменные для менеджера устройств |
1041 | savelij | 277 | INIT_VAR BUF_TABLVOL + 0xE0 |
278 | SETVAR DEVICES, 0x10 ; список обнаруженных девайсов |
||
279 | SETVAR GO_DEV, WORD ; адрес вызова драйвера устройства |
||
280 | SETVAR KOLDVOL, BYTE ; количество найденных разделов |
||
281 | SETVAR SETDVOL, BYTE ; номер выбранного раздела |
||
282 | SETVAR ADRTEKV, WORD ; адрес описателя текущего раздела |
||
283 | SETVAR SAVE_TEK_VOL, BYTE ; временное сохранение текущего раздела |
||
284 | SETVAR TEK_TYPE, BYTE ; временное хранение типа текущего устройства |
||
285 | SETVAR FLAGS_DRV, BYTE ; флаговый байт драйверов |
||
961 | savelij | 286 | ;7 =0-драйвер SD карты NEOGS не установлен, =1-установлен |
623 | savelij | 287 | ;6 |
288 | ;5 |
||
289 | ;4 |
||
290 | ;3 |
||
291 | ;2 |
||
961 | savelij | 292 | ;1 =0-SD ZC карта не обнаружена, 1-обнаружена |
293 | ;0 =0-SD NeoGS не обнаружена, 1-обнаружена |
||
1041 | savelij | 294 | CRC_DRVS EQU BUF_TABLVOL + 0xFE ; контрольная сумма таблицы найденных разделов |
548 | savelij | 295 | |
961 | savelij | 296 | ; переменные для 1 окна проецирования |
297 | INIT_VAR |
||
1041 | savelij | 298 | SETVAR BUF_ALLVOL, 0x1000 ; буфер переменных для всех разделов (16 MAX) |
299 | SETVAR MOUNT_CLS, 0x1000 ; буфер кластеров примонтированных файлов |
||
300 | SETVAR TEK_BUFPATH, 0x1000 ; буфер текущих путей на разделах |
||
301 | SETVAR BUF_PATHMOUNT, 0x400 ; буфер путей для поиска примонтированных файлов |
||
302 | SETVAR BUF_DIRCEP, 0x100 ; буфер цепочки текущей директории |
||
303 | SETVAR BUF_TEMPSEC, 0x200 ; буфер сектора для загрузки образов |