Rev 1026 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
585 | savelij | 1 | |
1186 | savelij | 2 | ; LAST UPDATE: 14.02.2025 savelij |
585 | savelij | 3 | |
1026 | savelij | 4 | ; номера функций RST 8 |
1186 | savelij | 5 | INIT_VAR 0x40 |
780 | savelij | 6 | SETVAR _AY_PRN_INIT |
7 | SETVAR _AY_PRN_A_ |
||
8 | SETVAR _AY_PRN_TOKEN |
||
9 | SETVAR _AY_PRN_SCR |
||
10 | SETVAR _TAPE_INIT |
||
11 | SETVAR _TAPE_EMUL |
||
12 | SETVAR _WINW |
||
13 | SETVAR _PRINT_MESSAGE |
||
14 | SETVAR _PRINT_A |
||
15 | SETVAR _SCROLL_UP |
||
16 | SETVAR _SCROLL_DOWN |
||
17 | SETVAR _SET_MODE |
||
789 | savelij | 18 | SETVAR _MATH |
833 | savelij | 19 | SETVAR _VERSION |
1186 | savelij | 20 | SETVAR _FILE_BROWSER |
21 | SETVAR _NMI_FB_BLOCK |
||
22 | INIT_VAR 0x4F |
||
780 | savelij | 23 | SETVAR _BIOS |
24 | SETVAR _COM_DEV |
||
25 | SETVAR _COM_FAT |
||
26 | SETVAR _SORT_FINDFILES |
||
27 | SETVAR _MOUNTER |
||
28 | SETVAR _INST_FATBOOT |
||
29 | SETVAR _CMOS_RW |
||
30 | SETVAR _SETUP_PAL |
||
31 | SETVAR _SETUP_FONT |
||
32 | |||
1026 | savelij | 33 | ; функции изменения режимов работы |
34 | _ZXSCR_MODE EQU %00000001 ; ZX SCREEN |
||
35 | _TXTSCR_MODE EQU %00000010 ; TXT SCREEN |
||
36 | _TURBO_LOW EQU %00010000 ; TURBO 3,5 MHZ |
||
37 | _TURBO_HIGH EQU %00100000 ; TURBO 7,0 MHZ |
||
38 | _TURBO_MAX EQU %00110000 ; TURBO 14,0 MHZ |
||
39 | _MEM_MODE_48 EQU %01000000 ; MEMORY MODE 48 KB |
||
40 | _MEM_MODE_128 EQU %10000000 ; MEMORY MODE 128 KB |
||
41 | _MEM_MODE_PENT EQU %11000000 ; MEMORY MODE PENT 1024 KB |
||
585 | savelij | 42 | |
977 | savelij | 43 | ; биты ошибок |
44 | BITMASK INCORRECTFPGA, 7 ; прошивка FPGA zxevo_fw.bin не той системы |
||
45 | |||
1026 | savelij | 46 | ; функции деления, умножения, преобразования числа в текст |
789 | savelij | 47 | INIT_VAR |
48 | SETVAR _DIVIDE16 |
||
49 | SETVAR _MULTIPLY16 |
||
50 | SETVAR _DIVIDE32 |
||
51 | SETVAR _MULTIPLY32 |
||
52 | SETVAR _HEX4DECTXT |
||
53 | SETVAR _HEX2DECTXT |
||
54 | SETVAR _HEX1DECTXT |
||
55 | |||
1026 | savelij | 56 | ; функции работы с CMOS |
780 | savelij | 57 | INIT_VAR |
58 | SETVAR _INIT_CMOS |
||
59 | SETVAR _READ_CMOS |
||
60 | SETVAR _WRITE_CMOS |
||
61 | SETVAR _CLEAR_CMOS |
||
585 | savelij | 62 | |
1026 | savelij | 63 | ; функции монтировщика образов |
780 | savelij | 64 | INIT_VAR |
65 | SETVAR _OPEN_MOUNT ; монтирование образа |
||
66 | SETVAR _RDWR_MOUNT ; чтение/запись примонтированных образов |
||
67 | SETVAR _FIND_MOUNTED ; поиск монтируемых образов прописанных в IMAGE.FNT |
||
68 | SETVAR _GET_MOUNTED ; получение буфера описателей примонтированных образов |
||
69 | SETVAR _CLOSEMOUNT ; демонтирование образа |
||
70 | SETVAR _LOADIMAGE ; загрузка образа в рамдиск |
||
71 | SETVAR _REST_NAMELOAD ; получение описателя файла загруженного в рамдиск |
||
72 | SETVAR _CMP_DRIVE ; проверка примонтированного образа на указанной букве |
||
73 | SETVAR _GET_VIRT_BITS ; получение битов смонтированных дисков |
||
999 | savelij | 74 | SETVAR _SET_VIRTREAL ; переключение реального/виртуального дисковода |
75 | SETVAR _SET_REAL ; переключение реального дисковода |
||
76 | SETVAR _SET_VIRT ; переключение виртуального дисковода |
||
585 | savelij | 77 | |
1026 | savelij | 78 | ; номера функций менеджера устройств |
780 | savelij | 79 | INIT_VAR |
1026 | savelij | 80 | SETVAR _DEVFIND ; поиск устройств |
81 | SETVAR _SET_VOL ; выбор раздела |
||
82 | SETVAR _KOL_VOL ; запрос найденого |
||
83 | SETVAR _GET_FNDVOLUME ; получить таблицу найденных разделов |
||
84 | SETVAR _TO_DRV ; вызов драйвера выбранного устройства |
||
85 | SETVAR _SET_DEVICE ; установка битов устройства и LBA режима |
||
86 | SETVAR _CONTROL_SD ; контроль наличия SD карт |
||
87 | SETVAR _COMHDDN ; прямой вызов драйвера HDD NEMO (временная функция) |
||
88 | SETVAR _FREINIT_VOL ; полная переинициализация раздела |
||
89 | SETVAR _SET_SECTOR_NUM ; установка номера сектора для чтения/записи |
||
585 | savelij | 90 | |
1026 | savelij | 91 | ; номера функций вызова драйвера устройства |
780 | savelij | 92 | INIT_VAR |
1026 | savelij | 93 | SETVAR _DEV_INIT ; поиск и инициализация устройства |
94 | SETVAR _DEV_STATUS ; запрос статуса устройства. пока заглушена |
||
95 | SETVAR _DEV_READ ; чтение секторов |
||
96 | SETVAR _DEV_WRITE ; запись секторов |
||
97 | SETVAR _DEV_READID ; чтение ID сектора |
||
585 | savelij | 98 | |
1026 | savelij | 99 | ; номера вызываемых функций FAT драйвера |
780 | savelij | 100 | INIT_VAR |
1026 | savelij | 101 | SETVAR _INIT_FATVARS ; инициализация переменных FAT |
102 | SETVAR _READ_DIR ; получение описателя файла |
||
103 | SETVAR _ENTER_DIR ; вход/выход в дир |
||
104 | SETVAR _GET_PATH ; получение текущего пути |
||
105 | SETVAR _GET_LONGNAME ; получение длинного имени файла |
||
106 | SETVAR _FIND_NAME ; поиск по имени |
||
107 | SETVAR _FIND_FILEITEM ; поиск всех описателей с выдачей номеров найденного |
||
108 | SETVAR _SET_MASK_EXT ; установка маски расширений для поиска |
||
109 | SETVAR _OPEN_FILE ; открытие файла |
||
110 | SETVAR _READ_FILE ; последовательное чтение открытого файла |
||
111 | SETVAR _INIT_TEKDIR ; создание таблицы кластеров текущей директории |
||
112 | SETVAR _POS_FILES ; работа с текущей позицией |
||
113 | SETVAR _ROOT_DIR ; переход в корень текущего диска |
||
631 | savelij | 114 | |
1026 | savelij | 115 | ; подфункции функции _POS_FILES |
780 | savelij | 116 | INIT_VAR |
1026 | savelij | 117 | SETVAR _POSTF00 ; сохранение текущей позиции файла |
118 | SETVAR _POSTF01 ; восстановление текущей позиции файла |
||
119 | SETVAR _POSTF02 ; сброс текущей позиции в 0 и поиск первой "легальной" записи |
||
120 | SETVAR _POSTF03 ; перемотать на "B" файлов назад |
||
121 | SETVAR _POSTF04 ; перемотать на "B" файлов вперед |
||
122 | SETVAR _POSTF05 ; подсчет количества "легальных" записей |
||
123 | SETVAR _POSTF06 ; установить номер "легальной" записи из "BC" |
||
124 | SETVAR _POSTF07 ; вернуть в "BC" текущий номер "легальной" записи |
||
646 | savelij | 125 | |
1186 | savelij | 126 | ; подфункции FILE_BROWSER |
127 | FB |
||
128 | _INIT_VAR |
||
129 | _SETVAR .SELECT_FILE ; вывод окна для выбора файла |
||
130 | _SETVAR .GET_HABDLE ; получить описатель выбранного файла |
||
131 | _SETVAR .GET_FILETYPE ; получить тип выбранного файла |
||
132 | _SETVAR .SET_FILE_EXT ; установка расширений файлов |
||
133 | |||
1026 | savelij | 134 | ; номера поддерживаемых расширений для RST 8 |
135 | ; "TRDSCLFDITAPSPG$C FNTBMPROM" ;RST 8 |
||
136 | ; "TRDSCLFDITAPSPG$C BMPSNA" ;MAINMENU |
||
780 | savelij | 137 | INIT_VAR 1 |
821 | savelij | 138 | SETVAR _TRD ;TRD |
139 | SETVAR _SCL ;SCL |
||
140 | SETVAR _FDI ;FDI |
||
141 | SETVAR _TAP ;TAP |
||
142 | SETVAR _SPG ;SPG |
||
143 | SETVAR _HOB ;$C |
||
144 | SETVAR _FNT ;FNT |
||
145 | SETVAR _BMP ;BMP |
||
146 | SETVAR _ROM ;ROM |
||
888 | savelij | 147 | SETVAR _HOB1 ;$?? |
148 | SETVAR _HOB2 ;!?? |
||
670 | savelij | 149 | |
1026 | savelij | 150 | ; внутренние номера типов разделов |
780 | savelij | 151 | INIT_VAR |
152 | SETVAR _NO_INIT |
||
1026 | savelij | 153 | SETVAR _FAT12 ; 00 = 01 FAT12 |
154 | SETVAR _FAT16 ; 01 = 04,06,0E FAT16 |
||
155 | SETVAR _FAT32 ; 02 = 0B,0C FAT32 |
||
156 | SETVAR _TRDOS ; 03 TR-DOS диск |
||
780 | savelij | 157 | SETVAR _UNKNOWN ; файловая система еще не определена или неизвестна |
678 | savelij | 158 | |
1186 | savelij | 159 | ; описатели для рисования окна |
780 | savelij | 160 | INIT_VAR |
161 | SETVAR _X_COORD |
||
162 | SETVAR _Y_COORD |
||
163 | SETVAR _V_SIZE |
||
164 | SETVAR _H_SIZE |
||
165 | SETVAR _COLOR_WIN |
||
166 | SETVAR _COLOR_CUR |
||
167 | SETVAR _FLAGS |
||
168 | SETVAR _NUM_PKT |
||
169 | SETVAR _TEK_PKT_L |
||
170 | SETVAR _TEK_PKT_H |
||
171 | SETVAR _NUM_KOL_L |
||
172 | SETVAR _NUM_KOL_H |
||
173 | SETVAR _ADR_TXT_L |
||
174 | SETVAR _ADR_TXT_H |
||
175 | SETVAR _ADR_PRG_L |
||
176 | SETVAR _ADR_PRG_H |
||
177 | SETVAR _ADR_MOUSE_L |
||
178 | SETVAR _ADR_MOUSE_H |
||
179 | SETVAR _ADR_HOTKEY_L |
||
180 | SETVAR _ADR_HOTKEY_H |
||
687 | savelij | 181 | |
1186 | savelij | 182 | BITMASK DOWN_HEADER, 7 ; 1-есть нижний заголовок |
183 | BITMASK WINFRAME, 6 ; 0-рамка окна есть |
||
184 | BITMASK UPHEADER, 5 ; 1-есть верхний заголовок |
||
185 | BITMASK TEXT, 4 ; 0-есть текст для окна |
||
186 | BITMASK MENU_FILE, 3 ; 1-файлы, 0-меню |
||
187 | ; в байте текущего номера пункта _NUM_PKT |
||
188 | ; BIT 7-0 => 8-9 текущий пункт, |
||
189 | ; 1 => 8-9 адрес хранения |
||
190 | ; 6-0 => A-B количество пунктов |
||
191 | ; 1 => A-B адрес хранения |
||
192 | BITMASK ADR_PUNKT, 7 |
||
193 | BITMASK ADR_NUMS_PUNKT, 6 |
||
194 | |||
780 | savelij | 195 | JUMP_SIZE EQU 3 |
196 | |||
1186 | savelij | 197 | INIT_VAR 0x100 |
1026 | savelij | 198 | SETVAR _NEMO_RD_ID,JUMP_SIZE ; чтение сектора идентификации HDD с определением его наличия |
199 | SETVAR _NEMO_RD_SEC,JUMP_SIZE ; чтение секторов HDD |
||
200 | SETVAR _NEMO_WR_SEC,JUMP_SIZE ; запись секторов HDD |
||
780 | savelij | 201 | |
1026 | savelij | 202 | SETVAR _ZCSD_RD_ID,JUMP_SIZE ; чтение сектора идентификации набортной SD карты |
203 | SETVAR _ZCSD_RD_SEC,JUMP_SIZE ; чтение секторов набортной SD карты |
||
204 | SETVAR _ZCSD_WR_SEC,JUMP_SIZE ; запись секторов набортной SD карты |
||
780 | savelij | 205 | |
1026 | savelij | 206 | SETVAR _NGSSD_RD_ID,JUMP_SIZE ; чтение сектора идентификации SD карты NeoGS |
207 | SETVAR _NGSSD_RD_SEC,JUMP_SIZE ; чтение секторов SD карты NeoGS |
||
208 | SETVAR _NGSSD_WR_SEC,JUMP_SIZE ; запись секторов SD карты NeoGS |
||
780 | savelij | 209 | |
1026 | savelij | 210 | SETVAR _INIT_KEYB_PS2,JUMP_SIZE ; включение доступа к PS/2 клавиатуре |
211 | SETVAR _READ_KEYB_PS2,JUMP_SIZE ; считывание и декодирование сканкодов PS/2 |
||
212 | SETVAR _READ_STAT_PS2,JUMP_SIZE ; чтение статуса и декодированных клавиш PS/2 |
||
780 | savelij | 213 | |
1026 | savelij | 214 | SETVAR _INIT_TABLE_MEM,JUMP_SIZE ; получение таблицы занятых/свободных страниц памяти |
215 | SETVAR _GET_TABLE_MEM,JUMP_SIZE ; сброс всех занятых страницы памяти |
||
216 | SETVAR _ALLOC_PAGE,JUMP_SIZE ; получение номера свободной страницы памяти |
||
217 | SETVAR _FREE_PAGE,JUMP_SIZE ; освобождение по номеру страницы памяти |