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 |