Rev 1120 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1120 | Rev 1186 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | 1 | ||
| 2 | ; LAST UPDATE: 14.10.2023 savelij |
2 | ; LAST UPDATE: 16.02.2025 savelij |
| 3 | 3 | ||
| 4 | ; последовательность для RST 8 |
4 | ; последовательность для RST 8 |
| 5 | ; старый стек HL AF BC RF ADR_RET DE -> |
5 | ; старый стек HL AF BC RF ADR_RET DE -> |
| 6 | ; -> новый стек HL(номер паги и порт BF) DE(RAMNROM И DOS7FFD) BC' DE' HL' IX IY AF' -> |
6 | ; -> новый стек HL(номер паги и порт BF) DE(RAMNROM И DOS7FFD) BC' DE' HL' IX IY AF' -> |
| 7 | ; -> чтение конфига |
7 | ; -> чтение конфига |
| Line 14... | Line 14... | ||
| 14 | 14 | ||
| 15 | JP CALL2PAGE ; вызов кода в другой странице ROM |
15 | JP CALL2PAGE ; вызов кода в другой странице ROM |
| 16 | 16 | ||
| 17 | JP CALL2RAMPAGE ; вызов кода в другой странице RAM |
17 | JP CALL2RAMPAGE ; вызов кода в другой странице RAM |
| 18 | 18 | ||
| 19 | DUPL ADR_SEL_ROM-$,0 |
19 | DB ADR_SEL_ROM-$ DUP 0 |
| 20 | OUT (C),A ; переключение страниц для переходов |
20 | OUT (C),A ; переключение страниц для переходов |
| 21 | NOP |
21 | NOP |
| 22 | FOR_RET NOP |
22 | FOR_RET NOP |
| 23 | JP RAMSEL1 |
23 | JP RAMSEL1 |
| 24 | 24 | ||
| 25 | OUT_NMI OUT (0xBE),A |
25 | OUT_NMI OUT (0xBE),A |
| 26 | RETN |
26 | RETN |
| 27 | 27 | ||
| 28 | DUPL 0x0038-$,0xFF |
28 | DB 0x0038-$ DUP 0xFF |
| 29 | IM_EI_RET EI |
29 | IM_EI_RET EI |
| 30 | RET |
30 | RET |
| 31 | 31 | ||
| 32 | VIRT_BITS DB 0 ; биты 7-4 примонтированные диски, |
32 | VIRT_BITS DB 0 ; биты 7-4 примонтированные диски, |
| 33 | ; биты 3-2 номер реального диска |
33 | ; биты 3-2 номер реального диска |
| 34 | ; биты 1-0 номер виртуального диска |
34 | ; биты 1-0 номер виртуального диска |
| 35 | 35 | ||
| 36 | DUPL 0x0066-$,0xFF |
36 | DB 0x0066-$ DUP 0xFF |
| 37 | NOP |
37 | NOP |
| 38 | NOP |
38 | NOP |
| 39 | ADR_MAGIC JP NMI_SERVICE |
39 | ADR_MAGIC JP NMI_SERVICE |
| 40 | ADR_NMI_JUMP EQU $-2 |
40 | ADR_NMI_JUMP EQU $-2 |
| 41 | 41 | ||
| 42 | PHASE $+CPU6 |
42 | PHASE $+CPU2 |
| 43 | ; считанная конфигурация портов для RST 8 |
43 | ; считанная конфигурация портов для RST 8 |
| 44 | R_BF DB 0xFF |
44 | R_BF DB 0xFF |
| 45 | R_77 DB 0xFF |
45 | R_77 DB 0xFF |
| 46 | R_EFF7 DB 0xFF |
46 | R_EFF7 DB 0xFF |
| 47 | R_7FFD DB 0xFF |
47 | R_7FFD DB 0xFF |
| Line 69... | Line 69... | ||
| 69 | N_1WINA0 DB 0xFF |
69 | N_1WINA0 DB 0xFF |
| 70 | N_0WINA3 DB 0xFF |
70 | N_0WINA3 DB 0xFF |
| 71 | N_0WINA2 DB 0xFF |
71 | N_0WINA2 DB 0xFF |
| 72 | N_0WINA1 DB 0xFF |
72 | N_0WINA1 DB 0xFF |
| 73 | N_0WINA0 DB 0xFF |
73 | N_0WINA0 DB 0xFF |
| 74 | N_TEK_PALS DUPL 0x10,0xFF |
74 | N_TEK_PALS DB 0x10 DUP 0xFF |
| 75 | 75 | ||
| 76 | ; сохраненные регистры при вызове RST 8 |
76 | ; сохраненные регистры при вызове RST 8 |
| 77 | RREG_FI DB 0xFF |
77 | RREG_FI DB 0xFF |
| 78 | RREG_I DB 0xFF ; IF |
78 | RREG_I DB 0xFF ; IF |
| 79 | RREG_FF DB 0xFF |
79 | RREG_FF DB 0xFF |
| Line 157... | Line 157... | ||
| 157 | P1_CPU3 DB 0xFF ; старший байт адреса порта порта для 3 окна 0 мапера |
157 | P1_CPU3 DB 0xFF ; старший байт адреса порта порта для 3 окна 0 мапера |
| 158 | B_PORT77 DB 0xFF ; байт для вывода в порт ХХ77 |
158 | B_PORT77 DB 0xFF ; байт для вывода в порт ХХ77 |
| 159 | P_PORT77 DB 0xFF ; старший байт адреса порта ХХ77 |
159 | P_PORT77 DB 0xFF ; старший байт адреса порта ХХ77 |
| 160 | B_PORT_VIRT DB 0xFF ; текущее состояние порта виртульных дисководов |
160 | B_PORT_VIRT DB 0xFF ; текущее состояние порта виртульных дисководов |
| 161 | 161 | ||
| 162 | F_INTEXT_DRV DB 0xFF ; флаги при внешних/внутренних вызовах драйверов |
- | |
| 163 | TMP_NUMHDD DB 0xFF |
- | |
| 164 | TMP_ADR_0068 DD 0xFFFFFFFF ; сохранение под перехватчиком NMI |
- | |
| 165 | NUMSEC_LBA48 DQ 0xFFFFFFFFFFFFFFFF ; номер сектора для чтения/записи |
- | |
| 166 | VARS_TXT_DEC DB "281474976710655\0" ; число до 48 бит |
- | |
| 167 | - | ||
| 168 | PHASE $ & 0x3FFF |
162 | PHASE $ & 0x3FFF |
| 169 | DUPL HIGH ($) * 0x100 + 0xFF - $,0xFF |
163 | DB HIGH ($) * 0x100 + 0xFF - $ DUP 0xFF |
| 170 | DW IM_EI_RET |
164 | DW IM_EI_RET |
| 171 | 165 | ||
| 172 | DUPL HIGH ($) * 0x100 + 0x80 - $,0xFF |
166 | DB HIGH ($) * 0x100 + 0x80 - $ DUP 0xFF |
| 173 | STACK_RST |
167 | STACK_RST |
| 174 | 168 | ||
| 175 | DUPL (HIGH ($) + 1) * 0x100 - $,0xFF |
169 | DB (HIGH ($) + 1) * 0x100 - $ DUP 0xFF |
| 176 | STACK_NMI |
170 | STACK_NMI |
| 177 | 171 | ||
| 178 | JP NMI_EXIT_DBG |
172 | JP NMI_EXIT_DBG |
| 179 | 173 | ||
| 180 | ; вход по RST 8 |
174 | ; вход по RST 8 |
| 181 | RAMSEL1 |
- | |
| 182 | LD (RST8_SAVE_SP-CPU6),SP ; сохранили старый стек |
175 | RAMSEL1 LD (RST8_SAVE_SP-CPU2),SP ; сохранили старый стек |
| 183 | LD SP,RREG_E-CPU6 |
176 | LD SP,RREG_E-CPU2 |
| 184 | PUSH HL ; номер страницы откуда пришли и содержимое порта BF |
177 | PUSH HL ; номер страницы откуда пришли и содержимое порта BF |
| 185 | PUSH DE ; биты RAMNROM+DOS7FFD |
178 | PUSH DE ; биты RAMNROM+DOS7FFD |
| 186 | EXX |
179 | EXX |
| 187 | PUSH BC ; BC' |
180 | PUSH BC ; BC' |
| 188 | PUSH DE ; DE' |
181 | PUSH DE ; DE' |
| Line 198... | Line 191... | ||
| 198 | LD HL,ADR_MAGIC |
191 | LD HL,ADR_MAGIC |
| 199 | LD DE,TMP_ADR_0068 - CPU2 |
192 | LD DE,TMP_ADR_0068 - CPU2 |
| 200 | LDI |
193 | LDI |
| 201 | LDI |
194 | LDI |
| 202 | LDI |
195 | LDI |
| 203 | - | ||
| 204 | LD A,0xC9 |
196 | LD A,0xC9 |
| 205 | LD (FOR_RET),A |
197 | LD (FOR_RET),A |
| 206 | XOR A |
198 | XOR A |
| 207 | LD I,A |
199 | LD I,A |
| 208 | LD HL,(RST8_SAVE_SP-CPU6) |
200 | LD HL,(RST8_SAVE_SP-CPU2) |
| 209 | LD DE,RREG_E-CPU6 |
201 | LD DE,RREG_E-CPU2 |
| 210 | LD BC,RREG_H-RPAGE_CALL |
202 | LD BC,RREG_H-RPAGE_CALL |
| 211 | LDIR |
203 | LDIR |
| 212 | LD HL,R_77-CPU6 |
204 | LD HL,R_77-CPU2 |
| 213 | LD BC,RD_77 |
205 | LD BC,RD_77 |
| 214 | INIR |
206 | INIR |
| 215 | INI |
207 | INI |
| 216 | LD BC,FDD_EMU_PORT |
208 | LD BC,FDD_EMU_PORT |
| 217 | IN A,(C) |
209 | IN A,(C) |
| 218 | LD (B_PORT_VIRT & 0x3FFF),A |
210 | LD (B_PORT_VIRT & 0x3FFF),A |
| 219 | XOR A |
211 | XOR A |
| 220 | OUT (C),A |
212 | OUT (C),A |
| 221 | LD HL,(RDOS7FFD-CPU6) |
213 | LD HL,(RDOS7FFD-CPU2) |
| 222 | LD (R_DOS7FFD-CPU6),HL |
214 | LD (R_DOS7FFD-CPU2),HL |
| 223 | LD SP,STACK_RST |
215 | LD SP,STACK_RST |
| 224 | LD A,(R_77-CPU6) |
216 | LD A,(R_77-CPU2) |
| 225 | AND 7 |
217 | AND 7 |
| 226 | OR 0xA0 ; выключение турбо 14 мгц |
218 | OR 0xA0 ; выключение турбо 14 мгц |
| 227 | LD BC,0xFF77 |
219 | LD BC,0xFF77 |
| 228 | OUT (C),A |
220 | OUT (C),A |
| 229 | PEC_OFF M_SHADOW_BF |
221 | PEC_OFF M_SHADOW_BF |
| 230 | LD BC,PENT_CONF |
222 | LD BC,PENT_CONF |
| 231 | LD A,(R_EFF7-CPU6) |
223 | LD A,(R_EFF7-CPU2) |
| 232 | AND %11101111 |
224 | AND %11101111 |
| 233 | OUT (C),A ; включение турбо 7 мгц |
225 | OUT (C),A ; включение турбо 7 мгц |
| 234 | PEC_ON M_SHADOW_BF |
226 | PEC_ON M_SHADOW_BF |
| 235 | LD A,(R_7FFD-CPU6) |
227 | LD A,(R_7FFD-CPU2) |
| 236 | AND 0x10 |
228 | AND 0x10 |
| 237 | LD HL,R_0WINA0-CPU6 |
229 | LD HL,R_0WINA0-CPU2 |
| 238 | JR Z,RAMSEL3 |
230 | JR Z,RAMSEL3 |
| 239 | LD HL,R_1WINA0-CPU6 |
231 | LD HL,R_1WINA0-CPU2 |
| 240 | RAMSEL3 LD A,(RPAGE_CALL-CPU6) |
232 | RAMSEL3 LD A,(RPAGE_CALL-CPU2) |
| 241 | LD (HL),A |
233 | LD (HL),A |
| 242 | ATMPORT WIN_A3,0x40 |
234 | ATMPORT WIN_A3,0x40 |
| 243 | LD BC,WIN_P6 |
235 | LD BC,WIN_P2 |
| 244 | XOR A |
236 | XOR A |
| 245 | OUT (C),A |
237 | OUT (C),A |
| 246 | LD BC,WIN_A0 |
238 | LD BC,WIN_A0 |
| 247 | LD A,ROM_RST83 |
239 | LD A,ROM_RST83 |
| 248 | LD HL,CPU6 |
240 | LD HL,CPU2 |
| 249 | ADD HL,SP |
241 | ADD HL,SP |
| 250 | LD SP,HL |
242 | LD SP,HL |
| 251 | LD HL,CONT_RST8 ; адрес продолжения обработки RST 8 |
243 | LD HL,CONT_RST8 ; адрес продолжения обработки RST 8 |
| 252 | PUSH HL |
244 | PUSH HL |
| 253 | JP ADR_SEL_ROM |
245 | JP ADR_SEL_ROM |
| Line 258... | Line 250... | ||
| 258 | LD HL,TMP_ADR_0068 - CPU2 |
250 | LD HL,TMP_ADR_0068 - CPU2 |
| 259 | LD DE,ADR_MAGIC |
251 | LD DE,ADR_MAGIC |
| 260 | LDI |
252 | LDI |
| 261 | LDI |
253 | LDI |
| 262 | LDI |
254 | LDI |
| 263 | - | ||
| 264 | XOR A |
255 | XOR A |
| 265 | LD (FOR_RET),A |
256 | LD (FOR_RET),A |
| 266 | PEC_OFF M_SHADOW_BF |
257 | PEC_OFF M_SHADOW_BF |
| 267 | LD BC,PENT_CONF |
258 | LD BC,PENT_CONF |
| 268 | LD A,(R_EFF7-CPU6) |
259 | LD A,(R_EFF7-CPU2) |
| 269 | OUT (C),A |
260 | OUT (C),A |
| 270 | PEC_ON M_SHADOW_BF |
261 | PEC_ON M_SHADOW_BF |
| 271 | LD C,LOW (WIN_A5) |
262 | LD C,LOW (WIN_A1) |
| 272 | LD A,(R_7FFD-CPU6) |
263 | LD A,(R_7FFD-CPU2) |
| 273 | AND 0x10 |
264 | AND 0x10 |
| 274 | LD HL,B0_CPU1-CPU2 |
265 | LD HL,B0_CPU1-CPU2 |
| 275 | JR Z,.L11 |
266 | JR Z,.L11 |
| 276 | LD HL,B1_CPU1-CPU2 |
267 | LD HL,B1_CPU1-CPU2 |
| 277 | .L11 LD A,3 |
268 | .L11 LD A,3 |
| Line 290... | Line 281... | ||
| 290 | IFDEF DOS_FE |
281 | IFDEF DOS_FE |
| 291 | LD BC,FDD_EMU_PORT |
282 | LD BC,FDD_EMU_PORT |
| 292 | LD A,(B_PORT_VIRT & 0x3FFF) |
283 | LD A,(B_PORT_VIRT & 0x3FFF) |
| 293 | OUT (C),A |
284 | OUT (C),A |
| 294 | ENDIF |
285 | ENDIF |
| 295 | LD HL,RST8_SAVE_SP-(RREG_H-RPAGE_CALL)-CPU6 |
286 | LD HL,RST8_SAVE_SP-(RREG_H-RPAGE_CALL)-CPU2 |
| 296 | LD DE,(RST8_SAVE_SP-CPU6) |
287 | LD DE,(RST8_SAVE_SP-CPU2) |
| 297 | LD BC,RREG_H-RPAGE_CALL |
288 | LD BC,RREG_H-RPAGE_CALL |
| 298 | LDIR |
289 | LDIR |
| 299 | LD BC,(B_PORT77-CPU6) |
290 | LD BC,(B_PORT77-CPU2) |
| 300 | LD A,C |
291 | LD A,C |
| 301 | LD C,0x77 |
292 | LD C,0x77 |
| 302 | OUT (C),A |
293 | OUT (C),A |
| 303 | LD SP,RREG_FI-CPU6 |
294 | LD SP,RREG_FI-CPU2 |
| 304 | POP AF |
295 | POP AF |
| 305 | LD I,A |
296 | LD I,A |
| 306 | POP AF |
297 | POP AF |
| 307 | EX AF,AF' |
298 | EX AF,AF' |
| 308 | POP IY |
299 | POP IY |
| Line 311... | Line 302... | ||
| 311 | POP DE |
302 | POP DE |
| 312 | POP BC |
303 | POP BC |
| 313 | EXX |
304 | EXX |
| 314 | POP DE |
305 | POP DE |
| 315 | POP HL |
306 | POP HL |
| 316 | LD SP,(RST8_SAVE_SP-CPU6) ; восстановили стек вызвашей программы |
307 | LD SP,(RST8_SAVE_SP-CPU2) ; восстановили стек вызвашей программы |
| 317 | LD BC,ADR_RST8END ; адрес возврата |
308 | LD BC,ADR_RST8END ; адрес возврата |
| 318 | PUSH BC |
309 | PUSH BC |
| 319 | LD C,LOW (WIN_A0) |
310 | LD C,LOW (WIN_A0) |
| 320 | LD A,(R_7FFD-CPU6) |
311 | LD A,(R_7FFD-CPU2) |
| 321 | AND 0x10 |
312 | AND 0x10 |
| 322 | LD DE,(B0_CPU0-CPU6) |
313 | LD DE,(B0_CPU0-CPU2) |
| 323 | JR Z,.L13 |
314 | JR Z,.L13 |
| 324 | LD DE,(B1_CPU0-CPU6) |
315 | LD DE,(B1_CPU0-CPU2) |
| 325 | .L13 LD A,D |
316 | .L13 LD A,D |
| 326 | OR 7 |
317 | OR 7 |
| 327 | LD B,A |
318 | LD B,A |
| 328 | LD A,E ; страница ROM куда возвращаться |
319 | LD A,E ; страница ROM куда возвращаться |
| 329 | JP ADR_SEL_ROM |
320 | JP ADR_SEL_ROM |
| 330 | 321 | ||
| 331 | ; вход по NMI |
322 | ; вход по NMI |
| 332 | NMI_SERVICE LD (NMI_SAVE_SP-CPU6),SP ; сохранение стека |
323 | NMI_SERVICE LD (NMI_SAVE_SP-CPU2),SP ; сохранение стека |
| 333 | LD SP,NMI_SAVE_SP-CPU6 ; новый стек |
324 | LD SP,NMI_SAVE_SP-CPU2 ; новый стек |
| 334 | PUSH HL ; сохранили HL |
325 | PUSH HL ; сохранили HL |
| 335 | PUSH AF ; сохранили AF |
326 | PUSH AF ; сохранили AF |
| 336 | LD A,I |
327 | LD A,I |
| 337 | PUSH AF ; сохранили I, флаги и режим прерываний |
328 | PUSH AF ; сохранили I, флаги и режим прерываний |
| 338 | LD A,R |
329 | LD A,R |
| Line 346... | Line 337... | ||
| 346 | PUSH IX ; сохранили IX |
337 | PUSH IX ; сохранили IX |
| 347 | PUSH IY ; сохранили IY |
338 | PUSH IY ; сохранили IY |
| 348 | EX AF,AF' |
339 | EX AF,AF' |
| 349 | PUSH AF ; сохранили альт AF |
340 | PUSH AF ; сохранили альт AF |
| 350 | LD A,0x80-REG_R_CORRECT |
341 | LD A,0x80-REG_R_CORRECT |
| 351 | LD HL,NREG_R-CPU6 |
342 | LD HL,NREG_R-CPU2 |
| 352 | SLA (HL) |
343 | SLA (HL) |
| 353 | RLA |
344 | RLA |
| 354 | ADD A,(HL) |
345 | ADD A,(HL) |
| 355 | RRCA |
346 | RRCA |
| 356 | LD (HL),A ; коррекция регистра R |
347 | LD (HL),A ; коррекция регистра R |
| Line 358... | Line 349... | ||
| 358 | LD HL,ADR_MAGIC |
349 | LD HL,ADR_MAGIC |
| 359 | LD DE,TMP_ADR_0068 - CPU2 |
350 | LD DE,TMP_ADR_0068 - CPU2 |
| 360 | LDI |
351 | LDI |
| 361 | LDI |
352 | LDI |
| 362 | LDI |
353 | LDI |
| 363 | - | ||
| 364 | LD HL,(NMI_SAVE_SP-CPU6) |
354 | LD HL,(NMI_SAVE_SP-CPU2) |
| 365 | LD E,(HL) |
355 | LD E,(HL) |
| 366 | INC HL |
356 | INC HL |
| 367 | LD D,(HL) |
357 | LD D,(HL) |
| 368 | LD HL,(NREG_F-CPU6) |
358 | LD HL,(NREG_F-CPU2) |
| 369 | AND A |
359 | AND A |
| 370 | SBC HL,DE |
360 | SBC HL,DE |
| 371 | JR NZ,.L005 |
361 | JR NZ,.L005 |
| 372 | LD HL,(NMI_SAVE_SP-CPU6) |
362 | LD HL,(NMI_SAVE_SP-CPU2) |
| 373 | INC HL |
363 | INC HL |
| 374 | INC HL |
364 | INC HL |
| 375 | LD (NMI_SAVE_SP-CPU6),HL |
365 | LD (NMI_SAVE_SP-CPU2),HL |
| 376 | LD E,(HL) |
366 | LD E,(HL) |
| 377 | INC HL |
367 | INC HL |
| 378 | LD D,(HL) |
368 | LD D,(HL) |
| 379 | .L005 PUSH DE |
369 | .L005 PUSH DE |
| 380 | LD SP,STACK_NMI |
370 | LD SP,STACK_NMI |
| 381 | LD HL,OUT_NMI |
371 | LD HL,OUT_NMI |
| 382 | LD (ADR_NMI_JUMP),HL |
372 | LD (ADR_NMI_JUMP),HL |
| 383 | LD A,0xC9 |
373 | LD A,0xC9 |
| 384 | LD (FOR_RET),A ; RET для переключения страниц ROM/RAM |
374 | LD (FOR_RET),A ; RET для переключения страниц ROM/RAM |
| 385 | LD HL,N_BF-CPU6 ; адрес сохранения прочитанных регистров конфигурации |
375 | LD HL,N_BF-CPU2 ; адрес сохранения прочитанных регистров конфигурации |
| 386 | IN A,(PEVO_CONF) |
376 | IN A,(PEVO_CONF) |
| 387 | LD (HL),A |
377 | LD (HL),A |
| 388 | INC HL |
378 | INC HL |
| 389 | LD BC,RD_77 |
379 | LD BC,RD_77 |
| 390 | INIR |
380 | INIR |
| Line 412... | Line 402... | ||
| 412 | LD A,(N_77-CPU2) |
402 | LD A,(N_77-CPU2) |
| 413 | AND %11110111 |
403 | AND %11110111 |
| 414 | LD BC,0xFF77 |
404 | LD BC,0xFF77 |
| 415 | OUT (C),A ; установка 7.0Mhz для NMI сервиса |
405 | OUT (C),A ; установка 7.0Mhz для NMI сервиса |
| 416 | PUSH DE |
406 | PUSH DE |
| 417 | LD BC,WIN_P6 |
407 | LD BC,WIN_P2 |
| 418 | XOR A |
408 | XOR A |
| 419 | OUT (C),A ; включили последнюю страницу озу |
409 | OUT (C),A ; включили последнюю страницу озу |
| 420 | LD B,HIGH (WIN_A3) |
410 | LD B,HIGH (WIN_A3) |
| 421 | LD A,0x40 |
411 | LD A,0x40 |
| 422 | OUT (C),A ; сняли зависимость 3 окна от порта 7FFD |
412 | OUT (C),A ; сняли зависимость 3 окна от порта 7FFD |
| 423 | LD DE,CPU6 |
413 | LD DE,CPU2 |
| 424 | ADD HL,DE |
414 | ADD HL,DE |
| 425 | LD (ADR_PALITRA),HL |
415 | LD (ADR_PALITRA),HL |
| 426 | LD HL,CPU6 |
416 | LD HL,CPU2 |
| 427 | ADD HL,SP |
417 | ADD HL,SP |
| 428 | LD SP,HL |
418 | LD SP,HL |
| 429 | LD B,HIGH (WIN_A0) |
419 | LD B,HIGH (WIN_A0) |
| 430 | LD A,ROM_RST83 |
420 | LD A,ROM_RST83 |
| 431 | OUT (C),A |
421 | OUT (C),A |
| 432 | POP HL |
422 | POP HL |
| 433 | LD (NUM_IM),HL |
423 | LD (NUM_IM),HL |
| 434 | PEREHVAT DUPL 3,0 |
424 | PEREHVAT DB 3 DUP 0 |
| 435 | LD A,(DEBUG_ONOFF) |
425 | LD A,(DEBUG_ONOFF) |
| 436 | AND A |
426 | AND A |
| 437 | JR NZ,IN_DEBUG |
427 | JR NZ,IN_DEBUG |
| 438 | LD HL,CONTINUE_MAGIC |
428 | LD HL,CONTINUE_MAGIC |
| 439 | PUSH HL |
429 | PUSH HL |
| Line 442... | Line 432... | ||
| 442 | IN_DEBUG XOR A |
432 | IN_DEBUG XOR A |
| 443 | IN A,(0xFE) |
433 | IN A,(0xFE) |
| 444 | CPL |
434 | CPL |
| 445 | AND 0x1F |
435 | AND 0x1F |
| 446 | JR NZ,IN_DEBUG |
436 | JR NZ,IN_DEBUG |
| 447 | LD HL,DEBUGGER |
437 | LD HL,NMI_DEBUG |
| 448 | PUSH HL |
438 | PUSH HL |
| 449 | JP OUT_NMI |
439 | JP OUT_NMI |
| 450 | 440 | ||
| 451 | ; выход из NMI |
441 | ; выход из NMI |
| 452 | EXITNMISERVICE LD HL,ADR_MAGIC |
442 | EXITNMISERVICE LD HL,ADR_MAGIC |
| Line 461... | Line 451... | ||
| 461 | LD HL,TMP_ADR_0068 - CPU2 |
451 | LD HL,TMP_ADR_0068 - CPU2 |
| 462 | LD DE,ADR_MAGIC |
452 | LD DE,ADR_MAGIC |
| 463 | LDI |
453 | LDI |
| 464 | LDI |
454 | LDI |
| 465 | LDI |
455 | LDI |
| 466 | - | ||
| 467 | LD C,LOW (WIN_A0) |
456 | LD C,LOW (WIN_A0) |
| 468 | LD A,(N_7FFD-CPU6) |
457 | LD A,(N_7FFD-CPU2) |
| 469 | AND 0x10 |
458 | AND 0x10 |
| 470 | LD HL,B0_CPU0-CPU6 |
459 | LD HL,B0_CPU0-CPU2 |
| 471 | JR Z,.L11 |
460 | JR Z,.L11 |
| 472 | LD HL,B1_CPU0-CPU6 |
461 | LD HL,B1_CPU0-CPU2 |
| 473 | .L11 LD A,4 |
462 | .L11 LD A,4 |
| 474 | .L12 EX AF,AF' |
463 | .L12 EX AF,AF' |
| 475 | LD E,(HL) ; байт для записи в порт |
464 | LD E,(HL) ; байт для записи в порт |
| 476 | INC HL |
465 | INC HL |
| 477 | LD D,(HL) ; старший байт адреса порта |
466 | LD D,(HL) ; старший байт адреса порта |
| Line 496... | Line 485... | ||
| 496 | LD A,(B_PORT_VIRT & 0x3FFF) |
485 | LD A,(B_PORT_VIRT & 0x3FFF) |
| 497 | OUT (C),A |
486 | OUT (C),A |
| 498 | ENDIF |
487 | ENDIF |
| 499 | PEC_OFF M_SHADOW_BF |
488 | PEC_OFF M_SHADOW_BF |
| 500 | LD BC,PENT_CONF |
489 | LD BC,PENT_CONF |
| 501 | LD A,(N_EFF7-CPU6) |
490 | LD A,(N_EFF7-CPU2) |
| 502 | OUT (C),A |
491 | OUT (C),A |
| 503 | PEC_ON M_SHADOW_BF |
492 | PEC_ON M_SHADOW_BF |
| 504 | LD BC,(B_PORT77-CPU6) |
493 | LD BC,(B_PORT77-CPU2) |
| 505 | LD A,C |
494 | LD A,C |
| 506 | LD C,0x77 |
495 | LD C,0x77 |
| 507 | OUT (C),A |
496 | OUT (C),A |
| 508 | LD A,(N_BF-CPU6) |
497 | LD A,(N_BF-CPU2) |
| 509 | OUT (PEVO_CONF),A |
498 | OUT (PEVO_CONF),A |
| 510 | LD BC,CONF_128 |
499 | LD BC,CONF_128 |
| 511 | LD A,(N_7FFD-CPU6) |
500 | LD A,(N_7FFD-CPU2) |
| 512 | OUT (C),A |
501 | OUT (C),A |
| 513 | LD HL,NMI_SERVICE |
502 | LD HL,NMI_SERVICE |
| 514 | LD (ADR_NMI_JUMP),HL |
503 | LD (ADR_NMI_JUMP),HL |
| 515 | XOR A |
504 | XOR A |
| 516 | LD (FOR_RET),A |
505 | LD (FOR_RET),A |
| 517 | LD SP,NADRRET_L-CPU6 |
506 | LD SP,NADRRET_L-CPU2 |
| 518 | - | ||
| 519 | LD HL,(NMI_SAVE_SP-CPU6) |
507 | LD HL,(NMI_SAVE_SP-CPU2) |
| 520 | POP DE |
508 | POP DE |
| 521 | LD (HL),E |
509 | LD (HL),E |
| 522 | INC HL |
510 | INC HL |
| 523 | LD (HL),D ; восстановление адреса возврата |
511 | LD (HL),D ; восстановление адреса возврата |
| 524 | - | ||
| 525 | POP AF |
512 | POP AF |
| 526 | EX AF,AF' |
513 | EX AF,AF' |
| 527 | POP IY |
514 | POP IY |
| 528 | POP IX |
515 | POP IX |
| 529 | POP BC |
516 | POP BC |
| Line 534... | Line 521... | ||
| 534 | POP DE |
521 | POP DE |
| 535 | POP AF |
522 | POP AF |
| 536 | JP PO,.L1 |
523 | JP PO,.L1 |
| 537 | EI |
524 | EI |
| 538 | .L1 LD A,0x80+3-REG_R_CORRECT |
525 | .L1 LD A,0x80+3-REG_R_CORRECT |
| 539 | LD HL,NREG_R-CPU6 |
526 | LD HL,NREG_R-CPU2 |
| 540 | SLA (HL) |
527 | SLA (HL) |
| 541 | RLA |
528 | RLA |
| 542 | ADD A,(HL) |
529 | ADD A,(HL) |
| 543 | RRCA |
530 | RRCA |
| 544 | LD R,A |
531 | LD R,A |
| 545 | POP AF |
532 | POP AF |
| 546 | LD I,A |
533 | LD I,A |
| 547 | POP AF |
534 | POP AF |
| 548 | POP HL |
535 | POP HL |
| 549 | LD SP,(NMI_SAVE_SP-CPU6) |
536 | LD SP,(NMI_SAVE_SP-CPU2) |
| 550 | OUT (0xBE),A |
537 | OUT (0xBE),A |
| 551 | RETN |
538 | RETN |
| 552 | 539 | ||
| 553 | LDIR__BYTES LD HL,CPU6 |
540 | LDIR__BYTES LD HL,CPU2 |
| 554 | ADD HL,SP |
541 | ADD HL,SP |
| 555 | LD SP,HL |
542 | LD SP,HL |
| 556 | LD A,(R_7FFD-CPU6) |
543 | LD A,(R_7FFD-CPU2) |
| 557 | AND 0x10 |
544 | AND 0x10 |
| 558 | LD HL,B0_CPU1-CPU2 |
545 | LD HL,B0_CPU1-CPU2 |
| 559 | JR Z,.L5 |
546 | JR Z,.L5 |
| 560 | LD HL,B1_CPU1-CPU2 |
547 | LD HL,B1_CPU1-CPU2 |
| 561 | .L5 LD C,LOW (WIN_A0) |
548 | .L5 LD C,LOW (WIN_A0) |
| Line 580... | Line 567... | ||
| 580 | EX AF,AF' |
567 | EX AF,AF' |
| 581 | DEC A |
568 | DEC A |
| 582 | JR NZ,.L3 |
569 | JR NZ,.L3 |
| 583 | EXX |
570 | EXX |
| 584 | LDIR |
571 | LDIR |
| 585 | LD BC,WIN_P6 |
572 | LD BC,WIN_P2 |
| 586 | XOR A |
573 | XOR A |
| 587 | OUT (C),A |
574 | OUT (C),A |
| 588 | LD HL,CPU6 |
575 | LD HL,CPU2 |
| 589 | ADD HL,SP |
576 | ADD HL,SP |
| 590 | LD SP,HL |
577 | LD SP,HL |
| 591 | LD BC,WIN_A0 |
578 | LD BC,WIN_A0 |
| 592 | LD A,ROM_RST83 |
579 | LD A,ROM_RST83 |
| 593 | JP ADR_SEL_ROM |
580 | JP ADR_SEL_ROM |
| Line 614... | Line 601... | ||
| 614 | INC HL |
601 | INC HL |
| 615 | LD (HL),HIGH (IM_EI_RET) |
602 | LD (HL),HIGH (IM_EI_RET) |
| 616 | POP HL |
603 | POP HL |
| 617 | RET |
604 | RET |
| 618 | 605 | ||
| 619 | PHASE $ + CPU6 |
606 | PHASE $ + CPU2 |
| 620 | ; вызов подпрограмм из других страниц ROM |
607 | ; вызов подпрограмм из других страниц ROM |
| 621 | CALL2PAGE EX (SP),HL |
608 | CALL2PAGE EX (SP),HL |
| 622 | PUSH BC |
609 | PUSH BC |
| 623 | PUSH AF |
610 | PUSH AF |
| 624 | LD BC,WIN_A0 |
611 | LD BC,WIN_A0 |
| Line 668... | Line 655... | ||
| 668 | PUSH AF |
655 | PUSH AF |
| 669 | LD BC,WIN_P0 |
656 | LD BC,WIN_P0 |
| 670 | JR CALL2PAGE.L1 |
657 | JR CALL2PAGE.L1 |
| 671 | 658 | ||
| 672 | ; вход в отладчик |
659 | ; вход в отладчик |
| 673 | DEBUGGER DI |
660 | NMI_DEBUG DI |
| 674 | LD HL,CPU6 + DEBUG_ONOFF |
661 | LD HL,CPU2 + DEBUG_ONOFF |
| 675 | BIT B_DBG_ACTIV,(HL) |
662 | BIT DEBUGGER.B_ACTIV,(HL) |
| 676 | JR Z,DEBUGGER1 |
663 | JR Z,.L1 |
| 677 | ; принудительный вход в отладчик с возвратом в основное меню NMI |
664 | ; принудительный вход в отладчик с возвратом в основное меню NMI |
| 678 | LD HL,DBG2MAINMENU |
665 | LD HL,DBG2MAINMENU |
| 679 | PUSH HL |
666 | PUSH HL |
| 680 | JR DEBUGGER2 |
667 | JR .L2 |
| 681 | 668 | ||
| 682 | ; вход в отладчик из основного меню NMI |
669 | ; вход в отладчик из основного меню NMI |
| 683 | DEBUGGER1 LD HL,RESTART_MAIN |
670 | .L1 LD HL,RESTART_MAIN |
| 684 | PUSH HL |
671 | PUSH HL |
| 685 | LD HL,EXIT_DEBUG |
672 | LD HL,EXIT_DEBUG |
| 686 | PUSH HL |
673 | PUSH HL |
| 687 | LD HL,CPU6+DEBUG_ONOFF |
674 | LD HL,CPU2+DEBUG_ONOFF |
| 688 | SET B_DBG_ACTIV,(HL) |
675 | SET DEBUGGER.B_ACTIV,(HL) |
| 689 | DEBUGGER2 LD HL,CONTINUE_PROG |
676 | .L2 LD HL,CONTINUE_PROG |
| 690 | LD DE,NADRRET_L |
677 | LD DE,NADRRET_L |
| 691 | EVOPORT WIN_P3,RAM_STS ; включили страницу с установленным STS |
678 | EVOPORT WIN_P3,RAM_STS ; включили страницу с установленным STS |
| 692 | LD BC,N_BF |
679 | LD BC,N_BF |
| 693 | LD A,(N_77) |
680 | LD A,(N_77) |
| 694 | EX AF,AF' |
681 | EX AF,AF' |
| 695 | LD A,NO_EXIT_DEBUG-EXIT_DEBUG |
682 | LD A,NO_EXIT_DEBUG-EXIT_DEBUG |
| 696 | JP START_STS |
683 | JP START_STS |
| 697 | 684 | ||
| 698 | ; нормальный выход из отладчика |
685 | ; нормальный выход из отладчика |
| 699 | EXIT_DEBUG LD HL,CPU6+DEBUG_ONOFF |
686 | EXIT_DEBUG LD HL,CPU2+DEBUG_ONOFF |
| 700 | RES B_DBG_ACTIV,(HL) |
687 | RES DEBUGGER.B_ACTIV,(HL) |
| 701 | ; выход из отладчика минуя основное меню NMI |
688 | ; выход из отладчика минуя основное меню NMI |
| 702 | NO_EXIT_DEBUG |
689 | NO_EXIT_DEBUG |
| 703 | EVOPORT WIN_A0,ROM_RST82 |
690 | EVOPORT WIN_A0,ROM_RST82 |
| 704 | LD HL,CPU6+DEBUG_ONOFF |
691 | LD HL,CPU2+DEBUG_ONOFF |
| 705 | LD A,M_TRACE_DBG |
692 | LD A,DEBUGGER.M_TRACE |
| 706 | AND (HL) |
693 | AND (HL) |
| 707 | RET Z |
694 | RET Z |
| 708 | LD HL,TRACER_DBG |
695 | LD HL,TRACER_DBG |
| 709 | EX (SP),HL |
696 | EX (SP),HL |
| 710 | RET |
697 | RET |
| 711 | 698 | ||
| 712 | ; вход в отладчик минуя основное меню NMI |
699 | ; вход в отладчик минуя основное меню NMI |
| 713 | DBG2MAINMENU LD HL,CPU6+DEBUG_ONOFF |
700 | DBG2MAINMENU LD HL,CPU2+DEBUG_ONOFF |
| 714 | RES B_DBG_ACTIV,(HL) |
701 | RES DEBUGGER.B_ACTIV,(HL) |
| 715 | EVOPORT WIN_A0,ROM_RST83 |
702 | EVOPORT WIN_A0,ROM_RST83 |
| 716 | LD A,M_TRACE_DBG |
703 | LD A,DEBUGGER.M_TRACE |
| 717 | AND (HL) |
704 | AND (HL) |
| 718 | JP NZ,CONTMAGIC3 |
705 | JP NZ,CONTMAGIC3 |
| 719 | JP RESTART_NMI |
706 | JP RESTART_NMI |
| 720 | 707 | ||
| 721 | ; возврат из NMI для отладчика. не восстанавливается: |
708 | ; возврат из NMI для отладчика. не восстанавливается: |
| Line 732... | Line 719... | ||
| 732 | OUT (PEVO_CONF),A |
719 | OUT (PEVO_CONF),A |
| 733 | HALT ; ждем срабатывания MAGIC |
720 | HALT ; ждем срабатывания MAGIC |
| 734 | LD HL,ADR_MAGIC |
721 | LD HL,ADR_MAGIC |
| 735 | LD (HL),0xC3 ; разрешение обработчика MAGIC перед выходом |
722 | LD (HL),0xC3 ; разрешение обработчика MAGIC перед выходом |
| 736 | LD C,LOW (WIN_A0) |
723 | LD C,LOW (WIN_A0) |
| 737 | LD A,(N_7FFD-CPU6) |
724 | LD A,(N_7FFD-CPU2) |
| 738 | AND 0x10 |
725 | AND 0x10 |
| 739 | LD HL,B0_CPU0-CPU6 |
726 | LD HL,B0_CPU0-CPU2 |
| 740 | JR Z,.L11 |
727 | JR Z,.L11 |
| 741 | LD HL,B1_CPU0-CPU6 |
728 | LD HL,B1_CPU0-CPU2 |
| 742 | .L11 LD A,4 |
729 | .L11 LD A,4 |
| 743 | .L12 EX AF,AF' |
730 | .L12 EX AF,AF' |
| 744 | LD E,(HL) ; байт для записи в порт |
731 | LD E,(HL) ; байт для записи в порт |
| 745 | INC HL |
732 | INC HL |
| 746 | LD D,(HL) ; старший байт адреса порта |
733 | LD D,(HL) ; старший байт адреса порта |
| Line 760... | Line 747... | ||
| 760 | EX AF,AF' |
747 | EX AF,AF' |
| 761 | DEC A |
748 | DEC A |
| 762 | JR NZ,.L12 |
749 | JR NZ,.L12 |
| 763 | PEC_OFF M_SHADOW_BF |
750 | PEC_OFF M_SHADOW_BF |
| 764 | LD BC,PENT_CONF |
751 | LD BC,PENT_CONF |
| 765 | LD A,(N_EFF7-CPU6) |
752 | LD A,(N_EFF7-CPU2) |
| 766 | OUT (C),A |
753 | OUT (C),A |
| 767 | PEC_ON M_SHADOW_BF |
754 | PEC_ON M_SHADOW_BF |
| 768 | ; LD BC,(B_PORT77-CPU6) |
755 | ; LD BC,(B_PORT77-CPU2) |
| 769 | ; LD A,C |
756 | ; LD A,C |
| 770 | ; LD C,0x77 |
757 | ; LD C,0x77 |
| 771 | ; OUT (C),A |
758 | ; OUT (C),A |
| 772 | LD A,(N_BF-CPU6) |
759 | LD A,(N_BF-CPU2) |
| 773 | OUT (PEVO_CONF),A |
760 | OUT (PEVO_CONF),A |
| 774 | LD BC,CONF_128 |
761 | LD BC,CONF_128 |
| 775 | LD A,(N_7FFD-CPU6) |
762 | LD A,(N_7FFD-CPU2) |
| 776 | OUT (C),A |
763 | OUT (C),A |
| 777 | LD HL,NMI_SERVICE |
764 | LD HL,NMI_SERVICE |
| 778 | LD (ADR_NMI_JUMP),HL |
765 | LD (ADR_NMI_JUMP),HL |
| 779 | XOR A |
766 | XOR A |
| 780 | LD (FOR_RET),A |
767 | LD (FOR_RET),A |
| 781 | LD SP,NADRRET_L-CPU6 |
768 | LD SP,NADRRET_L-CPU2 |
| 782 | POP AF ; сброс адреса возврата |
769 | POP AF ; сброс адреса возврата |
| 783 | POP AF |
770 | POP AF |
| 784 | EX AF,AF' |
771 | EX AF,AF' |
| 785 | POP IY |
772 | POP IY |
| 786 | POP IX |
773 | POP IX |
| Line 792... | Line 779... | ||
| 792 | POP DE |
779 | POP DE |
| 793 | POP AF |
780 | POP AF |
| 794 | JP PO,ENMIDBGSERV1 |
781 | JP PO,ENMIDBGSERV1 |
| 795 | EI |
782 | EI |
| 796 | ENMIDBGSERV1 LD A,0x80+3-REG_R_CORRECT |
783 | ENMIDBGSERV1 LD A,0x80+3-REG_R_CORRECT |
| 797 | LD HL,NREG_R-CPU6 |
784 | LD HL,NREG_R-CPU2 |
| 798 | SLA (HL) |
785 | SLA (HL) |
| 799 | RLA |
786 | RLA |
| 800 | ADD A,(HL) |
787 | ADD A,(HL) |
| 801 | RRCA |
788 | RRCA |
| 802 | LD R,A |
789 | LD R,A |
| 803 | POP AF |
790 | POP AF |
| 804 | LD I,A |
791 | LD I,A |
| 805 | POP AF |
792 | POP AF |
| 806 | POP HL |
793 | POP HL |
| 807 | LD SP,(NMI_SAVE_SP-CPU6) |
794 | LD SP,(NMI_SAVE_SP-CPU2) |
| 808 | OUT (0xBE),A |
795 | OUT (0xBE),A |
| 809 | RETN |
796 | RETN |
| 810 | 797 | ||
| 811 | IF 0 |
798 | IF 0 |
| 812 | TO_USBDRV EX AF,AF' |
799 | TO_USBDRV EX AF,AF' |
| Line 867... | Line 854... | ||
| 867 | .dataX DB 0xFF |
854 | .dataX DB 0xFF |
| 868 | .bufLen DB 0xFF |
855 | .bufLen DB 0xFF |
| 869 | .addr DB 0xFF |
856 | .addr DB 0xFF |
| 870 | .timeout DB 0xFF |
857 | .timeout DB 0xFF |
| 871 | 858 | ||
| 872 | .SL_OUT DB 0xFF dup (8) |
859 | .SL_OUT DB 8 dup (0xFF) |
| 873 | .DBUF DB 0xFF dup (64) |
860 | .DBUF DB 64 dup (0xFF) |
| 874 | .T_OUT DB 0xFF dup (32) |
861 | .T_OUT DB 32 dup (0xFF) |
| 875 | 862 | ||
| 876 | uDev pUSBDEV |
863 | uDev pUSBDEV |
| 877 | usbstack PKG |
864 | usbstack PKG |
| 878 | 865 | ||
| - | 866 | F_INTEXT_DRV DB 0xFF ; флаги при внешних/внутренних вызовах драйверов |
|
| - | 867 | TMP_NUMHDD DB 0xFF |
|
| - | 868 | TMP_ADR_0068 DD 0xFFFFFFFF ; сохранение под перехватчиком NMI |
|
| - | 869 | NUMSEC_LBA48 DQ 0xFFFFFFFFFFFFFFFF ; номер сектора для чтения/записи |
|
| - | 870 | VARS_TXT_DEC DB "281474976710655\0" ; число до 48 бит |
|
| - | 871 | ADR_SP_COMFAT DW 0xFF |
|
| 879 | STEK_PAGES DUPL 0x10,0xFF ; 10 стек страниц вызывов в ROM |
872 | STEK_PAGES DB 0x10 DUP 0xFF ; 10 стек страниц вызывов в ROM |
| 880 | RST_FLAGS DB 0xFF ; 1 |
873 | RST_FLAGS DB 0xFF ; 1 |
| 881 | TXT_COLOR DB 0xFF ; 1 |
874 | TXT_COLOR DB 0xFF ; 1 |
| 882 | COORD_XY DW 0xFF ; 2 |
875 | COORD_XY DW 0xFF ; 2 |
| 883 | COLBUF DUPL 0x50,0xFF ; 50 буфер сохранения строки цвета с экрана |
876 | COLBUF DB 0x50 DUP 0xFF ; 50 буфер сохранения строки цвета с экрана |
| 884 | MOUSE_BUFF DUPL 0x10,0xFF ; 10 буфер сохранения части экрана под курсором мыши |
877 | MOUSE_BUFF DB 0x10 DUP 0xFF ; 10 буфер сохранения части экрана под курсором мыши |
| 885 | PRESSEDKEY DW 0xFFFF ; 2 адрес списка горячих клавиш после вывода окна |
878 | PRESSEDKEY DW 0xFFFF ; 2 адрес списка горячих клавиш после вывода окна |
| 886 | FLAGS DB 0xFF ; 1 системные флаги |
879 | SYSFLAGS DB 0xFF ; 1 системные флаги |
| 887 | BITMASK VIDEO_MODE, 7 ; BIT 7-=1-TXT, =0-ZX SCREEN MODE |
880 | _BITMASK VIDEO_MODE, 7 ; =1-TXT, =0-ZX SCREEN MODE |
| 888 | ; BIT 6 |
881 | _BITMASK FB_INT_EXT, 6 ; =1-внешний вызов FILE BROWSER, =0-внутренний |
| 889 | ; BIT 5 |
882 | _BITMASK NMI_FB_BLOCK, 5 ; =1-запрет запуска File Browser на NMI |
| 890 | BITMASK WIN_INT_EXT, 4 ; BIT 4-=1-внешнее окно, =0-внутреннее окно |
883 | _BITMASK WIN_INT_EXT, 4 ; =1-внешнее окно, =0-внутреннее окно |
| 891 | BITMASK RUN_FAT_DSK, 3 ; BIT 3-=1-запуск с FAT, =0-запуск с дискеты |
884 | _BITMASK RUN_FAT_DSK, 3 ; =1-запуск с FAT, =0-запуск с дискеты |
| 892 | BITMASK CLOCK_PRESENT, 2 ; BIT 2-=1-часы найдены, =0-нет |
885 | _BITMASK CLOCK_PRESENT, 2 ; =1-часы найдены, =0-нет |
| 893 | BITMASK MOUSE_PRESENT, 1 ; BIT 1-=1-мышь есть, =0-нет |
886 | _BITMASK MOUSE_PRESENT, 1 ; =1-мышь есть, =0-нет |
| 894 | BITMASK CURSOR_NUM, 0 ; BIT 0-какой курсор рисовать, для мигания |
887 | _BITMASK CURSOR_NUM, 0 ; какой курсор рисовать, для мигания |
| - | 888 | FATVARSFLAGS DB 0xFF ; флаги для переменных FAT |
|
| - | 889 | _BITMASK TYPE, 2 ; =1-в работе для внутреннего софта,0-внешнего |
|
| - | 890 | _BITMASK INT, 1 ; =1-буфера FAT внешнего софта сохранены |
|
| - | 891 | _BITMASK EXT, 0 ; =1-буфера FAT внутреннего софта сохранены |
|
| 895 | NEXTBYTERST8 DB 0xFF ; 1 следующий байт после вызова RST 8, код для вызова драйвера |
892 | NEXTBYTERST8 DB 0xFF ; 1 следующий байт после вызова RST 8, код для вызова драйвера |
| 896 | OLD_STACK DW 0xFFFF ; 2 |
893 | OLD_STACK DW 0xFFFF ; 2 |
| - | 894 | FOUND_FAT_FILES DW 0xFFFF ; количество найденных файлов |
|
| 897 | ADR_INT DW 0xFFFF ; 2 |
895 | ADR_INT DW 0xFFFF ; 2 |
| 898 | ADR_PALITRA DW 0xFFFF ; 2 |
896 | ADR_PALITRA DW 0xFFFF ; 2 |
| 899 | XNEW DB 0xFF ; 1 |
897 | XNEW DB 0xFF ; 1 |
| 900 | ADRSTR_Y DB 0xFF ; 1 |
898 | ADRSTR_Y DB 0xFF ; 1 |
| 901 | ADRSTR_X DB 0xFF ; 1 |
899 | ADRSTR_X DB 0xFF ; 1 |
| 902 | TXNEW DB 0xFF ; 1 |
900 | TXNEW DB 0xFF ; 1 |
| 903 | TADRSTR_Y DB 0xFF ; 1 |
901 | TADRSTR_Y DB 0xFF ; 1 |
| 904 | TADRSTR_X DB 0xFF ; 1 |
902 | TADRSTR_X DB 0xFF ; 1 |
| 905 | NO_INW DB 0xFF ; 1 |
903 | NO_INW DB 0xFF ; 1 |
| 906 | COLOR4SYM DB 0xFF ; 1 |
904 | COLOR4SYM DB 0xFF ; 1 |
| 907 | PAGE4READ DB 0xFF ; 1 |
905 | PAGE4READ DB 0xFF ; 1 страница памяти для чтения из внешнего софта |
| 908 | PAGE4SCR DB 0xFF ; 1 |
906 | PAGE4SCR DB 0xFF ; 1 |
| 909 | DAT_MAIN_MENU DUPL 3,0 ; 3 |
907 | DAT_MAIN_MENU DB 3 DUP 0 ; 3 |
| 910 | DAT_SETUP_MENU DUPL 3,0 ; 3 |
908 | DAT_SETUP_MENU DB 3 DUP 0 ; 3 |
| 911 | DAT_FILEBROWS DUPL 5,0 ; 5 |
909 | DAT_FILEBROWS DB 5 DUP 0 ; 5 |
| 912 | DAT_MOUNT DUPL 3,0 ; 3 |
910 | DAT_MOUNT DB 3 DUP 0 ; 3 |
| - | 911 | DAT_LOAD DB 3 DUP 0 ; 3 |
|
| 913 | WIN_DEV DUPL 0x30,0 ; 30 |
912 | WIN_DEV DB 0x30 DUP 0 ; 30 |
| 914 | COL_CURSOR DW 0xFFFF ; 2 |
913 | COL_CURSOR DW 0xFFFF ; 2 |
| 915 | _MORG DB 0xFF ; 1 |
914 | _MORG DB 0xFF ; 1 |
| 916 | ARXY DW 0xFFFF ; 2 |
915 | ARXY DW 0xFFFF ; 2 |
| 917 | ADR_REST DW 0xFFFF ; 2 |
916 | ADR_REST DW 0xFFFF ; 2 |
| 918 | MOUPOS DW 0xFFFF ; 2 |
917 | MOUPOS DW 0xFFFF ; 2 |
| 919 | TEK_MODES DB 0xFF ; 1 |
918 | TEK_MODES DB 0xFF ; 1 |
| 920 | CMP_FONT_FLAG DB 0xFF ; 1 |
919 | CMP_FONT_FLAG DB 0xFF ; 1 |
| 921 | BUFF4TXT DUPL 0x2B,0xFF ; 2B |
920 | BUFF4TXT DB 0x2B DUP 0xFF ; 2B |
| 922 | EXT4FOUND DUPL 0x10*3+1,0xFF ; 10*3+1 |
921 | EXT4FOUND DB 0x10*3+1 DUP 0xFF ; 10*3+1 |
| 923 | CMOS4CRC16 DUPL ECMOS_DEFAULT-CMOS_DEFAULT,0xFF |
922 | CMOS4CRC16 DB ECMOS_DEFAULT-CMOS_DEFAULT DUP 0xFF |
| 924 | KSTATE0 DB 0xFF ; 1 | |
923 | KSTATE0 DB 0xFF ; 1 | |
| 925 | KSTATE1 DB 0 ; 1 | |
924 | KSTATE1 DB 0 ; 1 | |
| 926 | KSTATE2 DB 0 ; 1 | |
925 | KSTATE2 DB 0 ; 1 | |
| 927 | KSTATE3 DB 0 ; 1 | |
926 | KSTATE3 DB 0 ; 1 | |
| 928 | KSTATE4 DB 0xFF ; 1 | аналог |
927 | KSTATE4 DB 0xFF ; 1 | аналог |
| Line 941... | Line 940... | ||
| 941 | SCROLL_MODE DB 0xFF ; 1 |
940 | SCROLL_MODE DB 0xFF ; 1 |
| 942 | NEXT4PAGE DW 0xFFFF ; 2 |
941 | NEXT4PAGE DW 0xFFFF ; 2 |
| 943 | OSTAT_SECT DW 0xFFFF ; 2 |
942 | OSTAT_SECT DW 0xFFFF ; 2 |
| 944 | NACH_SECT DW 0xFFFF ; 2 |
943 | NACH_SECT DW 0xFFFF ; 2 |
| 945 | START_DATA DW 0xFFFF ; 2 |
944 | START_DATA DW 0xFFFF ; 2 |
| 946 | ;AY_REGS1 DUPL 0x0E,0xFF ; D |
945 | ;AY_REGS1 DB 0x0E DUP 0xFF ; D |
| 947 | ;AY_REGS2 DUPL 0x0E,0xFF ; D |
946 | ;AY_REGS2 DB 0x0E DUP 0xFF ; D |
| 948 | TEKBUFTSC DW 0xFFFF ; 2 |
947 | TEKBUFTSC DW 0xFFFF ; 2 |
| 949 | TEK_TEXT DW 0xFFFF ; 2 |
948 | TEK_TEXT DW 0xFFFF ; 2 |
| 950 | TURBO_MODE DUPL 5,0xFF ; 5 |
949 | TXT_TURBO_MODE DB 5 DUP 0xFF ; 5 |
| 951 | MEMORY_MODE DUPL 4,0xFF ; 3 |
950 | TXT_MEMORY_MODE DB 4 DUP 0xFF ; 3 |
| 952 | ; для резидента HONEY COMANDER |
951 | ; для резидента HONEY COMANDER |
| 953 | REZIDENT_MODE DUPL 4,0xFF ; 4 |
952 | TXT_REZIDENT_MODE DB 4 DUP 0xFF ; 4 |
| 954 | TXT_KILLREZID DUPL 4,0xFF ; 4 |
953 | TXT_KILLREZID DB 4 DUP 0xFF ; 4 |
| 955 | BUFF_TIME DB 0x16,0x00,0x48,0x17,CYAN<<3+BLUE+0xC0 |
954 | BUFF_TIME DB 0x16,0x00,0x48,0x17,CYAN<<3+BLUE+0xC0 |
| 956 | TXT_TIME DB "00:00:00",0x16,0x01,0x48 |
955 | TXT_TIME DB "00:00:00",0x16,0x01,0x48 |
| 957 | TXT_DATA DB "00.00.00",0x17,0xFF,0 |
956 | TXT_DATA DB "00.00.00",0x17,0xFF,0 |
| 958 | EBUFF_TIME |
957 | EBUFF_TIME |
| 959 | TXT_FREQ DZ "14.0" |
958 | TXT_FREQ DZ "14.0" |
| 960 | DZ "7.0 " |
959 | DZ "7.0 " |
| 961 | DZ "3.5 " |
960 | DZ "3.5 " |
| 962 | NAME_RAMDISK DUPL 0x20,0 |
961 | NAME_RAMDISK DB 0x20 DUP 0 |
| 963 | FILE_DEST DUPL 0x20,0xFF ; 20 описатель открытого файла (куда) |
962 | FILE_DEST DB 0x20 DUP 0xFF ; 20 описатель открытого файла |
| 964 | FB_EXT DUPL 0x0B,0xFF ; B буфер 8.3 для поиска имени |
963 | FB_EXT DB 0x0B DUP 0xFF ; B буфер 8.3 для поиска имени |
| 965 | SAVE_IY DW 0xFFFF ; 2 внутренее сохранение регистров для дальнейшего использования |
964 | SAVE_IY DW 0xFFFF ; 2 внутренее сохранение регистров для дальнейшего использования |
| 966 | ADR_MASK_EXT DW 0xFFFF ; 2 адрес расширений файлов для поиска |
965 | ADR_MASK_EXT DW 0xFFFF ; 2 адрес расширений файлов для поиска |
| 967 | ADR_SKLAD DW 0xFFFF ; 2 адрес складирования найденного |
966 | ADR_SKLAD DW 0xFFFF ; 2 адрес складирования найденного |
| 968 | ADR_SKLAD_NAME DW 0xFFFF ; 2 |
967 | ADR_SKLAD_NAME DW 0xFFFF ; 2 |
| 969 | MAKS_ADR DB 0xFF ; 1 старший байт максимального адреса буфера складирования |
968 | MAKS_ADR DB 0xFF ; 1 старший байт максимального адреса буфера складирования |
| 970 | KOL_FOUNDED DW 0xFFFF ; 2 количество найденных описателей |
969 | KOL_FOUNDED DW 0xFFFF ; 2 количество найденных описателей |
| 971 | OUT_NAME_FILE DB 0x17,0xFF,0x16,0,0,0 |
970 | OUT_NAME_FILE DB 0x17,0xFF,0x16 |
| 972 | OUT_NAME_FILET EQU $-3 |
971 | OUT_NAME_FILET DB 0,0,0 |
| 973 | BUF_FILEITEM DUPL 0x20,0xFF ; 20 |
972 | BUF_FILEITEM DB 0x20 DUP 0xFF ; 20 |
| 974 | EXTERN_PAL DUPL 0x10,0xFF ; 10 |
973 | EXTERN_PAL DB 0x10 DUP 0xFF ; 10 |
| 975 | ENMI_SERVICE |
974 | ENMI_SERVICE |
| 976 | HDDTIMEOUT EQU EXTERN_PAL+0x10 ; 1 |
975 | HDDTIMEOUT EQU $;EXTERN_PAL+0x10 ; 1 |
| 977 | 976 | ||
| 978 | DEPHASE |
977 | DEPHASE |