Subversion Repositories pentevo

Rev

Rev 1047 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
801 savelij 1
 
1067 savelij 2
; LAST UPDATE: 21.02.2023 savelij
801 savelij 3
 
4
                TITLE "menu_execute.a80"
5
 
1026 savelij 6
; 㧪  
801 savelij 7
TAPELOAD        LD H,CMOS_BYTE_00
8
                CALL READCMOS
9
                AND M_EMUL_TAPE
10
                JP NZ,EMULTAPLOAD
11
                LD IX,TAPE_LDT
1026 savelij 12
        RST8 _WINW
13
TAPELOAD1       CALL MEMSET                     ; ⠢ ०   
801 savelij 14
                LD HL,BAS4TAPE
1026 savelij 15
                LD DE,0x5C3A
801 savelij 16
                LD BC,EBAS4TAPE-BAS4TAPE
1026 savelij 17
                LDIR                            ; ६ ᨪ ᤥ FOR ONLY TAPE
801 savelij 18
                LD HL,ERROR_TAPE
19
                PUSH HL
1026 savelij 20
                LD (0x5C3D),SP                  ; 墠 訡 ᫨   
21
                LD HL,0xFF58
22
                LD SP,HL                        ; ⠢ ⥪   ᨪ 48
23
                LD DE,0x3E08
24
                LD BC,0xA8
801 savelij 25
                EX DE,HL
1026 savelij 26
                LDIR                            ;   UDG
27
                LD HL,0x3E00
801 savelij 28
                PUSH HL
1026 savelij 29
                LD HL,0x1303
801 savelij 30
                PUSH HL
1026 savelij 31
                LD HL,0x1B76
32
                PUSH HL                         ;   ⠢ ⥪
33
                LD IX,0x5CD1                    ; ⠭  㧪  
34
                JP 0x073E                       ; 室  㧪  
801 savelij 35
 
1026 savelij 36
; 墠 訡  ४  
801 savelij 37
ERROR_TAPE      LD HL,BAS_VAR
1026 savelij 38
                LD DE,0x5C00
801 savelij 39
                LD BC,EBAS_VAR-BAS_VAR
1026 savelij 40
                LDIR                            ; 㫨 म ६  
801 savelij 41
                XOR A
1026 savelij 42
                LD (0x5C3D),BC                  ; 﫨 墠稪 訡
43
                OUT (0xFE),A
801 savelij 44
                DEC A
45
                LD (gFenv),A
1026 savelij 46
                CALL GLUDIN                     ; 㤥    뫠 訡
801 savelij 47
                LD A,1
48
                LD (gFenv),A
1026 savelij 49
                JP RESTART                      ; १ HE GLUK
801 savelij 50
 
1026 savelij 51
; ᮧ ࠬ ᪠  640
801 savelij 52
RAM_640         LD HL,RESTART
53
                PUSH HL
952 savelij 54
CREATE_TRDRAM
1026 savelij 55
                LD HL,636*4                     ; RAM DISK  640 
56
                LD (SECFREE),HL                 ; ⠢ ६ ⢠ ᥪ஢  RAM DISK
952 savelij 57
                DI
801 savelij 58
 
952 savelij 59
        IFNDEF TESTEMUFDD
60
; test
1026 savelij 61
        PEC_ON M_SHADOW_BF
801 savelij 62
                LD A,RAM_RAMDISK+1
63
                LD BC,WIN_P2
64
                OUT (C),A
1026 savelij 65
                LD HL,0x8000
801 savelij 66
                LD D,H
67
                LD E,L
68
                INC DE
1026 savelij 69
                LD BC,0x0FFF
801 savelij 70
                LD (HL),L
1026 savelij 71
                LDIR                            ; ⨫ ࠭ TR-DOS ४ਨ
801 savelij 72
                LD HL,DSKINFO
1026 savelij 73
                LD DE,0x88E1
801 savelij 74
                LD C,DSK_END-DSKINFO
1026 savelij 75
                LDIR                            ; ७᫨ 蠡  9 ᥪ 
76
                LD A,ZXSTD_CPU2
801 savelij 77
                LD BC,WIN_P2
78
                OUT (C),A
1026 savelij 79
        PEC_OFF M_SHADOW_BF
952 savelij 80
; test
81
        ENDIF
82
 
801 savelij 83
                JP CREATE_TRD640
84
 
1026 savelij 85
;  NEOGS
86
RESETNGS        LD A,C_GRST
87
                OUT (GSCTR),A
801 savelij 88
                JP RESTART
89
 
1026 savelij 90
; file not found
801 savelij 91
FILE_NONE       LD IX,FILENONE
1026 savelij 92
        RST8 _WINW
801 savelij 93
                JP STUPID1
94
 
1026 savelij 95
; ஢ઠ 㠫쭮 ਢ
801 savelij 96
CMP_VIRTUAL     LD H,VIRT_REAL_DRIVE
97
                CALL READCMOS
98
                LD A,(DRV_SYM)
1026 savelij 99
                LD D,A                          ;  ⥪饣 ॠ쭮 ᪮
801 savelij 100
                LD A,L
101
                RRCA
102
                RRCA
1026 savelij 103
                AND 3                           ;  ॠ쭮 ᪮  CMOS
801 savelij 104
                CP D
105
                JR NZ,PRT_NONETRDOS
106
                LD IX,ERR_VIRTUAL
107
                JR PRT_NONETRDOS1
108
 
109
PRT_NONETRDOS   LD IX,NONETRDOS
1026 savelij 110
PRT_NONETRDOS1
111
        RST8 _WINW
801 savelij 112
                JR STUPID1
113
 
1026 savelij 114
; 뢮 
801 savelij 115
VIEW_HELP       LD IX,WIN_HELP
1026 savelij 116
        RST8 _WINW
801 savelij 117
VIEWHELP1       CALL PRINTTIME
118
                EI
119
                HALT
120
                BIT 5,(IY+1)
121
                CALL Z,CP_TIME_KOSHAK
122
                JR Z,VIEWHELP1
123
                RES 5,(IY+1)
124
                JR STUPID1
125
 
126
LDFDI_ERROR     LD IX,LDFDIERROR
1026 savelij 127
        RST8 _WINW
801 savelij 128
                JR STUPID1
129
 
130
_STUPID         LD IX,MSTUPID
131
                CALL DRAWWIN
132
                LD HL,_STUPID
133
                LD (DSTUPID),HL
134
STUPID1         LD SP,0
135
TEK_SP          EQU $-2
136
                CALL SET_7FFD_0
137
                EI
138
                CALL RESET_VG
139
                CALL EXIT4ERROR
1026 savelij 140
;               LD A,0xFF
801 savelij 141
;               LD (gFenv),A
142
;               CALL GLUDIN                     ;HL
143
;               LD A,1
144
;               LD (gFenv),A
145
                JP RESTART
146
 
1026 savelij 147
; 室  ᨪ 128
801 savelij 148
BAS128          CALL SYSTEM
149
                CALL MEMSET
150
                DI
151
                CALL INIT_LOADTAPE
152
                XOR A
153
                CALL SET_7FFD
154
                RST 0
155
 
1026 savelij 156
;  㪠⥫ 稪 TAPE
157
INIT_LOADTAPE
158
        PEC_ON M_SHADOW_BF
801 savelij 159
                LD BC,WIN_P2
160
                XOR A
161
                OUT (C),A
1026 savelij 162
                LD HL,0x8000
801 savelij 163
                LD (HL),A
164
                INC L
165
                LD (HL),A
166
                INC L
167
                LD (HL),A
168
                LD B,HIGH (WIN_A2)
1026 savelij 169
                LD A,0x7D
801 savelij 170
                OUT (C),A
1026 savelij 171
        PEC_OFF M_SHADOW_BF
801 savelij 172
                RET
173
 
1026 savelij 174
; 室  ᨪ 48
801 savelij 175
BAS48           CALL SYSTEM
176
                CALL MEMSET
177
                CALL INIT_LOADTAPE
1026 savelij 178
                LD A,0x30
801 savelij 179
                CALL SET_7FFD
180
                RST 0
181
 
1026 savelij 182
; 室  म
801 savelij 183
DOS128          CALL SYSTEM
184
                CALL MEMSET
185
                LD IX,0
186
                JP DOSIX
187
 
1026 savelij 188
;  ⪨ ࠭, ଠ஢ ࠬ᪠  ᪥ 
801 savelij 189
_KILLS          LD IX,MKILLS
1026 savelij 190
        RST8 _WINW
801 savelij 191
                JP _RULILKA
192
 
1026 savelij 193
;   basic 48  ⠭⭮ 訢  몫祭 ࡮ ०
801 savelij 194
BAS48STD        DI
195
                CALL SET_EMU_TAPE
196
                LD BC,PENT_CONF
1026 savelij 197
                LD A,0x14
801 savelij 198
                OUT (C),A
199
                LD BC,CONF_128
1026 savelij 200
                LD A,0x30
801 savelij 201
                OUT (C),A
1026 savelij 202
        PEC_ON M_SHADOW_BF
203
        ATMPORT WIN_A0,0x3F
204
        EVOPORT WIN_P0,0
801 savelij 205
                LD HL,0
206
                LD (HL),H
207
                INC L
208
                LD (HL),H
209
                INC L
210
                LD (HL),H
1026 savelij 211
        ATMPORT WIN_A0,ROM_BAS48_STD
212
        PEC_OFF M_SHADOW_BF
801 savelij 213
                JP 0
214
 
1026 savelij 215
;   basic 128  ⠭⭮ 訢  몫祭 ࡮ ०
801 savelij 216
BAS128STD       DI
217
                CALL SET_EMU_TAPE
218
                LD BC,PENT_CONF
1026 savelij 219
                LD A,0x14
801 savelij 220
                OUT (C),A
1026 savelij 221
        PEC_ON M_SHADOW_BF
222
        ATMPORT WIN_A0,0x3F
223
        EVOPORT WIN_P0,0
801 savelij 224
                LD HL,0
225
                LD (HL),H
226
                INC L
227
                LD (HL),H
228
                INC L
229
                LD (HL),H
1026 savelij 230
        ATMPORT WIN_A0,ROM_BAS48_128
801 savelij 231
                LD BC,CONF_128
232
                XOR A
233
                OUT (C),A
1026 savelij 234
        ATMPORT WIN_A0,ROM_BAS128_STD
235
        PEC_OFF M_SHADOW_BF
801 savelij 236
                JP 0
237
 
1026 savelij 238
; HDD BOOT
801 savelij 239
HDD_BOOT        LD HL,ADR_CAT
240
                PUSH HL
1026 savelij 241
        RST8 _COM_DEV,_COMHDDN,_DEV_INIT
801 savelij 242
                LD A,H
243
                POP HL
244
                AND A
245
                JR NZ,HDDBOOT1
246
HDDBOOT4        PUSH HL
247
                CALL MEMSET
248
                POP DE
249
                PUSH DE
250
                LD HL,HDDBOOT2
251
                LD BC,EHDDBOOT2-HDDBOOT2
252
                LDIR
253
                RET
254
 
255
HDDBOOT1        LD IX,HDDBOOT_ERROR
1026 savelij 256
        RST8 _WINW
801 savelij 257
                JP STUPID1
258
 
1026 savelij 259
HDDBOOT2        LD HL,0x6000                    ; 㧨 㤥    
260
                PUSH HL                         ; ᫥ 㧪 ᪠ 㦥
801 savelij 261
                LD BC,0
262
                LD DE,2
1026 savelij 263
                LD A,0x30
264
        RST8 _COM_DEV,_COMHDDN,_DEV_READ
801 savelij 265
                RET
266
 
1026 savelij 267
                LD DE,2                         ; 㧨 稭  ᥪ 2  LBA
268
                LD BC,0xFF00+PN_1F6
269
                LD A,0xE0                       ; ࠫ   lba ०
801 savelij 270
                OUT (C),A
271
                LD C,PN_1F5
272
                OUT (C),D
273
                LD C,PN_1F4
274
                OUT (C),D
275
                LD C,PN_1F3
276
                OUT (C),E
277
                LD C,PN_1F2
1026 savelij 278
                LD A,0x30                       ; 㧨 ᥪ஢   뫮
801 savelij 279
                OUT (C),A
1026 savelij 280
                EX AF,AF'                       ; ⠫ ⢮ ᥪ஢ 㧪
801 savelij 281
                LD C,PN_1F7
1026 savelij 282
                LD A,0x20
283
                OUT (C),A                       ;  ⥭
801 savelij 284
                LD C,PN_1F7
285
HDDRD1_         IN A,(C)
1026 savelij 286
                AND 0x88
801 savelij 287
                CP 8
288
                JR NZ,HDDRD1_
289
                EX AF,AF'
290
HDDRD2_         EX AF,AF'
291
                XOR A
292
                LD C,PN_1F0
293
READSC1_        IN E,(C)
294
                INC C
295
                IN D,(C)
296
                DEC C
297
                LD (HL),E
298
                INC HL
299
                LD (HL),D
300
                INC HL
301
                DEC A
302
                JR NZ,READSC1_
303
                LD C,PN_1F7
304
HDDRD3_         IN A,(C)
1026 savelij 305
                AND 0x80
801 savelij 306
                JR NZ,HDDRD3_
307
                EX AF,AF'
308
                DEC A
309
                JR NZ,HDDRD2_
310
                RET
311
EHDDBOOT2
312
 
313
                include "hdd_cd_boot.a80"
314
 
315
HDDRDLN EQU $-HDDREAD
316
 
1026 savelij 317
; CD BOOT
801 savelij 318
CDBOOT  XOR A
319
        CALL CLS
320
        CALL MEMSET
321
        CALL HDDBINI
322
        EI
323
        JP CDBOOTGO
324
 
1026 savelij 325
UMOUNTIMAGE
326
        RST8 _MOUNTER,_GET_VIRT_BITS
327
                AND 0x0F
801 savelij 328
                JP Z,RESTART
329
                LD IX,WDISMOUNT
1026 savelij 330
        RST8 _WINW
331
                JP _RULILKA                     ; 頥  饬 ࠢ
801 savelij 332
 
1067 savelij 333
; ஢  ᪮
334
DISMOUNT_ALL    LD A,3
335
        RST8 _MOUNTER,_CLOSEMOUNT
336
                LD A,2
337
        RST8 _MOUNTER,_CLOSEMOUNT
338
                LD A,1
339
        RST8 _MOUNTER,_CLOSEMOUNT
801 savelij 340
DISMOUNT_A      XOR A
1026 savelij 341
DISMOUNT_DRV
342
        RST8 _MOUNTER,_CLOSEMOUNT
801 savelij 343
                JP RESTART
344
 
345
DISMOUNT_B      LD A,1
346
                JR DISMOUNT_DRV
347
 
348
DISMOUNT_C      LD A,2
349
                JR DISMOUNT_DRV
350
 
351
DISMOUNT_D      LD A,3
352
                JR DISMOUNT_DRV
353
 
1026 savelij 354
;  CMOS
355
RESET_CMOS
356
        RST8 _CMOS_RW,_CLEAR_CMOS
801 savelij 357
                CALL SET_MODES
358
                JP RESTART
359
 
1026 savelij 360
; ⠭ প  । HDD
801 savelij 361
HDDTIMEOUT      LD H,HDD_TIMEOUT
362
                CALL READCMOS
875 savelij 363
                LD E,A
1026 savelij 364
                AND 0x0F
801 savelij 365
                INC A
366
                CP 10
367
                JR C,HDDTIMEOUT1
368
                XOR A
875 savelij 369
HDDTIMEOUT1     LD D,A
370
                LD A,E
1026 savelij 371
                AND 0xF0
875 savelij 372
                OR D
373
                LD L,A
801 savelij 374
                CALL WRITECMOS
1026 savelij 375
                AND 0x0F
801 savelij 376
                ADD A,'0'
377
                LD (TXT_HDDTIMEOUT),A
378
                JR REPRINT_MENU
379
 
1026 savelij 380
; ⠭ প ᪠ screensaver
875 savelij 381
SCRSAVTIMEOUT   LD H,HDD_TIMEOUT
382
                CALL READCMOS
383
                LD E,A
1026 savelij 384
                AND 0xF0
385
                ADD A,0x10
386
                CP 0xA0
875 savelij 387
                JR C,.L0
388
                XOR A
389
.L0             LD D,A
390
                LD A,E
1026 savelij 391
                AND 0x0F
875 savelij 392
                OR D
393
                LD L,A
394
                CALL WRITECMOS
1026 savelij 395
                AND 0xF0
875 savelij 396
                RRCA
397
                RRCA
398
                RRCA
399
                RRCA
1026 savelij 400
                LD (SCRSAV.TIMEOUT),A
875 savelij 401
                ADD A,'0'
402
                LD (TXT_SCRSAVDELAY),A
403
                JR REPRINT_MENU
404
 
1026 savelij 405
; ⠭ ࠧ襭/饭 窨 
801 savelij 406
SOUND_KEYS      LD C,M_SOUNDKEYS
407
                LD HL,SNDKEYS_STAT
408
SET_MENU        PUSH HL
409
                LD H,CMOS_BYTE_01
410
SET_MENU1       CALL READCMOS
411
                XOR C
412
                LD L,A
413
                CALL WRITECMOS
414
                AND C
415
                POP HL
416
                CALL SET_ONOFF
417
REPRINT_MENU    LD HL,SETUPERTXT
1026 savelij 418
        RST8 _PRINT_MESSAGE
801 savelij 419
                CALL REST_COLCURS
1026 savelij 420
        RST8 _COM_DEV,_CONTROL_SD
801 savelij 421
                JP _RULILKA
422
 
1026 savelij 423
; ⠭ ࠧ襭/饭 㯠  SD  NEOGS
801 savelij 424
ACS_SDNGS       LD C,M_ACCESSSDG
425
                LD HL,ACCSSDG_STAT
426
                JR SET_MENU
427
 
1026 savelij 428
; ⠭ 롮 ࠩ ਭ
801 savelij 429
AYPRN_SETUP     LD C,M_TYPE_FONT
430
                LD HL,ETXT_AYPRINTER
431
                JR SET_MENU
432
 
1026 savelij 433
; 祭/몫祭  TAP 䠩  롮  FILE BROWSER
801 savelij 434
AUTO_TAPE       LD C,M_AUTO_TAPE
435
                LD HL,TXT_AUTOTAPE
436
                PUSH HL
437
                LD H,CMOS_BYTE_00
438
                JR SET_MENU1
439
 
1026 savelij 440
;  १ HONEY COMANDER
441
; 祭/몫祭 १
801 savelij 442
REZID_SETUP     LD C,M_REZIDENT
443
                LD HL,TXT_REZIDENT
444
                JR SET_MENU
838 savelij 445
 
1026 savelij 446
; 祭/몫祭  १  ᪥
838 savelij 447
KILL_REZID      LD C,M_KILL_REZIDENT
448
                LD HL,TXT_KILLREZID
449
                PUSH HL
450
                LD H,CMOS_BYTE_03
451
                JR SET_MENU1
801 savelij 452
 
1026 savelij 453
; ⠭ । 뢮  SETUP
801 savelij 454
SETUPM          LD IX,SETUPER
455
                LD H,CMOS_BYTE_01
456
                CALL READCMOS
457
                LD B,A
458
                AND M_SOUNDKEYS
459
                LD HL,SNDKEYS_STAT
460
                CALL SET_ONOFF
461
                LD A,B
462
                AND M_ACCESSSDG
463
                LD HL,ACCSSDG_STAT
464
                CALL SET_ONOFF
465
                LD H,CMOS_BYTE_00
466
                CALL READCMOS
467
                AND M_AUTO_TAPE
468
                LD HL,TXT_AUTOTAPE
469
                CALL SET_ONOFF
470
                LD H,HDD_TIMEOUT
471
                CALL READCMOS
875 savelij 472
                LD D,A
1026 savelij 473
                AND 0x0F
801 savelij 474
                ADD A,'0'
475
                LD (TXT_HDDTIMEOUT),A
875 savelij 476
                LD A,D
1026 savelij 477
                AND 0xF0
875 savelij 478
                RRCA
479
                RRCA
480
                RRCA
481
                RRCA
482
                ADD A,'0'
1026 savelij 483
                LD (TXT_SCRSAVDELAY),A
484
        RST8 _WINW
801 savelij 485
                JP _RULILKA
486
 
1026 savelij 487
; ⠭ ࠧ襭/饭 樨 
801 savelij 488
SET_EMU_TAPE    LD H,CMOS_BYTE_00
489
                CALL READCMOS
490
                AND M_EMUL_TAPE
491
                RET Z
1026 savelij 492
                LD BC,BREAK_LOW
801 savelij 493
                LD A,LOW (ADRBRK_EMUTAP)
494
                OUT (C),A
1026 savelij 495
                LD B,HIGH (BREAK_HIGH)
801 savelij 496
                LD A,HIGH (ADRBRK_EMUTAP)
497
                OUT (C),A
1026 savelij 498
        PEC_ON M_BREAK_BF
801 savelij 499
                RET
875 savelij 500
 
501
                include sdcardboot.a80
502
 
503
SONGLN          CALL START_SONGLN
504
                JP RESTART
505
 
506
START_SONGLN    DI
507
                PUSH IX
508
                PUSH IY
1026 savelij 509
                LD A,0x11
875 savelij 510
                CALL SET_7FFD
1026 savelij 511
                LD A,0x10
875 savelij 512
                CALL SET_EFF7
1026 savelij 513
                LD HL,0x4000
514
                LD DE,0xE000
515
                LD BC,0x1B00
875 savelij 516
                LDIR
1026 savelij 517
                LD HL,0xD000
518
                LD DE,0xD001
519
                LD BC,0x1000
875 savelij 520
                LD (HL),0
521
                LDIR
522
SONGLN1         XOR A
1026 savelij 523
                IN A,(0xFE)
875 savelij 524
                CPL
1026 savelij 525
                AND 0x1F
875 savelij 526
                JR NZ,SONGLN1
1026 savelij 527
        PEC_ON M_SHADOW_BF
528
        EVOPORT WIN_A0,ROM_RST82
875 savelij 529
                CALL UNP_SONGLN
1026 savelij 530
        EVOPORT WIN_A0,ROM_BAS48|0x80
531
        PEC_OFF M_SHADOW_BF
532
                CALL 0xC000
533
                LD HL,0xE000
534
                LD DE,0x4000
535
                LD BC,0x1B00
875 savelij 536
                LDIR
1026 savelij 537
                LD HL,0xC000
538
                LD DE,0xC001
539
                LD BC,0x3FFF
875 savelij 540
                LD (HL),0
541
                LDIR
1026 savelij 542
                LD A,0x10
875 savelij 543
                CALL SET_7FFD
544
                XOR A
545
                CALL SET_EFF7
546
                POP IY
547
                POP IX
548
                RET