Subversion Repositories ngs

Rev

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

Rev Author Line No. Line
105 savelij 1
 
182 savelij 2
; LAST UPDATE 20.05.2025 savelij
105 savelij 3
 
112 savelij 4
                include macros.a80
163 savelij 5
                include ports_ngs.a80
165 savelij 6
                include local_define.a80
105 savelij 7
 
163 savelij 8
                include local_macros.a80
9
                include vers.a80
105 savelij 10
 
163 savelij 11
                include macros_sp.a80
12
                include dss.a80
13
                include bios_sp.a80
14
                include define_sp.a80
15
                include ports_sp.a80
105 savelij 16
 
163 savelij 17
GSCOD           EQU 0x8000                      ;  㤠 뢠   
105 savelij 18
 
163 savelij 19
                ORG ADR_START
105 savelij 20
START           DI
163 savelij 21
        IFDEF _SPRINTER
22
                CALL CLS
23
        DE_ADR_SCR ((32-(EMESS24-MESS24))/2),15
24
                LD HL,MESS24
25
                CALL PRINT
26
        DE_ADR_SCR 4,9
27
                LD HL,MESS28
28
                CALL PRINT
29
                XOR A
30
                CALL DETECT_ISA
31
                CALL CHECK_ISA
32
                JR NC,.L1
33
                CALL CLOSE_ISA
34
                LD A,1
35
                CALL DETECT_ISA
36
                JR NC,.L1
37
        DE_ADR_SCR 8,8
38
                LD HL,NOT_FOUND_ISA
39
                CALL PRINT
40
                JP NO_ISA
41
        ELSE
42
                LD HL,0x0110
43
                LD (0x5C09),HL                  ; ⠭ ६ 
44
                RES 3,(IY+48)
45
                RES 5,(IY+1)
46
        ENDIF
47
.L1             LD (OLD_STACK),SP               ; ࠭ ⥪
105 savelij 48
                LD SP,0
142 savelij 49
OLD_STACK       EQU $-2
105 savelij 50
 
163 savelij 51
; 㤥ঠ  ᪥ CS =  Turbo off
52
;               LD A,0xFE
53
;               IN A,(0xFE)
54
;               RRA
55
;               LD A,0
56
;               JR C,$+4
57
;               LD A,0x10
58
;               LD BC,0xEFF7
59
;               OUT (C),A
105 savelij 60
 
163 savelij 61
; 㤥ঠ  ᪥ SS = reset NeoGS
62
        IFDEF _SPRINTER
63
; TODO  祭 祩   ப 
64
        ELSE
65
                LD A,0x7F
66
                IN A,(0xFE)
105 savelij 67
                RRA
68
                RRA
69
                JR NC,LOOP21
163 savelij 70
        ENDIF
105 savelij 71
 
163 savelij 72
;   GS/NeoGS
73
                LD B,0x30                       ;  ।   ᯮ
74
                                                ;  0x1D  ࠬ஬ =0
75
        OUT_GSDAT 0                             ;  ⢥ 0x30 뢠
76
        OUT_GSCOM 0x1D
105 savelij 77
LOOP22          EI
78
                HALT
79
                DI
80
                DEC B
163 savelij 81
                JR Z,LOOP21                     ; 稪 㫨,    ?
82
        IN_GSCOM                                ;    
105 savelij 83
                RRA
84
                JR C,LOOP22
163 savelij 85
        IN_GSDAT                                ;   ᨫ, ⠥ ⢥   
86
                                                ; ⪠  䫠   
87
        OUT_GSDAT 0                             ;  ࢮ ᪥  0xFF   ய祭
88
                LD B,0x30                       ;  ⢥ 0x30 뢠
89
        OUT_GSCOM 0xFF
105 savelij 90
LOOP001         EI
91
                HALT
92
                DI
93
                DEC B
163 savelij 94
                JR Z,LOOP21                     ; 稪 㫨, ஡㥬 १ 
95
        IN_GSCOM
105 savelij 96
                RRA
97
                JR C,LOOP001
163 savelij 98
                JR LOOP13                       ;  ⢥⨫  , 砥  ७ 
105 savelij 99
 
163 savelij 100
; ਭ㤨⥫ १ NeoGS
101
LOOP21
102
        OUT_GSCTR M_DBIT                        ;   
105 savelij 103
                EI
104
                HALT
105
                HALT
106
                DI
163 savelij 107
        OUT_GSCOM 0xF3                          ; 宫 १  訢
108
                LD B,0x30                       ;  0x30 뢠
105 savelij 109
LOOP25          EI
110
                HALT
111
                HALT
112
                DI
113
                DEC B
163 savelij 114
                JP Z,NO__GS                     ;  ⢥,  
115
        IN_GSCOM
105 savelij 116
                RRA
163 savelij 117
                JR C,LOOP25                     ;   , த
118
; 㧪     NeoGS
119
RST_NGS_CODE                                    ;  ⢠ ࠭ 
120
        OUT_GSCOM 0x23                          ;  ।   ࠭  뢠
112 savelij 121
                CALL WC
163 savelij 122
        IN_GSDAT
123
                OR 0x3F
112 savelij 124
                LD D,A
163 savelij 125
                LD E,MPAG                       ; 砥 ⠭⭮  訢
126
                CALL OUTPORT                    ; ࠭    㧪 ७ 
127
                                                ; ⠭묨 ।⢠ 㧨    
128
                LD DE,FAT_END - GO_YES
129
                LD A,E
130
        OUT_GSDAT_A
131
        OUT_GSCOM 0x14
105 savelij 132
                CALL WC
163 savelij 133
                LD A,D
134
        OUT_GSDAT_A
105 savelij 135
                CALL WD
163 savelij 136
        OUT_GSDAT LOW (GSCOD)
105 savelij 137
                CALL WD
163 savelij 138
        OUT_GSDAT HIGH(GSCOD)
105 savelij 139
                CALL WD
140
                LD HL,GO_YES
163 savelij 141
.LODCOD         LD A,(HL)
142
                INC HL
143
        OUT_GSDAT_A
105 savelij 144
                CALL WD
145
                DEC DE
146
                LD A,D
147
                OR E
163 savelij 148
                JR NZ,.LODCOD
149
;  㧨, ᪠
150
        OUT_GSDAT LOW (GSCOD)
151
        OUT_GSCOM 0x13
105 savelij 152
                CALL WC
163 savelij 153
        OUT_GSDAT HIGH (GSCOD)
105 savelij 154
                EI
155
                HALT
156
                HALT
163 savelij 157
                DI                              ;  2 뢠 ᪠ 
105 savelij 158
LOOP13          LD A,7
163 savelij 159
                CALL CLS                        ; ⨫ ࠭
160
        DE_ADR_SCR 0,8
161
                LD HL,MESS20                    ;  ⥪  ᪥  SD 窥
105 savelij 162
                CALL PRINT
163 savelij 163
                                                ;   ஢ન    
164
        OUT_GSDAT 0x1D
165
        OUT_GSCOM 0x1F
105 savelij 166
                LD B,0
163 savelij 167
                CALL WAITGS                     ;  ⢥ 稢 
168
        IN_GSDAT                                ; ⠥ ⢥
169
                CP 0x8B
170
                JP Z,RST_NGS_CODE               ; ᫨ 0x8B  ⢥⨫ ⠭⭠ 訢
165 savelij 171
                CP PLAYER_OK
163 savelij 172
                JP Z,Warm                       ; ᫨ ⢥ 0x77,  ⢥⨫ ७ 
165 savelij 173
                CP SD_NOT_FOUND
163 savelij 174
                JP NZ,LOOP17                    ; SD  ?
105 savelij 175
                LD A,7
176
                CALL CLS
177
                LD HL,MESS13
163 savelij 178
        DE_ADR_SCR 0,16
105 savelij 179
LOOP20          CALL PRINT
180
                LD HL,MESS15
163 savelij 181
        DE_ADR_SCR 0,18
105 savelij 182
                CALL PRINT
183
                LD HL,MESS16
163 savelij 184
        DE_ADR_SCR 0,20
105 savelij 185
                CALL PRINT
186
                JR LOOP16
187
 
165 savelij 188
LOOP17          CP FAT_NOT_FOUND
163 savelij 189
                JR NZ,LOOP26                    ;  SD  FAT  㦥
105 savelij 190
                LD A,7
191
                CALL CLS
192
                LD HL,MESS14
163 savelij 193
        DE_ADR_SCR 0,16
105 savelij 194
                JR LOOP20
195
 
165 savelij 196
LOOP26          CP FILES_NOT_FOUND
105 savelij 197
                JR NZ,LOOP27
198
                LD A,7
199
                CALL CLS
200
                LD HL,MESS23
163 savelij 201
        DE_ADR_SCR 0,16
105 savelij 202
                JR LOOP20
203
 
165 savelij 204
LOOP27          CP NEOGS_ERROR
181 savelij 205
                JP NZ,RST_NGS_CODE              ;  GS ண ⨯
105 savelij 206
                JP NO_NGS
207
 
163 savelij 208
LOOP16
209
        IFDEF _SPRINTER
210
                EI
211
        SPDSS DSSF.SCANKEY
212
                JR Z,LOOP16
213
        ELSE
214
                EI
158 savelij 215
                HALT
216
                DI
217
                BIT 5,(IY+1)
105 savelij 218
                JR Z,LOOP16
163 savelij 219
                LD A,(IY-0x32)
105 savelij 220
                RES 5,(IY+1)
163 savelij 221
        ENDIF
222
                CP 0x0D
105 savelij 223
                JP Z,START
163 savelij 224
                CP 0x20
105 savelij 225
                JP Z,RESCOMP
226
                JR LOOP16
227
 
181 savelij 228
Warm
229
        IFDEF _SPRINTER
230
        SPBIOS BIOSF.FN_TURBO,,2
231
        ENDIF
232
                LD A,7
163 savelij 233
                CALL CLS                        ; ⪠ ࠭
165 savelij 234
                LD A,VARP_CHIP_TYPE
235
                CALL GET_VTS
163 savelij 236
                CALL MORDALL                    ; 뢮 ᭮ ᥩ
165 savelij 237
                LD A,__TXT_COUNT_FILES
163 savelij 238
        DE_ADR_SCR 13,0
239
                CALL READ5BT                    ; 뢮 - 
240
                CALL NAMELNG                    ; 뢮  ⥪饣 䠩
241
LOOP_3          CALL DAT_VTS                    ; 뢮  ⥪饣 䠩
165 savelij 242
NO_PRESS_KEY
243
        LD_A VARP_FLAGS
105 savelij 244
                CALL GET_VTS
165 savelij 245
                BIT B_SD_LOST,A
105 savelij 246
                JP NZ,EJECT
247
;               AND 5
248
;               CP 5
249
;               JR Z,LOOPM
250
                CALL FGETVTS
251
                LD A,H
252
                PUSH AF
165 savelij 253
                BIT B_NEW_FILE,A
105 savelij 254
                CALL NZ,NAMELNG
255
                POP AF
165 savelij 256
                LD A,VARP_FILE_TYPE
257
                CALL GET_VTS
258
                CP FILE_MP3
105 savelij 259
                JR NZ,LOOPM
165 savelij 260
; த  MP3
163 savelij 261
        DE_ADR_SCR 11,11
262
                CALL READSEC                    ; ६ ࠭
105 savelij 263
                CALL BITRATE
264
                JR LOOP14
265
 
165 savelij 266
; த  MOD
105 savelij 267
LOOPM           CALL POSMOD
163 savelij 268
LOOP14
269
        IFDEF _SPRINTER
270
                EI
271
        SPDSS DSSF.SCANKEY
165 savelij 272
                JR Z,NO_PRESS_KEY
163 savelij 273
        ELSE
274
                EI
105 savelij 275
                HALT
276
                DI
277
                BIT 5,(IY+1)
165 savelij 278
                JR Z,NO_PRESS_KEY
163 savelij 279
                RES 5,(IY+1)
280
                LD A,(IY-0x32)
281
        ENDIF
105 savelij 282
                LD B,A
165 savelij 283
                LD A,VARP_FILE_TYPE
284
                CALL GET_VTS
285
                CP FILE_MP3
105 savelij 286
                LD HL,MODCOM
112 savelij 287
                JR NZ,LOOP14_1
105 savelij 288
                LD HL,MP3COM
112 savelij 289
LOOP14_1        LD DE,4
290
LOOP14_2        LD A,(HL)
105 savelij 291
                AND A
165 savelij 292
                JR Z,NO_PRESS_KEY
105 savelij 293
                CP B
294
                JR Z,RDCOMM
295
                ADD HL,DE
112 savelij 296
                JR LOOP14_2
105 savelij 297
 
298
RDCOMM          INC HL
299
                LD A,(HL)
300
                INC HL
301
                LD E,(HL)
302
                INC HL
303
                LD D,(HL)
304
                EX DE,HL
305
                JP (HL)
306
 
163 savelij 307
MP3COM          DB "6",0x09
105 savelij 308
                DW EXE1
163 savelij 309
                DB "7",0x08
105 savelij 310
                DW EXE1
163 savelij 311
                DB "8",0x07
105 savelij 312
                DW EXE1
163 savelij 313
                DB "9",0x06
105 savelij 314
                DW EXE2
163 savelij 315
                DB 0x0D,0x0A
105 savelij 316
                DW EXE1
163 savelij 317
                DB ":",0x17
105 savelij 318
                DW EXE1
163 savelij 319
;               DB "q",0x03
112 savelij 320
;               DW EXE3
163 savelij 321
;               DB "a",0x01
112 savelij 322
;               DW EXE3
163 savelij 323
;               DB "w",0x0C
112 savelij 324
;               DW EXE3
163 savelij 325
;               DB "s",0x04
112 savelij 326
;               DW EXE3
163 savelij 327
;               DB "e",0x30
112 savelij 328
;               DW EXE3
163 savelij 329
;               DB "d",0x10
112 savelij 330
;               DW EXE3
163 savelij 331
;               DB "r",0xC0
112 savelij 332
;               DW EXE3
163 savelij 333
;               DB "f",0x40
112 savelij 334
;               DW EXE3
105 savelij 335
 
163 savelij 336
MODCOM          DB "1",0x01
105 savelij 337
                DW EXE1
163 savelij 338
                DB "2",0x02
105 savelij 339
                DW EXE4
163 savelij 340
                DB "3",0x03
105 savelij 341
                DW EXE4
163 savelij 342
                DB "4",0x04
105 savelij 343
                DW EXE4
163 savelij 344
                DB "5",0x05
105 savelij 345
                DW EXE1
163 savelij 346
                DB "!",0x18
105 savelij 347
                DW EXE1
163 savelij 348
                DB "%",0x19
105 savelij 349
                DW EXE1
163 savelij 350
                DB "0",0x00
105 savelij 351
                DW EJECT
163 savelij 352
                DB " ",0x00
105 savelij 353
                DW RESCOMP
354
                DB 0
355
 
163 savelij 356
EXE1
357
        OUT_GSDAT_A
358
        OUT_GSCOM 0x1F
105 savelij 359
                CALL WC
163 savelij 360
                JP LOOP_3
105 savelij 361
 
163 savelij 362
EXE2
363
        OUT_GSDAT_A
364
        OUT_GSCOM 0x1F
105 savelij 365
                CALL WC
366
                CALL PRTTBL
163 savelij 367
                JP LOOP_3
105 savelij 368
 
369
EXE3            PUSH AF
163 savelij 370
        OUT_GSDAT 0x1A
371
        OUT_GSCOM 0x1F
105 savelij 372
                CALL WC
373
                POP AF
163 savelij 374
        OUT_GSDAT_A
105 savelij 375
                CALL PRTTBL
165 savelij 376
                JP NO_PRESS_KEY
105 savelij 377
 
163 savelij 378
EXE4
379
        OUT_GSDAT_A
380
        OUT_GSCOM 0x1F
105 savelij 381
                CALL WC
165 savelij 382
                JP NO_PRESS_KEY
105 savelij 383
 
163 savelij 384
;  ᪠   
105 savelij 385
RESCOMP         CALL NANYKEY
163 savelij 386
        IFDEF _SPRINTER
387
                CALL CLS
388
                CALL CLOSE_ISA
389
        SPDSS DSSF.EXIT
390
        ELSE
105 savelij 391
                XOR A
163 savelij 392
                LD BC,0x7FFD
105 savelij 393
                OUT (C),A
394
                JP 0
163 savelij 395
        ENDIF
105 savelij 396
 
397
WAITGS          LD E,B
398
                LD D,0
399
                LD HL,VENTIL
400
                ADD HL,DE
401
                LD A,(HL)
163 savelij 402
        DE_ADR_SCR 27,8
105 savelij 403
                CALL PRISYM
404
                LD C,5
163 savelij 405
.L1             EI
105 savelij 406
                HALT
407
                DI
408
                DEC C
163 savelij 409
                JR NZ,.L1
410
        IN_GSCOM
105 savelij 411
                RRA
412
                RET NC
413
                INC B
163 savelij 414
                RES 2,B
105 savelij 415
                JR WAITGS
416
 
163 savelij 417
; ᯥ⪠  ४   ࠥ 䠩
165 savelij 418
NAMELNG         LD A,__TXT_CURRENT_FILE
163 savelij 419
        DE_ADR_SCR 13,10
420
                CALL READ5BT                    ; ⥪騩  ४
421
                LD HL,0x8000
422
        OUT_GSDAT 0x11
423
        OUT_GSCOM 0x1F
424
                CALL WC                         ;   
105 savelij 425
                LD A,H
163 savelij 426
        OUT_GSDAT_A
105 savelij 427
                CALL WD
428
                LD A,L
163 savelij 429
        OUT_GSDAT_A
105 savelij 430
                LD HL,OPISAT
431
                LD E,0
432
                PUSH HL
433
                CALL INI_E
163 savelij 434
        IFDEF _SPRINTER
435
        DE_ADR_SCR 0,16
436
        SPBIOS BIOSF.LP_PRINT_SYM,78,' '
437
        DE_ADR_SCR 0,17
438
        SPBIOS BIOSF.LP_PRINT_SYM,78,' '
439
        DE_ADR_SCR 0,18
440
        SPBIOS BIOSF.LP_PRINT_SYM,78,' '
441
        DE_ADR_SCR 0,19
442
        SPBIOS BIOSF.LP_PRINT_SYM,78,' '
443
        ELSE
444
                LD HL,0x5000
105 savelij 445
                LD D,H
446
                LD E,L
163 savelij 447
                LD BC,0x07FF
105 savelij 448
                INC E
449
                LD (HL),L
450
                LDIR
163 savelij 451
        ENDIF
105 savelij 452
                POP HL
163 savelij 453
                LD B,0x20
454
        DE_ADR_SCR 0,16
105 savelij 455
                CALL PRINT_B
163 savelij 456
                LD B,0x20
457
        DE_ADR_SCR 0,17
105 savelij 458
                CALL PRINT_B
163 savelij 459
                LD B,0x20
460
        DE_ADR_SCR 0,18
105 savelij 461
                CALL PRINT_B
163 savelij 462
                LD B,0x20
463
        DE_ADR_SCR 0,19
105 savelij 464
                CALL PRINT_B
163 savelij 465
                LD B,0x20
466
        DE_ADR_SCR 0,20
105 savelij 467
                CALL PRINT_B
163 savelij 468
                LD B,0x20
469
        DE_ADR_SCR 0,21
105 savelij 470
                CALL PRINT_B
163 savelij 471
                LD B,0x20
472
        DE_ADR_SCR 0,22
105 savelij 473
                CALL PRINT_B
163 savelij 474
                LD B,0x20
475
        DE_ADR_SCR 0,23
105 savelij 476
                CALL PRINT_B
477
                JP MORDAR
478
 
163 savelij 479
DAT_VTS         CALL FGETVTS            ;  䫠 
480
        DE_ADR_SCR 16,13
165 savelij 481
                LD A,VARP_FILE_TYPE
482
                CALL GET_VTS
483
                CP FILE_MP3
163 savelij 484
                RET NZ                  ;  MOD
165 savelij 485
                BIT B_ENABLE_TEMBR,H
486
                LD A,'+'
163 savelij 487
                JR NZ,.L1
165 savelij 488
                LD A,'-'
163 savelij 489
.L1             CALL PRISYM             ; 뢮  TREBLE/BASS
165 savelij 490
                BIT B_SURROUND,H
491
                LD A,'+'
163 savelij 492
                JR NZ,.L2
165 savelij 493
                LD A,'-'
163 savelij 494
.L2
495
        DE_ADR_SCR 16,12
496
                CALL PRISYM             ; 뢮  VIRTUAL SURROUND
165 savelij 497
                BIT B_MUTE,H
498
                LD A,'+'
163 savelij 499
                JR NZ,.L3
165 savelij 500
                LD A,'-'
163 savelij 501
.L3
502
        DE_ADR_SCR 31,14
503
                CALL PRISYM             ; 뢮  MUTE ON/OFF
105 savelij 504
                LD A,L
163 savelij 505
        DE_ADR_SCR 16,14
105 savelij 506
                CALL PRIHEX
163 savelij 507
; 뢮  SOFT/HARD RESET
165 savelij 508
                BIT B_TYPE_RESET,H
509
                LD HL,MESS16 + 2
105 savelij 510
                JR Z,DATVTS1
511
                RES 5,(HL)
512
                INC HL
513
                RES 5,(HL)
514
                INC HL
515
                RES 5,(HL)
516
                INC HL
517
                RES 5,(HL)
518
                JR DATVTS2
519
 
520
DATVTS1         SET 5,(HL)
521
                INC HL
522
                SET 5,(HL)
523
                INC HL
524
                SET 5,(HL)
525
                INC HL
526
                SET 5,(HL)
527
DATVTS2         LD HL,MESS16
163 savelij 528
        DE_ADR_SCR 20,0
105 savelij 529
                CALL PRINT
163 savelij 530
; 祭  ᯥ⪠  ⥬஡
112 savelij 531
PRTTBL         
532
;               CALL FGETVTS
533
;               BIT 3,H
534
;               JR Z,EMPTSTR
535
;               BIT 7,H
536
;               JR Z,EMPTSTR
163 savelij 537
;               LD A,0x1B
112 savelij 538
;               OUT (GSDAT),A
163 savelij 539
;               LD A,0x1F
112 savelij 540
;               OUT (GSCOM),A
541
;               CALL WC
163 savelij 542
;               LD HL,OPISAT+0x0100
112 savelij 543
;               LD E,8
544
;               PUSH HL
545
;               CALL INI_E
163 savelij 546
;               LD DE,0x48B1
112 savelij 547
;               LD B,2
548
;               POP HL
549
;               CALL PRINT_B
550
;               LD A,"0"
551
;               CALL PRISYM
552
;               LD A,"0"
553
;               CALL PRISYM
554
;               LD A,"0"
555
;               CALL PRISYM
556
;               LD A,"/"
557
;               CALL PRISYM
558
;               LD B,2
559
;               CALL PRINT_B
560
;               INC E
561
;               LD B,2
562
;               CALL PRINT_B
563
;               LD A,"0"
564
;               CALL PRISYM
565
;               LD A,"/"
566
;               CALL PRISYM
567
;               LD B,2
568
;               JP PRINT_B
105 savelij 569
 
163 savelij 570
;  ⮩ ப
105 savelij 571
EMPTSTR         LD HL,EMPT16+1
163 savelij 572
        DE_ADR_SCR 17,13
105 savelij 573
                JP PRINT
574
 
163 savelij 575
; ᯥ⪠  祣  ࠥ
105 savelij 576
BITRAT1         LD HL,EMPT16+2
163 savelij 577
        DE_ADR_SCR 22,10
105 savelij 578
                PUSH HL
579
                LD B,5
580
                CALL PRINT_B
163 savelij 581
        DE_ADR_SCR 24,11
105 savelij 582
                LD B,3
583
                POP HL
584
                PUSH HL
585
                CALL PRINT_B
586
                POP HL
163 savelij 587
                LD B,0x0C
588
        DE_ADR_SCR 20,9
105 savelij 589
                JP PRINT_B
590
 
163 savelij 591
;  MP3 ३
592
BITRATE
593
        OUT_GSDAT 0x1C
594
        OUT_GSCOM 0x1F
105 savelij 595
                CALL WC
596
                CALL WN
163 savelij 597
        IN_GSDAT
105 savelij 598
                LD B,A
599
                CALL WN
163 savelij 600
        IN_GSDAT
105 savelij 601
                LD C,A
602
                LD A,B
163 savelij 603
                AND 0xE0
105 savelij 604
                CP %10100000
605
                JR Z,BITRAT1
606
                LD A,C
607
                AND 3
608
                LD L,A
609
                ADD A,A
610
                ADD A,A
611
                ADD A,L
612
                LD L,A
613
                LD H,0
614
                LD A,C
615
                RRCA
616
                RRCA
617
                AND 3
618
                LD DE,SR0
619
                JR Z,BITRAT3
620
                DEC A
621
                LD DE,SR1
622
                JR Z,BITRAT3
623
                LD DE,SR2
624
BITRAT3         ADD HL,DE
163 savelij 625
        DE_ADR_SCR 22,10
105 savelij 626
                PUSH BC
627
                LD B,5
628
                CALL PRINT_B
629
                POP BC
630
                LD A,C
631
                RLCA
632
                RLCA
633
                AND 3
634
                ADD A,A
635
                ADD A,A
636
                LD L,A
637
                ADD A,A
638
                ADD A,L
639
                LD L,A
640
                LD H,0
641
                LD DE,REJCHAN
642
                ADD HL,DE
643
                PUSH BC
163 savelij 644
                LD B,0x0C
645
        DE_ADR_SCR 20,9
105 savelij 646
                CALL PRINT_B
647
                POP BC
648
                LD A,B
163 savelij 649
                AND 0x0F
105 savelij 650
                LD L,A
651
                ADD A,A
652
                ADD A,L
653
                LD L,A
654
                LD H,0
655
                LD A,C
656
                AND 3
657
                CP 3
658
                JR NZ,BITRAT4
163 savelij 659
                LD A,0x30
105 savelij 660
                ADD A,L
661
                LD L,A
662
BITRAT4         LD A,C
163 savelij 663
                AND 0x30
664
                SUB 0x10
105 savelij 665
                LD DE,L3ID0
666
                JR Z,BITRAT2
163 savelij 667
                SUB 0x10
105 savelij 668
                LD DE,L2ID0
669
                JR Z,BITRAT2
670
                LD DE,L1ID0
671
BITRAT2         ADD HL,DE
672
                LD B,3
163 savelij 673
        DE_ADR_SCR 24,11
105 savelij 674
                JP PRINT_B
675
 
163 savelij 676
; 祭  ᯥ⪠ -  䠩 (15)
677
;   ⥪饣 䠩 (16)
678
READ5BT
679
        OUT_GSDAT_A
680
        OUT_GSCOM 0x1F
105 savelij 681
                CALL WC
682
                CALL WN
163 savelij 683
        IN_GSDAT
105 savelij 684
                CALL PRISYM
685
                CALL WN
163 savelij 686
        IN_GSDAT
105 savelij 687
                CALL PRISYM
688
                CALL WN
163 savelij 689
        IN_GSDAT
105 savelij 690
                CALL PRISYM
691
                CALL WN
163 savelij 692
        IN_GSDAT
105 savelij 693
                CALL PRISYM
694
                CALL WN
163 savelij 695
        IN_GSDAT
105 savelij 696
                JP PRISYM
697
 
163 savelij 698
; 祭 ६ ந뢠 
699
; ⥪⮢   ᯥ⪠
700
READSEC
165 savelij 701
        OUT_GSDAT __GET_TIME
163 savelij 702
        OUT_GSCOM 0x1F
105 savelij 703
                CALL WC
704
                CALL WN
163 savelij 705
        IN_GSDAT
105 savelij 706
                CALL PRISYM
707
                CALL WN
163 savelij 708
        IN_GSDAT
105 savelij 709
                CALL PRISYM
163 savelij 710
                LD A,':'
105 savelij 711
                CALL PRISYM
712
                CALL WN
163 savelij 713
        IN_GSDAT
105 savelij 714
                CALL PRISYM
715
                CALL WN
163 savelij 716
        IN_GSDAT
105 savelij 717
                CALL PRISYM
163 savelij 718
                LD A,':'
105 savelij 719
                CALL PRISYM
720
                CALL WN
163 savelij 721
        IN_GSDAT
105 savelij 722
                CALL PRISYM
723
                CALL WN
163 savelij 724
        IN_GSDAT
105 savelij 725
                JP PRISYM
726
 
163 savelij 727
;  ⢨ NeoGS 室  128 ᨪ
105 savelij 728
NO_NGS          LD A,7
729
                CALL CLS
163 savelij 730
        DE_ADR_SCR 9,8
105 savelij 731
                LD HL,MESS17
732
                CALL PRINT
163 savelij 733
NO_ISA
734
        DE_ADR_SCR 6,10
105 savelij 735
                LD HL,MESS19
736
                CALL PRINT
737
                CALL ANYKEY
163 savelij 738
                JP RESCOMP
105 savelij 739
 
163 savelij 740
;   
741
ANYKEY
742
        IFDEF _SPRINTER
743
                EI
744
        SPDSS DSSF.SCANKEY
745
                JR Z,ANYKEY
746
                RET
747
        ELSE
748
.L1             XOR A
749
                IN A,(0xFE)
105 savelij 750
                CPL
163 savelij 751
                AND 0x1F
752
                JR Z,.L1
105 savelij 753
                RET
163 savelij 754
        ENDIF
105 savelij 755
 
163 savelij 756
;  ᪠ 
757
NANYKEY
758
        IFDEF _SPRINTER
759
                EI
760
        SPDSS DSSF.SCANKEY
761
                JR NZ,NANYKEY
762
                RET
763
        ELSE
764
.L1             XOR A
765
                IN A,(0xFE)
105 savelij 766
                CPL
163 savelij 767
                AND 0x1F
768
                JR NZ,.L1
105 savelij 769
                RET
163 savelij 770
        ENDIF
105 savelij 771
 
163 savelij 772
;  ⢨ GS 室  128 ᨪ
105 savelij 773
NO__GS          LD A,7
774
                CALL CLS
163 savelij 775
        DE_ADR_SCR 10,8
105 savelij 776
                LD HL,MESS18
777
                CALL PRINT
163 savelij 778
        DE_ADR_SCR 6,10
105 savelij 779
                LD HL,MESS19
780
                CALL PRINT
781
                CALL ANYKEY
163 savelij 782
                JP RESCOMP
105 savelij 783
 
163 savelij 784
;  ⥪   0   B  㫨
105 savelij 785
PRINT_B         LD A,(HL)
786
                AND A
787
                RET Z
788
                INC HL
789
                CALL PRISYM
790
                DJNZ PRINT_B
791
                RET
792
 
163 savelij 793
;  ⥪   0
105 savelij 794
PRINT           LD A,(HL)
795
                INC HL
796
                AND A
797
                RET Z
798
                CALL PRISYM
799
                JR PRINT
800
 
801
MORDALL         LD HL,MESS1
163 savelij 802
        DE_ADR_SCR 0,0
105 savelij 803
                CALL PRINT
804
                LD HL,MESS16
163 savelij 805
        DE_ADR_SCR 20,0
105 savelij 806
                CALL PRINT
807
                LD HL,MESS2
163 savelij 808
        DE_ADR_SCR 0,2
105 savelij 809
                CALL PRINT
810
                LD HL,MESS3
163 savelij 811
        DE_ADR_SCR 0,3
105 savelij 812
                CALL PRINT
813
                LD HL,MESS4
163 savelij 814
        DE_ADR_SCR 0,4
105 savelij 815
                CALL PRINT
816
                LD HL,MESS5
163 savelij 817
        DE_ADR_SCR 0,5
105 savelij 818
                CALL PRINT
819
                LD HL,MESS6
163 savelij 820
        DE_ADR_SCR 0,6
105 savelij 821
                CALL PRINT
822
                LD HL,MESS7
163 savelij 823
        DE_ADR_SCR 0,8
105 savelij 824
                CALL PRINT
825
                LD HL,MESS8
163 savelij 826
        DE_ADR_SCR 0,10
105 savelij 827
                CALL PRINT
828
                LD HL,MESS24
163 savelij 829
        DE_ADR_SCR ((32-(EMESS24-MESS24))/2),15
105 savelij 830
                CALL PRINT
165 savelij 831
                LD A,VARP_CHIP_TYPE
105 savelij 832
                CALL GET_VTS
833
                LD C,A
163 savelij 834
        IFDEF _SPRINTER
835
                PUSH BC
836
        DE_ADR_SCR 0,15
837
                POP BC
838
                PUSH BC
839
                LD A,C
182 savelij 840
                CP CYAN
841
                LD B,BLUE
842
                JR C,.L3
843
                LD B,YELLOW
844
.L3             XOR %00000111
165 savelij 845
                ADD A,A
846
                ADD A,A
847
                ADD A,A
848
                ADD A,A
182 savelij 849
                OR B
163 savelij 850
                LD E,A
851
        SPBIOS BIOSF.LP_PRINT_ATR,32
852
                POP BC         
165 savelij 853
        ELSE ; SPRINTER
182 savelij 854
                CP CYAN
855
                LD B,1  ; BLUE
856
                JR C,.L3
857
                LD B,6  ; YELLOW
858
.L3             XOR %00000111
105 savelij 859
                ADD A,A
165 savelij 860
                ADD A,A
861
                ADD A,A
182 savelij 862
                OR B
163 savelij 863
                LD HL,0x59E0
864
                LD B,32
865
.L1             LD (HL),A
105 savelij 866
                INC L
163 savelij 867
                DJNZ .L1
165 savelij 868
        ENDIF ; SPRINTER
105 savelij 869
                LD A,C
165 savelij 870
                ADD A,'0'                       ;  ᨨ MP3 稯
871
                CP '9' + 1
872
                JR C,.L2
873
                ADD A,7
874
.L2
163 savelij 875
        DE_ADR_SCR 31,15
105 savelij 876
                CALL PRISYM
165 savelij 877
MORDAR
878
        LD_A VARP_FILE_TYPE
105 savelij 879
                CALL GET_VTS
165 savelij 880
                CP FILE_MOD
881
                JR Z,MORDMOD
882
;    MP3
105 savelij 883
                LD HL,MESS9
163 savelij 884
        DE_ADR_SCR 0,11
105 savelij 885
                CALL PRINT
886
                LD HL,MESS10
163 savelij 887
        DE_ADR_SCR 0,13
105 savelij 888
                CALL PRINT
889
                LD HL,MESS11
163 savelij 890
        DE_ADR_SCR 0,12
105 savelij 891
                CALL PRINT
892
                LD HL,MESS12
163 savelij 893
        DE_ADR_SCR 0,14
105 savelij 894
                CALL PRINT
895
                LD HL,MESSEM
163 savelij 896
        DE_ADR_SCR 19,14
105 savelij 897
                CALL PRINT
898
                LD HL,MESS26
163 savelij 899
        DE_ADR_SCR 28,10
105 savelij 900
                CALL PRINT
901
                LD HL,MESS27
163 savelij 902
        DE_ADR_SCR 28,11
105 savelij 903
                CALL PRINT
904
                JP PRTTBL
905
 
165 savelij 906
;     MOD
907
MORDMOD         LD HL,EMPT16 + 3
163 savelij 908
        DE_ADR_SCR 19,10
105 savelij 909
                CALL PRINT
910
                LD HL,EMPT16
163 savelij 911
        DE_ADR_SCR 16,12
105 savelij 912
                CALL PRINT
913
                LD HL,EMPT16
163 savelij 914
        DE_ADR_SCR 16,13
105 savelij 915
                CALL PRINT
916
                LD HL,EMPT16
163 savelij 917
        DE_ADR_SCR 16,9
105 savelij 918
                CALL PRINT
919
                LD HL,MOD00
163 savelij 920
        DE_ADR_SCR 0,11
105 savelij 921
                CALL PRINT
922
                LD HL,EMPT16
163 savelij 923
        DE_ADR_SCR 16,11
105 savelij 924
                CALL PRINT
925
                LD HL,MOD02
163 savelij 926
        DE_ADR_SCR 0,12
105 savelij 927
                CALL PRINT
928
                LD HL,MOD03
163 savelij 929
        DE_ADR_SCR 0,13
105 savelij 930
                CALL PRINT
931
                LD HL,EMPT16
163 savelij 932
        DE_ADR_SCR 16,14
105 savelij 933
                CALL PRINT
934
                LD HL,EMPT16
163 savelij 935
        DE_ADR_SCR 0,14
105 savelij 936
                JP PRINT
937
 
165 savelij 938
;   ந뢠 MOD
939
POSMOD          LD A,VARP_SIZE_PATTERN_MOD
105 savelij 940
                CALL GET_VTS
163 savelij 941
        DE_ADR_SCR 14,11
105 savelij 942
                CALL PRIHEX
163 savelij 943
        DE_ADR_SCR 14,12
944
        OUT_GSCOM 0x60
105 savelij 945
                CALL WC
165 savelij 946
                CALL WN
163 savelij 947
        IN_GSDAT
105 savelij 948
                CALL PRIHEX
163 savelij 949
        DE_ADR_SCR 14,13
950
        OUT_GSCOM 0x61
105 savelij 951
                CALL WC
165 savelij 952
                CALL WN
163 savelij 953
        IN_GSDAT
105 savelij 954
                JP PRIHEX
955
 
163 savelij 956
;   ६  ᬥ饭  "A"
957
GET_VTS
958
        OUT_GSDAT_A
959
        OUT_GSCOM 0xFF
105 savelij 960
                CALL WC
165 savelij 961
                CALL WN
163 savelij 962
        IN_GSDAT
105 savelij 963
                RET
964
 
163 savelij 965
; 祭 16 ⭮ ﭨ
966
FGETVTS
165 savelij 967
        OUT_GSDAT __GET_VTS
163 savelij 968
        OUT_GSCOM 0x1F
105 savelij 969
                CALL WC
970
                CALL WN
163 savelij 971
        IN_GSDAT
105 savelij 972
                LD H,A
973
                CALL WN
163 savelij 974
        IN_GSDAT
105 savelij 975
                LD L,A
976
                RET
977
 
165 savelij 978
MOD00           DZ "Length:        "
979
MOD02           DZ "Position:      "
980
MOD03           DZ "Note:          "
105 savelij 981
 
163 savelij 982
VENTIL          DB 0xC4,0x5C,0x7C,0x2F
105 savelij 983
 
165 savelij 984
MESS1           DZ "Found files:"
985
MESS16          DZ "\"Space\" Exit"
986
MESS2           DZ "1 Prev. File  SS+1 Prev. DIR"
987
MESS3           DZ "2 Play File"
988
MESS4           DZ "3 Pause"
989
MESS5           DZ "4 Stop"
990
MESS6           DZ "5 Next File   SS+5 Next DIR"
991
MESS7           DZ "0 Eject SD Card"
992
MESS8           DZ "Play Number:"
993
MESS9           DZ "Time Play:      "
994
MESS10          DZ "9 Treble/Bass:  "
995
MESS11          DZ "8 Surround:     "
996
MESS12          DZ "<6-7> Volume:   "
997
MESSEM          DZ "\"Enter\" Mute"
998
MESS13          DZ "SD-Card Not Found"
999
MESS14          DZ "FAT not Found"
1000
MESS15          DZ "Press \"ENTER\" 4 Restart Init SD"
105 savelij 1001
MESS17          DB "Neo"
165 savelij 1002
MESS18          DZ "GS not found"
163 savelij 1003
MESS19          DB "Press any key for "
1004
        IFDEF _SPRINTER
165 savelij 1005
                DZ "exit"
163 savelij 1006
        ELSE
165 savelij 1007
                DZ "reset"
163 savelij 1008
        ENDIF
165 savelij 1009
MESS20          DZ "Please wait, search files"
1010
MESS21          DZ "Eject SD card or insert new card"
1011
MESS22          DZ "Press any key"
1012
MESS23          DZ "File(s) not found"
127 savelij 1013
MESS24          DB "Neo Player Light v",VERS_PLAYER,0
112 savelij 1014
EMESS24         EQU $-1
105 savelij 1015
EMPT32          DB "                "
165 savelij 1016
EMPT16          DZ "                "
1017
MESS26          DZ "Hz"
1018
MESS27          DZ "kbps"
1019
MESS28          DZ "Please wait, detect NeoGS"
105 savelij 1020
 
163 savelij 1021
        IFDEF _SPRINTER
165 savelij 1022
NOT_FOUND_ISA   DZ "ISA Slot not found. Emulator?"
163 savelij 1023
        ENDIF
1024
 
105 savelij 1025
REJCHAN         DB "      stereo"
1026
                DB "joint stereo"
1027
                DB "dual channel"
1028
                DB "        mono"
1029
 
1030
SR0             DB "11025110252205044100"
1031
SR1             DB "12000120002400048000"
1032
SR2             DB " 8000 80001600032000"
1033
 
1034
L3ID0           DB "  -  8 16 24 32 40 48 56 64 80 96112128144160   "
1035
                DB "  - 32 40 48 56 64 80 96112128160192224256320"
1036
 
1037
L2ID0           DB "  -  8 16 24 32 40 48 56 64 80 96112128144 160  "
1038
                DB "  - 32 48 56 64 80 96112128160192224256320384"
1039
 
1040
L1ID0           DB "  - 32 48 56 64 80 96112128144160176192224256   "
1041
                DB "  - 32 64 96128160192224256288320352384416448"
1042
 
163 savelij 1043
EJECT
165 savelij 1044
        OUT_GSDAT __STOP
163 savelij 1045
        OUT_GSCOM 0x1F
105 savelij 1046
                CALL WC
1047
                LD A,7
1048
                CALL CLS
1049
                LD HL,MESS21
163 savelij 1050
        DE_ADR_SCR 0,8
105 savelij 1051
                CALL PRINT
1052
                LD HL,MESS22
163 savelij 1053
        DE_ADR_SCR 9,10
105 savelij 1054
                CALL PRINT
1055
                CALL NANYKEY
1056
                CALL ANYKEY
1057
                CALL NANYKEY
165 savelij 1058
        OUT_GSDAT __INIT_SD
163 savelij 1059
        OUT_GSCOM 0x1F
1060
                JP LOOP21
105 savelij 1061
 
163 savelij 1062
CLS
1063
        IFDEF _SPRINTER
1064
                LD HL,32 << 8 + 80
1065
                LD DE,0
1066
        SPBIOS BIOSF.LP_CLS_WIN, LGRAY
1067
        ELSE
1068
                LD HL,0x4000
105 savelij 1069
                LD E,L
1070
                LD D,H
1071
                LD (HL),L
1072
                INC E
163 savelij 1073
                LD BC,0x1800
105 savelij 1074
                LDIR
163 savelij 1075
                LD (0x5C8D),A
1076
                LD (0x5C48),A
1077
                LD HL,0x5800
105 savelij 1078
                LD D,H
1079
                LD E,L
1080
                LD (HL),A
163 savelij 1081
                LD BC,0x02FF
105 savelij 1082
                INC E
1083
                LDIR
1084
                RRCA
1085
                RRCA
1086
                RRCA
1087
                AND 7
163 savelij 1088
                OUT (0xFE),A
1089
        ENDIF
105 savelij 1090
                RET
1091
 
163 savelij 1092
; ⥭   NeoGS
1093
; 室: E- 
1094
; 室: A-⠭ 祭
105 savelij 1095
INPORT          LD A,E
163 savelij 1096
        OUT_GSDAT_A
1097
        OUT_GSCOM 0x11
105 savelij 1098
                CALL WC
163 savelij 1099
        IN_GSDAT
105 savelij 1100
                RET
1101
 
163 savelij 1102
;    NEOGS
1103
; 室: E- , D-祭
105 savelij 1104
OUTPORT         LD A,E
163 savelij 1105
        OUT_GSDAT_A
1106
        OUT_GSCOM 0x10
105 savelij 1107
                CALL WC
1108
                LD A,D
163 savelij 1109
        OUT_GSDAT_A
105 savelij 1110
                JR WD
1111
 
163 savelij 1112
;   ⢥  㧮
112 savelij 1113
;WAIT_WN                PUSH BC
1114
;               LD B,2
1115
;               DJNZ $
1116
;               POP BC
105 savelij 1117
 
163 savelij 1118
;  ⠭ DATA 
1119
WN
1120
        IN_GSCOM
105 savelij 1121
                RLA
1122
                JR NC,WN
1123
                RET
1124
 
163 savelij 1125
;   COMMAND 
1126
WC
1127
        IN_GSCOM
105 savelij 1128
                RRA
1129
                JR C,WC
1130
                RET
1131
 
163 savelij 1132
;   DATA 
1133
WD
1134
        IN_GSCOM
105 savelij 1135
                RLA
1136
                JR C,WD
1137
                RET
1138
 
163 savelij 1139
; ਥ E   NeoGS
1140
INI_E
105 savelij 1141
INI_E1          LD D,0
1142
INI_E2          DEC D
1143
                JR Z,INI_E3
1144
                CALL WN
163 savelij 1145
        IN_GSDAT
1146
                LD (HL),A
1147
                INC HL
105 savelij 1148
                DEC E
1149
                JR NZ,INI_E1
1150
                RET
1151
 
165 savelij 1152
INI_E3
1153
        LD_A VARP_FLAGS
105 savelij 1154
                CALL GET_VTS
165 savelij 1155
                BIT B_SD_LOST,A
105 savelij 1156
                JR Z,INI_E1
142 savelij 1157
                LD SP,(OLD_STACK)
105 savelij 1158
                JP EJECT
1159
 
1160
PRIHEX          PUSH AF
1161
                RRA
1162
                RRA
1163
                RRA
1164
                RRA
163 savelij 1165
                CALL .PHC
105 savelij 1166
                POP AF
163 savelij 1167
.PHC            AND 0x0F
1168
                CP 0x0A
1169
                JR C,.L1
105 savelij 1170
                ADD A,7
163 savelij 1171
.L1             ADD A,'0'
105 savelij 1172
PRISYM          PUSH HL
1173
                PUSH DE
163 savelij 1174
        IFDEF _SPRINTER
1175
                PUSH BC
1176
                LD B,1
1177
        SPBIOS BIOSF.LP_PRINT_SYM
1178
                POP BC
1179
                POP DE
1180
                POP HL
1181
                RET
1182
        ELSE
105 savelij 1183
                PUSH DE
1184
                LD L,A
1185
                LD H,0
1186
                LD DE,CHARS
1187
                ADD HL,HL
1188
                ADD HL,HL
1189
                ADD HL,HL
1190
                ADD HL,DE
1191
                POP DE
163 savelij 1192
        REPT 8
105 savelij 1193
                LD A,(HL)
1194
                LD (DE),A
1195
                INC HL
1196
                INC D
163 savelij 1197
        ENDM
105 savelij 1198
                POP DE
1199
                POP HL
1200
                INC E
1201
                RET
163 savelij 1202
        ENDIF
105 savelij 1203
 
163 savelij 1204
        IFDEF _SPRINTER
1205
; ⠭ 樨 
1206
SET_DE_ADR_SCR  PUSH AF
1207
                PUSH HL
1208
                PUSH DE
1209
                PUSH BC
1210
        SPBIOS BIOSF.LP_SET_PLACE
1211
                POP BC
1212
                POP DE
1213
                POP HL
1214
                POP AF
1215
                RET
1216
 
1217
DETECT_ISA      LD (OPEN_ISA.SLOT),A
1218
; A -  ᫮ 0  1
1219
OPEN_ISA        LD A,0
1220
.SLOT           EQU $-1
1221
                ex af,af'
1222
                in a,(PAGE_CPU3);(mmu3)
1223
                ld (CLOSE_ISA.pg),a
1224
                ld bc,0x1FFD;sc_port
1225
                ld a,0x11
1226
                out (c),a
1227
                ex af,af'
1228
                rlca
1229
                or %11010100;ISA.SLOT0_PORT
1230
                out (PAGE_CPU3),a;(mmu3),a
1231
                ld bc,ISA_PORT;ISA.DIR
1232
                xor a
1233
                out (c),a
1234
                ret
1235
 
1236
CLOSE_ISA       ld bc,0x1FFD;sc_port
1237
                ld a,1
1238
                out (c),a
1239
                ld a,0
1240
.pg             EQU $-1
1241
                out (PAGE_CPU3),a;(mmu3),a
1242
                ret
1243
 
1244
CHECK_ISA       ld a,(0xC000)
1245
                cp 0xff
1246
                ret z                           ; , 設 ISA 
1247
                scf                             ; , 設  (?)
1248
                ret
1249
        ENDIF
1250
 
165 savelij 1251
GO_YES          binclude tmp/play_on_ngs.rom
105 savelij 1252
FAT_END
1253
 
163 savelij 1254
        IFNDEF _SPRINTER
1255
CHARS           binclude make/altstd.bin
1256
        ENDIF
1257
 
1258
                DUPL LOW (-GO_YES)
1259
OPISAT          EQU $                           ;  ᪫஢ ⥫  ਥ