Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
801 | savelij | 1 | |
2 | ;LAST UPDATE: 26.01.2019 savelij |
||
3 | |||
4 | TITLE "rommainmenu.a80" |
||
5 | |||
6 | include ../../macros.a80 |
||
7 | include ../../global_vars.a80 |
||
8 | include ../../define.a80 |
||
9 | include ../../evodos_vars.a80 |
||
10 | |||
11 | PHASE CPU0 |
||
12 | JP $ |
||
13 | |||
14 | DUPL 0X0008-$,0XFF |
||
15 | JP $ |
||
16 | |||
17 | DUPL 0X0010-$,0XFF |
||
18 | JP $ |
||
19 | |||
20 | DUPL ADR_SEL_ROM-$,0XFF |
||
21 | OUT (C),A ;0014 |
||
22 | NOP |
||
23 | RET |
||
24 | |||
25 | DUPL 0X0018-$,0XFF |
||
26 | JP $ |
||
27 | |||
28 | DUPL 0X0020-$,0XFF |
||
29 | JP $ |
||
30 | |||
31 | DUPL 0X0028-$,0XFF |
||
32 | JP $ |
||
33 | |||
34 | DUPL 0X0030-$,0XFF |
||
35 | JP ICALL2PAGE |
||
36 | |||
37 | DUPL 0X0038-$,0XFF ;0038 |
||
38 | EI |
||
39 | RET |
||
40 | |||
41 | DUPL 0X003E-$,0XFF |
||
42 | EI |
||
43 | RET |
||
44 | |||
45 | DUPL 0X0080-$,0XFF |
||
46 | include ../../dec40.a80 |
||
47 | |||
48 | DUPL 0X00FF-$,0XFF |
||
49 | DW 0X0038 |
||
50 | |||
51 | RST8 _CMOS_RW,_INIT_CMOS |
||
52 | LD HL,PAGES_CONF |
||
53 | LD A,0XEF |
||
54 | IN A,(0XFE) |
||
55 | RRCA ; "0" |
||
56 | JR NC,RSTRAM ; |
||
57 | RRCA |
||
58 | RRCA |
||
59 | RRCA |
||
60 | RRCA ; "6" |
||
61 | JR C,INITPAGE4 |
||
62 | ; |
||
63 | EXX |
||
64 | LD BC,WIN_P2 |
||
65 | XOR A |
||
66 | OUT (C),A |
||
67 | LD HL,CPU2+DEBUG_ONOFF |
||
68 | SET 7,(HL) |
||
69 | EXX |
||
70 | IN A,(PEVO_CONF) |
||
71 | OR M_NMI_BF |
||
72 | OUT (PEVO_CONF),A |
||
73 | AND M_NMI_BF!0XFF |
||
74 | OUT (PEVO_CONF),A |
||
75 | HALT |
||
76 | INITPAGE4 LD BC,CMOSD_SET_ADR |
||
77 | LD A,CMOS_BYTE_00 |
||
78 | OUT (C),A |
||
79 | LD B,HIGH (CMOSD_RD_WR) |
||
80 | IN A,(C) |
||
81 | AND MKOL_MODES |
||
82 | CP KOL_MODES |
||
83 | JR NC,RSTRAM |
||
84 | AND A |
||
85 | JR Z,RSTRAM |
||
86 | DEC A |
||
87 | LD HL,PAGES_CONFGLUK ; GLUK |
||
88 | JR Z,RSTRAM |
||
89 | DEC A |
||
90 | LD HL,PAGES_PROFROM ; PROFROM |
||
91 | JR Z,RSTRAM |
||
92 | LD HL,PAGES_CUSTOM ; USER ROM |
||
93 | RSTRAM LD A,0XEF |
||
94 | IN A,(0XFE) |
||
95 | RRCA ; "0" |
||
96 | JR NC,RSTRAM ; |
||
97 | LD BC,0XBC77 |
||
98 | LD A,2 |
||
99 | OUT (C),A |
||
100 | LD DE,0X103F |
||
101 | LOOP2 LD BC,CONF_128 |
||
102 | OUT (C),D |
||
103 | LD BC,LOW (WIN_A0) |
||
104 | LOOP1 OUTI |
||
105 | LD A,B |
||
106 | SUB E |
||
107 | LD B,A |
||
108 | JR NZ,LOOP1 |
||
109 | LD BC,CONF_128 |
||
110 | LD A,D |
||
111 | XOR 0X10 |
||
112 | LD D,A |
||
113 | JR Z,LOOP2 |
||
114 | RSTPAL LD A,(HL) |
||
115 | LD IXH,A ; |
||
116 | LD DE,0XAB0F ;ZX SCREEN MODE, TURBO ON 14MHZ |
||
117 | LD BC,0XFD77 ; |
||
118 | OUT (C),D |
||
119 | EI ;― «¨βΰ |
||
120 | HALT |
||
121 | DI |
||
122 | LD HL,TRSTPAL ;+15 |
||
123 | LD BC,0XBD77 |
||
124 | OUT (C),D ;’ͺ«.PAL |
||
125 | RSTPAL0 LD A,E |
||
126 | BIT 3,E |
||
127 | OUT (0XFE),A |
||
128 | JR Z,$+4 |
||
129 | OUT (0XF6),A |
||
130 | LD A,(HL) |
||
131 | INC HL |
||
132 | OR %00001100 |
||
133 | OUT (0XFF),A |
||
134 | DEC E |
||
135 | JP P,RSTPAL0 |
||
136 | END_INIT LD A,0XAB |
||
137 | LD BC,0XFF77 |
||
138 | OUT (C),A ;’λͺ«.PAL |
||
139 | LD A,IXH |
||
140 | LD BC,0 |
||
141 | AND 0X3C |
||
142 | JR Z,RSTKEYS2 ;RESET TO EVO SERVICE PAGE |
||
143 | CP CONF4GLUK&0X3F |
||
144 | JR Z,RSTKEYS3 ;RESET TO GLUK SERVICE PAGE |
||
145 | CP CONF4CUSTOM&0X3F |
||
146 | JR Z,RSTKEYS3 ;RESET TO CUSTOM ROM |
||
147 | JP LDIR4PROFROM ;RESET TO PROFROM BASIC 128 |
||
148 | |||
149 | RSTKEYS3 PUSH BC |
||
150 | LD BC,0XBC77 |
||
151 | LD A,2 |
||
152 | OUT (C),A |
||
153 | LD BC,WIN_A0 |
||
154 | LD A,IXH |
||
155 | OUT (C),A |
||
156 | PEC_OFF M_SHADOW_BF |
||
157 | LD BC,0XFF77 |
||
158 | LD A,0XA3 |
||
159 | JP 0X3D2D |
||
160 | |||
161 | RSTKEYS2 LD H,CMOS_BYTE_00 |
||
162 | RST8 _CMOS_RW,_READ_CMOS |
||
163 | AND 0XFC ; |
||
164 | LD L,A |
||
165 | RST8 _CMOS_RW,_WRITE_CMOS ; EVO SERVICE |
||
166 | IF DOS_FE |
||
167 | LD BC,WIN_A3 |
||
168 | LD A,ROM_RST82 |
||
169 | OUT (C),A |
||
170 | LD B,HIGH (WIN_P2) |
||
171 | LD A,RAM_EVODOS |
||
172 | OUT (C),A |
||
173 | LD A,(CPU2+COPY_VIRT_BITS) |
||
174 | PUSH AF |
||
175 | CALL UNP_DOS_FE+CPU3 ; DOS |
||
176 | POP AF |
||
177 | LD (CPU2+COPY_VIRT_BITS),A |
||
178 | ELSE |
||
179 | LD BC,WIN_A3 |
||
180 | LD A,ROM_ADD_DOS |
||
181 | OUT (C),A |
||
182 | LD B,HIGH (WIN_P2) |
||
183 | LD A,RAM_EVODOS |
||
184 | OUT (C),A |
||
185 | LD A,(CPU2+COPY_VIRT_BITS) |
||
186 | LD HL,CPU3 |
||
187 | LD DE,CPU2 |
||
188 | LD BC,0X4000 |
||
189 | LDIR ; DOS |
||
190 | LD (CPU2+COPY_VIRT_BITS),A |
||
191 | ENDIF |
||
192 | LD BC,WIN_A2 |
||
193 | LD A,0X7D |
||
194 | OUT (C),A |
||
195 | LD B,HIGH (WIN_A3) |
||
196 | LD A,0XFF |
||
197 | OUT (C),A |
||
198 | ;
HONEY COMANDER |
||
199 | IFDEF REZIDENT |
||
200 | CALL CMP_REZIDENT ; |
||
201 | ENDIF |
||
202 | LD BC,0XFEFF |
||
203 | RSTKEYS1 LD A,B |
||
204 | IN A,(0XFE) |
||
205 | REPT 5 |
||
206 | RRA |
||
207 | JR C,$+3 |
||
208 | INC C |
||
209 | ENDM |
||
210 | RLC B |
||
211 | JR C,RSTKEYS1 |
||
212 | DEC C |
||
213 | JP P,GTSTKEY ; 1 , |
||
214 | LD IXL,0 ; |
||
215 | LD DE,0 ;1 , |
||
216 | LD BC,CONF_128 |
||
217 | PUSH DE ; |
||
218 | LD A,0XFE |
||
219 | IN A,(0XFE) ; "CS" |
||
220 | RRA |
||
221 | LD A,0 |
||
222 | JP NC,START_SELECT ; "CS" 128 |
||
223 | LD A,0X7F |
||
224 | IN A,(0XFE) ; "SS" |
||
225 | LD D,A |
||
226 | RRA |
||
227 | RRA |
||
228 | LD A,0X30 |
||
229 | JP NC,START_SELECT ; "SS" 48 |
||
230 | LD A,D |
||
231 | RRA ; "SPACE" |
||
232 | JR C,CMPCFG1 ; |
||
233 | LD A,0X10 |
||
234 | LD DE,0X3D2F |
||
235 | PUSH DE |
||
236 | JP START_SELECT ; "SPACE" TR-DOS |
||
237 | |||
238 | CMPCFG1 LD A,0XFD |
||
239 | IN A,(0XFE) |
||
240 | AND 4 ; "D" |
||
241 | JP Z,GDEMO |
||
242 | LD IXL,1 ; |
||
243 | LD HL,0x6000 ; , |
||
244 | LD SP,HL |
||
245 | EX DE,HL |
||
246 | LD HL,BONUADR ; |
||
247 | CALL DEC40 |
||
248 | XOR A |
||
249 | IN A,(0XFE) |
||
250 | CPL |
||
251 | AND 0X1F |
||
252 | LD A,0X10 |
||
253 | JR NZ,CMOSHELP |
||
254 | LD HL,0X6000 |
||
255 | PUSH HL |
||
256 | JR START_SELECT |
||
257 | |||
258 | GTSTKEY SCF |
||
259 | LD A,0X10 |
||
260 | CMOSHELP LD HL,BONUADR ;CMOS setup & HELP |
||
261 | LD DE,0X6000 ; CMOS SETUP |
||
262 | PUSH DE |
||
263 | PUSH AF |
||
264 | CALL DEC40 |
||
265 | POP AF |
||
266 | JR START_SELECT |
||
267 | |||
268 | GDEMO LD HL,0X6000-szdemoini |
||
269 | LD SP,HL |
||
270 | EX DE,HL |
||
271 | PUSH DE |
||
272 | LD HL,DEMO |
||
273 | LD B,3 |
||
274 | LDIR |
||
275 | START_SELECT EX AF,AF' ; |
||
276 | LD HL,ERAM_CODE-1 |
||
277 | LD DE,0X5C80 |
||
278 | LD BC,ERAM_CODE-RAM_CODE |
||
279 | LDDR |
||
280 | EX DE,HL |
||
281 | INC HL |
||
282 | EXX |
||
283 | LD A,IXL |
||
284 | AND A |
||
285 | LD D,0XA3 |
||
286 | JR NZ,SET_MODE3 |
||
287 | LD H,CMOS_BYTE_00;0XEF |
||
288 | CALL READCMOS |
||
289 | AND M_TURBO14;0X80 |
||
290 | REPT 4 |
||
291 | RRCA |
||
292 | ENDM |
||
293 | OR D;0XA3 |
||
294 | LD D,A ; 14 |
||
295 | SET_MODE3 LD H,CMOS_BYTE_01;0X0E |
||
296 | CALL READCMOS |
||
297 | LD E,A ; 7.0/3.5
|
||
298 | PEC_OFF M_SHADOW_BF |
||
299 | EXX |
||
300 | CMPCFG2 JP (HL) |
||
301 | |||
302 | RAM_CODE EXX |
||
303 | LD BC,PENT_CONF |
||
304 | LD A,IXL |
||
305 | AND A |
||
306 | LD A,0X10 |
||
307 | JR NZ,SET_MODE2 |
||
308 | LD A,E |
||
309 | AND 3 |
||
310 | LD L,0 |
||
311 | JR Z,SET_MODE1 |
||
312 | LD L,4 |
||
313 | SET_MODE1 LD A,E |
||
314 | AND M_TURBO357;0X80 |
||
315 | REPT 3 |
||
316 | RRCA |
||
317 | ENDM |
||
318 | OR L |
||
319 | BIT 3,D |
||
320 | JR Z,SET_MODE2 |
||
321 | SET 4,A |
||
322 | SET_MODE2 OUT (C),A |
||
323 | LD BC,CONF_128 |
||
324 | XOR A |
||
325 | OUT (C),A ;
0 |
||
326 | PEC_ON M_SHADOW_BF |
||
327 | LD BC,WIN_A0 |
||
328 | LD A,IXH |
||
329 | OUT (C),A ; ROM
0 |
||
330 | LD BC,0XFF77 |
||
331 | OUT (C),D ; |
||
332 | PEC_OFF M_SHADOW_BF |
||
333 | EX AF,AF' |
||
334 | LD BC,CONF_128 |
||
335 | OUT (C),A ; 1 |
||
336 | RET |
||
337 | ERAM_CODE |
||
338 | |||
339 | ;
: H-
|
||
340 | ;
: L,A-
|
||
341 | READCMOS PUSH BC |
||
342 | LD BC,CMOSD_SET_ADR |
||
343 | OUT (C),H |
||
344 | LD B,HIGH (CMOSD_RD_WR) |
||
345 | IN L,(C) |
||
346 | LD A,L |
||
347 | POP BC |
||
348 | RET |
||
349 | |||
350 | ;
HONEY COMANDER |
||
351 | IFDEF REZIDENT |
||
352 | CMP_REZIDENT LD H,CMOS_BYTE_01 |
||
353 | CALL READCMOS |
||
354 | AND M_REZIDENT |
||
355 | RET Z |
||
356 | LD BC,WIN_A3 |
||
357 | LD A,0X1F ! 0X7F |
||
358 | OUT (C),A |
||
359 | LD HL,CPU3 |
||
360 | LD A,(HL) |
||
361 | CP 0XC3 |
||
362 | JR NZ,.NOTFOUND |
||
363 | XOR A |
||
364 | .NEXTBYTE ADD A,(HL) |
||
365 | ADC A,0 |
||
366 | INC HL |
||
367 | BIT 7,H |
||
368 | JR NZ,.NEXTBYTE |
||
369 | DEC A |
||
370 | JR NZ,.NOTFOUND |
||
371 | LD A,0XAA |
||
372 | DEC HL |
||
373 | CP (HL) |
||
374 | JR NZ,.NOTFOUND |
||
375 | CPL |
||
376 | DEC HL |
||
377 | CP (HL) |
||
378 | JR NZ,.NOTFOUND |
||
379 | LD BC,0X4177 |
||
380 | LD A,6 |
||
381 | OUT (C),A |
||
382 | PEC_OFF M_SHADOW_BF |
||
383 | JP CPU3 |
||
384 | |||
385 | .NOTFOUND LD BC,WIN_A3 |
||
386 | LD A,0XFF |
||
387 | OUT (C),A |
||
388 | RET |
||
389 | ENDIF |
||
390 | |||
391 | BONUADR |
||
392 | IF DOS_FE |
||
393 | binclude main_fe_pack.rom |
||
394 | ELSE |
||
395 | binclude main_pack.rom |
||
396 | ENDIF |
||
397 | |||
398 | CMOSSET binclude cmosset_pack.rom |
||
399 | |||
400 | ;
64 (USER ROM) |
||
401 | PAGES_CUSTOM DB 0XFF,0X7D,0X7A,CONF4CUSTOM+3 |
||
402 | DB 0XFF,0X7D,0X7A,0X00,CONF4CUSTOM+1 |
||
403 | |||
404 | DUPL ADR_RST8END-$,0XFF |
||
405 | EDOS2RST8 LD A,L |
||
406 | OUT (PEVO_CONF),A |
||
407 | POP DE |
||
408 | POP HL |
||
409 | POP AF |
||
410 | JP PO,EDOS2RST01 |
||
411 | EI |
||
412 | EDOS2RST01 POP BC |
||
413 | POP AF |
||
414 | EX (SP),HL |
||
415 | RET |
||
416 | |||
417 | DOS2RST8 EX (SP),HL ;HL |
||
418 | PUSH AF ;AF |
||
419 | PUSH BC ;BC |
||
420 | LD A,R |
||
421 | JP PE,DOS2RST8_01 |
||
422 | LD A,R |
||
423 | DOS2RST8_01 DI |
||
424 | PUSH AF ;RF |
||
425 | PUSH HL ;ADR_RET |
||
426 | PUSH DE ;DE |
||
427 | IN A,(PEVO_CONF) |
||
428 | LD L,A |
||
429 | OR M_SHADOW_BF |
||
430 | OUT (PEVO_CONF),A |
||
431 | LD BC,RD_0WINA0 |
||
432 | IN H,(C) |
||
433 | LD B,HIGH (RD_DOS7FFD) |
||
434 | IN E,(C) |
||
435 | RES 4,E |
||
436 | DEC B |
||
437 | IN D,(C) |
||
438 | LD BC,WIN_P0 |
||
439 | XOR A |
||
440 | JP ADR_SEL_ROM |
||
441 | |||
442 | DUPL 0X3D2D-$,0XFF |
||
443 | OUT (C),A |
||
444 | NOP |
||
445 | RET |
||
446 | |||
447 | DEMO LD BC,CONF_128 |
||
448 | LD A,0X10 |
||
449 | OUT (C),A |
||
450 | EI |
||
451 | szdemoini EQU $-DEMO |
||
452 | |||
453 | binclude ../../mainmenu/src/grass.bin |
||
454 | |||
455 | LDIR4PROFROM LD HL,JMP2PROFROM |
||
456 | LD DE,JMP2PROFROM+0X8000 |
||
457 | LD BC,EJMP2PROFROM-JMP2PROFROM |
||
458 | LDIR |
||
459 | PUSH BC |
||
460 | LD BC,0XBC77 |
||
461 | LD A,3 |
||
462 | OUT (C),A |
||
463 | LD A,IXH |
||
464 | LD BC,WIN_A0 |
||
465 | OUT (C),A |
||
466 | LD BC,0XFF77 |
||
467 | LD A,0XA3 |
||
468 | JP JMP2PROFROM+0X8000 |
||
469 | |||
470 | JMP2PROFROM OUT (C),A |
||
471 | RET |
||
472 | EJMP2PROFROM |
||
473 | |||
474 | SET_MAPPER |
||
475 | RET |
||
476 | |||
477 | ;1000 0001 81 0 BASIC 128 |EVO |
||
478 | ;1000 0011 83 0 BASIC 48 |SERVICE |
||
479 | |||
480 | ;1000 0101 85 1 BASIC 128 |ADDONS |
||
481 | ;1000 0111 87 1 BASIC 48 |RST8 SERVICE |
||
482 | |||
483 | ;1000 1001 89 2 BASIC 128 |RESERVED |
||
484 | ;1000 1110 8B 2 BASIC 48 |EVODOS EMUL 3D2F |
||
485 | |||
486 | ;1000 1101 8D 3 BASIC 128 |PROFROM 1 |
||
487 | ;1000 1111 8F 3 BASIC 48 |PROFROM 1 |
||
488 | |||
489 | ;1001 0001 91 4 BASIC 128 |PROFROM 0 |
||
490 | ;1001 0011 93 4 BASIC 48 |PROFROM 0 |
||
491 | |||
492 | ;1001 0101 95 5 BASIC 128 |GLUK |
||
493 | ;1001 0111 97 5 BASIC 48 |GLUK |
||
494 | |||
495 | ;1001 1001 99 6 BASIC 128 |FREE |
||
496 | ;1001 1011 9B 6 BASIC 48 |FREE |
||
497 | |||
498 | ;1001 1101 9D 7 BASIC 128 |CUSTOM |
||
499 | ;1001 1111 9F 7 BASIC 48 |CUSTOM |
||
500 | |||
501 | ; ,
|
||
502 | PAGES_CONF DB 0XFF,0X7D,0X7A,0X83 |
||
503 | DB 0XFF,0X7D,0X7A,0X00,0X81 |
||
504 | |||
505 | ; GLUK |
||
506 | PAGES_CONFGLUK DB 0XFF,0X7D,0X7A,CONF4GLUK+3 |
||
507 | DB 0XFF,0X7D,0X7A,0X00,CONF4GLUK+1 |
||
508 | |||
509 | ; EVO PROFROM |
||
510 | PAGES_PROFROM DB 0XFF,0X7D,0X7A,CONF4PROF+3 |
||
511 | DB 0XFF,0X7D,0X7A,0X00,CONF4PROF+1 |
||
512 | |||
513 | ; SPECTRUM
|
||
514 | TRSTPAL |
||
515 | DB (R_H | R_L | G_H | G_L | B_H | B_L) ! 0xF3 ;00 |
||
516 | DB (R_H | R_L | G_H | G_L ) ! 0xF3 ;21 |
||
517 | DB ( G_H | G_L | B_H | B_L) ! 0xF3 ;42 |
||
518 | DB ( G_H | G_L ) ! 0xF3 ;63 |
||
519 | DB (R_H | R_L | B_H | B_L) ! 0xF3 ;90 |
||
520 | DB (R_H | R_L ) ! 0xF3 ;B1 |
||
521 | DB ( B_H | B_L) ! 0xF3 ;D2 |
||
522 | DB BLACK ! 0xF3 ;F3 |
||
523 | DB (R_H | G_H | B_H ) ! 0xF3 ;E0 |
||
524 | DB (R_H | G_H ) ! 0xF3 ;E1 |
||
525 | DB ( G_H | B_H ) ! 0xF3 ;E2 |
||
526 | DB ( G_H ) ! 0xF3 ;E3 |
||
527 | DB (R_H | B_H ) ! 0xF3 ;F0 |
||
528 | DB (R_H) ! 0xF3 ;F1 |
||
529 | DB ( B_H ) ! 0xF3 ;F2 |
||
530 | DB BLACK ! 0xF3 ;F3 |
||
531 | |||
532 | DUPL 0X3FF8-$,0XFF |
||
533 | DB "M_MENU" |
||
534 | DW DATA_VERS |