Top secrets sources NedoPC ngs

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 25.05.2013 savelij
;version 08.03.2009

                include macros.a80

GSDAT           EQU 0XB3
GSCOM           EQU 0XBB
GSCOD           EQU 0X5100

OPISAT          EQU 0X6000

                ORG 0X8000
START           EI
                LD HL,0X0110
                LD (0X5C09),HL
                RES 3,(IY+48)
                LD A,0XFE
                IN A,(0XFE)
                RRA
                LD A,0
                JR C,$+4
                LD A,0X10
                LD BC,0XEFF7
                OUT (C),A
                LD A,0X7F
                IN A,(0XFE)
                RRA
                RRA
                JR NC,LOOP21
LOOP31          LD B,0X30
                XOR A
                OUT (GSDAT),A
                LD A,0X1D
                OUT (GSCOM),A
LOOP22          HALT
                DEC B
                JR Z,LOOP21
                IN A,(GSCOM)
                RRA
                JR C,LOOP22
                IN A,(GSDAT)
                CP 0X77
                JP Z,LOOP13
                CP 0X8B
                JR Z,LOOP24
LOOP21          LD A,0X80
                OUT (0X33),A
                HALT
                HALT
                LD A,0XF3
                OUT (GSCOM),A
                LD B,0X30
LOOP25          HALT
                HALT
                DEC B
                JP Z,NO__GS
                IN A,(GSCOM)
                RRA
                JR C,LOOP25
LOOP24          LD BC,GSDAT
                LD DE,FAT_END-GO_YES
                LD HL,GSCOD
                OUT (C),E
                LD A,0X14
                OUT (GSCOM),A
                CALL WC
                OUT (C),D
                CALL WD
                OUT (C),L
                CALL WD
                OUT (C),H
                CALL WD
                LD HL,GO_YES
LODCOD          OUTI
                CALL WD
                DEC DE
                LD A,D
                OR E
                JR NZ,LODCOD
                LD HL,GSCOD
                OUT (C),L
                LD A,0X13
                OUT (GSCOM),A
                CALL WC
                OUT (C),H
                HALT
                HALT
LOOP13          LD A,7
                CALL CLS
                LD DE,0X4800
                LD HL,MESS20
                CALL PRINT
                XOR A
                OUT (GSDAT),A
                LD A,0X1D
                OUT (GSCOM),A
                LD B,0
                CALL WAITGS
                IN A,(GSDAT)
                CP 0X77
                JR Z,Warm
                CP 0XEE
                JR NZ,LOOP17
                LD A,7
                CALL CLS
                LD HL,MESS13
                LD DE,0X5000
LOOP20          CALL PRINT
                LD HL,MESS15
                LD DE,0X5040
                CALL PRINT
                LD HL,MESS16
                LD DE,0X5080
                CALL PRINT
                JR LOOP16

LOOP17          CP 0XDD
                JR NZ,LOOP26
                LD A,7
                CALL CLS
                LD HL,MESS14
                LD DE,0X5000
                JR LOOP20

LOOP26          CP 0XBB
                JR NZ,LOOP27
                LD A,7
                CALL CLS
                LD HL,MESS23
                LD DE,0X5000
                JR LOOP20

LOOP27          CP 0XCC
                JR NZ,LOOP13
                JP NO_NGS

LOOP16          BIT 5,(IY+1)
                JR Z,LOOP16
                LD A,(IY-0X32)
                RES 5,(IY+1)
                CP 0X0D
                JP Z,START
                CP 0X20
                JP Z,LOOP18
                JR LOOP16

Warm            LD A,7
                CALL CLS
                LD HL,MESS1
                LD DE,0X4000
                CALL PRINT
                LD HL,MESS2
                LD DE,0X4040
                CALL PRINT
                LD HL,MESS3
                LD DE,0X4060
                CALL PRINT
                LD HL,MESS4
                LD DE,0X4080
                CALL PRINT
                LD HL,MESS5
                LD DE,0X40A0
                CALL PRINT
                LD HL,MESS6
                LD DE,0X40C0
                CALL PRINT
                LD HL,MESS7
                LD DE,0X4800
                CALL PRINT
                LD HL,MESS8
                LD DE,0X4840
                CALL PRINT
                LD HL,MESS9
                LD DE,0X4860
                CALL PRINT
                LD HL,MESS10
                LD DE,0X48A0
                CALL PRINT
                LD HL,MESS11
                LD DE,0X4880
                CALL PRINT
                LD HL,MESS12
                LD DE,0X48C0
                CALL PRINT
                LD HL,MESS24
                LD DE,0X48E5
                CALL PRINT
                LD HL,MESS26
                LD DE,0X485C
                CALL PRINT
                LD HL,MESS27
                LD DE,0X487C
                CALL PRINT
                CALL PRTTBL
                LD HL,0X59E0
                LD B,0X20
                LD A,0X0C
                OUT (GSCOM),A
                CALL WN
                IN A,(GSDAT)
                LD C,A
                CALL WN
                IN A,(GSDAT)
                LD A,C
                AND 8
                XOR 8
                OR 0X31
                LD (HL),A
                INC L
                DJNZ $-2
                RES 5,(IY+1)
                LD A,0X15
                LD DE,0X400B
                CALL READ5BT
;ŠŽ‹-‚Ž €‰„…ŽƒŽ
                CALL NAMELNG
                CALL DAT_VTS
LOOP            LD A,0X0B
                LD DE,0X486B
                CALL READSEC;‚…ŒŸ ˆƒ€ˆŸ
                CALL BITRATE
                LD A,0X0C
                OUT (GSCOM),A
                CALL WN
                IN A,(GSDAT)
                LD H,A
                CALL WN
                IN A,(GSDAT)
                BIT 5,H
                CALL NZ,NAMELNG
LOOP14          BIT 5,(IY+1)
                JR Z,LOOP
                LD A,(IY-0X32)
                RES 5,(IY+1)
                CP 0X31
                JR NZ,LOOP1
                LD A,1
                JR LOOP11

LOOP1           CP 0X32
                JR NZ,LOOP2
                LD A,2
                JR LOOP11

LOOP2           CP 0X33
                JR NZ,LOOP3
                LD A,3
                JR LOOP11

LOOP3           CP 0X34
                JR NZ,LOOP4
                LD A,4
                JR LOOP11

LOOP4           CP 0X35
                JR NZ,LOOP5
                LD A,5
                JR LOOP11

LOOP5           CP 0X30
                JP Z,EJECT
LOOP7           CP 0X39
                JR NZ,LOOP8
                LD A,6
                OUT (GSCOM),A
                CALL WC
                CALL PRTTBL
                JP LOOP-3

LOOP8           CP 0X38
                JR NZ,LOOP9
                LD A,7
                JR LOOP11

LOOP9           CP 0X36
                JR NZ,LOOP10
                LD A,9
                JR LOOP11

LOOP10          CP 0X37
                JR NZ,LOOP15
                LD A,8
LOOP11          OUT (GSCOM),A
                CALL WC
                JP LOOP-3

LOOP15          CP 0X20
                JR NZ,LOOP23
LOOP18          CALL NANYKEY
                XOR A
                LD BC,0X7FFD
                OUT (C),A
                JP 0

LOOP23          CP 0X0D
                JR NZ,LOOP28
                LD A,0X0A
                JR LOOP11

LOOP28          CP 0X3A
                JR NZ,LOOP29
                LD A,0X17
                JR LOOP11

LOOP29          CP 0X21
                JR NZ,LOOP30
                LD A,0X18
                JR LOOP11

LOOP30          CP 0X25
                JR NZ,LOOP32
                LD A,0X19
                JR LOOP11

LOOP32          CP 0X71
                JR NZ,LOOP33;Q-FTREBLE
                LD A,%00000011
                JR LOOPTBL

LOOP33          CP 0X61
                JR NZ,LOOP34;A-FTREBLE
                LD A,%00000001
                JR LOOPTBL

LOOP34          CP 0X77
                JR NZ,LOOP35;W-UTREBLE
                LD A,%00001100
                JR LOOPTBL

LOOP35          CP 0X73
                JR NZ,LOOP36;S-UTREBLE
                LD A,%00000100
                JR LOOPTBL

LOOP36          CP 0X65
                JR NZ,LOOP37;E-FBASS
                LD A,%00110000
                JR LOOPTBL

LOOP37          CP 0X64
                JR NZ,LOOP38;D-FBASS
                LD A,%00010000
                JR LOOPTBL

LOOP38          CP 0X72
                JR NZ,LOOP39;R-UBASS
                LD A,%11000000
                JR LOOPTBL

LOOP39          CP 0X66
                JP NZ,LOOP;F-UBASS
                LD A,%01000000
LOOPTBL         PUSH AF
                LD A,0X1A
                OUT (GSCOM),A
                CALL WC
                POP AF
                OUT (GSDAT),A
                CALL PRTTBL
                JP LOOP

WAITGS          LD E,B
                LD D,0
                LD HL,VENTIL
                ADD HL,DE
                LD A,(HL)
                LD DE,0X481E
                CALL PRISYM
                LD C,6
                HALT
                DEC C
                JR NZ,$-2
                IN A,(GSCOM)
                RRA
                RET NC
                INC B
                LD A,4
                CP B
                JR NZ,WAITGS
                LD B,0
                JR WAITGS

NAMELNG         LD A,0X16
                LD DE,0X484D
                CALL READ5BT
;’…Š“™ˆ‰ ŽŒ… ’…Š€
                LD HL,0X8000
                LD A,0X11
                OUT (GSCOM),A
                CALL WC
;Ž‹“—ˆ’œ „‹ˆŽ… ˆŒŸ
                LD A,H
                OUT (GSDAT),A
                CALL WD
                LD A,L
                OUT (GSDAT),A
                LD HL,OPISAT
                LD E,0
                PUSH HL
                CALL INI_E
                LD HL,0X5000
                LD D,H
                LD E,L
                LD BC,0X07FF
                INC E
                LD (HL),L
                LDIR
                POP HL
                LD B,0X20
                LD DE,0X5000
                CALL PRINT_B
                LD B,0X20
                LD DE,0X5020
                CALL PRINT_B
                LD B,0X20
                LD DE,0X5040
                CALL PRINT_B
                LD B,0X20
                LD DE,0X5060
                CALL PRINT_B
                LD B,0X20
                LD DE,0X5080
                CALL PRINT_B
                LD B,0X20
                LD DE,0X50A0
                CALL PRINT_B
                LD B,0X20
                LD DE,0X50C0
                CALL PRINT_B
                LD B,0X20
                LD DE,0X50E0
                JP PRINT_B

RD2BYTE         EX AF,AF'
                LD A,0X1A
                OUT (GSCOM),A
                CALL WC
                EX AF,AF'

                OUT (GSDAT),A
                LD B,0X10
                DJNZ $
                CALL WN
                IN A,(GSDAT)
                LD H,A
                CALL WN
                IN A,(GSDAT)
                LD L,A
                RET

DAT_VTS         LD A,0X0C
                OUT (GSCOM),A
                CALL WN
                IN A,(GSDAT)
                LD H,A
                CALL WN
                IN A,(GSDAT)
                LD L,A
                LD DE,0X48AF
                BIT 7,H
                LD A,0X2B
                JR NZ,$+4
                LD A,0X2D
                CALL PRISYM
                BIT 0,H
                LD A,0X2B
                JR NZ,$+4
                LD A,0X2D
                LD DE,0X488D
                CALL PRISYM
                BIT 6,H
                LD A,0X2B
                JR NZ,$+4
                LD A,0X2D
                LD DE,0X48DF
                CALL PRISYM
                LD A,L
                LD DE,0X48CE
                CALL PRIHEX
;’…Œ,‘“Ž“„ ˆ ƒŽŒŠŽ‘’œ
                BIT 4,H
                LD HL,MESS16+2
                JR Z,DATVTS1
                RES 5,(HL)
                INC HL
                RES 5,(HL)
                INC HL
                RES 5,(HL)
                INC HL
                RES 5,(HL)
                JR DATVTS2

DATVTS1         SET 5,(HL)
                INC HL
                SET 5,(HL)
                INC HL
                SET 5,(HL)
                INC HL
                SET 5,(HL)
DATVTS2         LD HL,MESS16
                LD DE,0X4014
                CALL PRINT

PRTTBL          LD A,0X0C
                OUT (GSCOM),A
                CALL WN
                IN A,(GSDAT)
                LD H,A
                CALL WN
                IN A,(GSDAT)
                LD A,H
                BIT 3,A
                JR Z,EMPTSTR
                BIT 7,A
                JR Z,EMPTSTR
                LD A,0X1B
                OUT (GSCOM),A
                CALL WC
                LD HL,OPISAT+0X0100
                LD E,8
                PUSH HL
                CALL INI_E
                LD DE,0X48B1
                LD B,2
                POP HL
                CALL PRINT_B
                REPT 3
                LD A,0X30
                CALL PRISYM
                ENDM
                LD A,0X2F
                CALL PRISYM
                LD B,2
                CALL PRINT_B
                INC E
                LD B,2
                CALL PRINT_B
                LD A,0X30
                CALL PRISYM
                LD A,0X2F
                CALL PRISYM
                LD B,2
                JP PRINT_B

EMPTSTR         LD HL,MESS25
                LD DE,0X48B1
                JP PRINT

BITRAT1         LD HL,MESS25
                LD DE,0X4856
                PUSH HL
                LD B,5
                CALL PRINT_B
                LD DE,0X4878
                LD B,3
                POP HL
                PUSH HL
                CALL PRINT_B
                POP HL
                LD B,0X0C
                LD DE,0X4834
                JP PRINT_B

BITRATE         LD A,0X1C
                OUT (GSCOM),A
                CALL WN
                IN A,(GSDAT)
                LD B,A
                CALL WN
                IN A,(GSDAT)
                LD C,A
                LD A,B
                AND 0XE0
                CP %10100000
                JR Z,BITRAT1
                LD A,C
                AND 3
                LD L,A
                ADD A,A
                ADD A,A
                ADD A,L
                LD L,A
                LD H,0
                LD A,C
                RRCA
                RRCA
                AND 3
                LD DE,SR0
                JR Z,BITRAT3
                DEC A
                LD DE,SR1
                JR Z,BITRAT3
                LD DE,SR2
BITRAT3         ADD HL,DE
                LD DE,0X4856
                PUSH BC
                LD B,5
                CALL PRINT_B
                POP BC
                LD A,C
                RLCA
                RLCA
                AND 3
                ADD A,A
                LD A,A
                LD L,A
                ADD A,A
                ADD A,L
                LD L,A
                LD H,0
                LD DE,REJCHAN
                ADD HL,DE
                PUSH BC
                LD B,0X0C
                LD DE,0X4834
                CALL PRINT_B
                POP BC
                LD A,B
                AND 0X0F
                LD L,A
                ADD A,A
                ADD A,L
                LD L,A
                LD H,0
                LD A,C
                AND 0X0C
                CP 0X0B
                JR C,$+3
                ADD HL,HL
                LD A,C
                AND 0X30
                SUB 0X10
                LD DE,L3ID0
                JR Z,BITRAT2
                SUB 0X10
                LD DE,L2ID0
                JR Z,BITRAT2
                LD DE,L1ID0
BITRAT2         ADD HL,DE
                LD B,3
                LD DE,0X4878
                JP PRINT_B

READ_GS         OUT (GSCOM),A
                CALL WN
                IN A,(GSDAT)
                LD H,A
                CALL PRIHEX
                CALL WN
                IN A,(GSDAT)
                LD L,A
                JP PRIHEX

READ5BT         OUT (GSCOM),A
                REPT 4
                CALL WN
                IN A,(GSDAT)
                CALL PRISYM
                ENDM
                CALL WN
                IN A,(GSDAT)
                JP PRISYM

READSEC         OUT (GSCOM),A
                REPT 2
                CALL WN
                IN A,(GSDAT)
                CALL PRISYM
                ENDM
                LD A,0X3A
                CALL PRISYM
                REPT 2
                CALL WN
                IN A,(GSDAT)
                CALL PRISYM
                ENDM
                LD A,0X3A
                CALL PRISYM
                CALL WN
                IN A,(GSDAT)
                CALL PRISYM
                CALL WN
                IN A,(GSDAT)
                JP PRISYM

NO_NGS          LD A,7
                CALL CLS
                LD DE,0X4809
                LD HL,MESS17
                CALL PRINT
                LD DE,0X4846
                LD HL,MESS19
                CALL PRINT
                CALL NANYKEY
                CALL ANYKEY
                CALL NANYKEY
BAS128          XOR A
                LD BC,0X7FFD
                OUT (C),A
                JP 0

ANYKEY          XOR A
                IN A,(0XFE)
                CPL
                AND 0X1F
                JR Z,$-6
                RET

NANYKEY         XOR A
                IN A,(0XFE)
                CPL
                AND 0X1F
                JR NZ,$-6
                RET

NO__GS          LD A,7
                CALL CLS
                LD DE,0X480A
                LD HL,MESS18
                CALL PRINT
                LD DE,0X4846
                LD HL,MESS19
                CALL PRINT
                CALL ANYKEY
                CALL NANYKEY
                JR BAS128

PRINT_B         LD A,(HL)
                AND A
                RET Z
                INC HL
                CALL PRISYM
                DJNZ PRINT_B
                RET

PRINT           LD A,(HL)
                INC HL
                AND A
                RET Z
                CALL PRISYM
                JR PRINT

VENTIL          DB 0XC4,0X5C,0X7C,0X2F

MESS1           DB "Found MP3:      "
;0X4000 0X400b
                DB "    "
MESS16          DB 0X22,"Space",0X22," Exit",0
;0X4014
MESS2           DB "1 Prev. File  "
                DB "SS+1 Prev. DIR",0
MESS3           DB "2 Play File",0
MESS4           DB "3 Pause",0
MESS5           DB "4 Stop",0
MESS6           DB "5 Next File   "
                DB "SS+5 Next DIR",0
MESS7           DB "0 Eject SD Card",0
MESS8           DB "Play Number:",0
;0X4840 0X484D
MESS9           DB "Time Play:",0
;0X4860 0X486B
MESS10          DB "9 Treble/Bass:",0
;0X4880 0X4890
MESS11          DB "8 Surround:",0
;0X48A0 0X48Ad
MESS12          DB "<6-7> Volume:     "
                DB 0X22,"Enter",0X22," Mute",0
;0X48C0 0X48Ce
MESS13          DB "SD-Card Not Found",0
;0X5000
MESS14          DB "FAT not Found",0
;0X5000
MESS15          DB "Press ",0X22,"ENTER",0X22
                DB " 4 Restart Init SD",0
MESS17          DB "Neo"
MESS18          DB "GS not found",0
MESS19          DB "Press any key for reset",0
MESS20          DB "Please wait, search MP3"
                DB " files",0
MESS21          DB "Eject SD card or insert"
                DB " new card",0
MESS22          DB "Press any key",0
MESS23          DB "MP3 file(s) not found",0
MESS24          DB "Neo Player Light v0.44",0
MESS25          DB "               ",0
MESS26          DB "Hz",0
;0X487C
MESS27          DB "kbps",0
;0X489C

REJCHAN         DB "      stereo"
                DB "joint stereo"
                DB "dual channel"
                DB "        mono"

SR0             DB "11025110252205044100"
SR1             DB "12000120002400048000"
SR2             DB " 8000 80001600032000"

L3ID0
                DB "  - 32 40 48 56 64 80 96"
                DB "112128160192224256320"
                DB "  -  8 16 24 32 40 48 56"
                DB " 64 80 96112128144160"

L2ID0
                DB "  - 32 48 56 64 80 96112"
                DB "128160192224256320384"
                DB "  -  8 16 24 32 40 48 56"
                DB " 64 80 96112128144 160"

L1ID0
                DB "  - 32 64 96128160192224"
                DB "256288320352384416448"
                DB "  - 32 48 56 64 80 96112"
                DB "128144160176192224256"

EJECT           LD A,4
                OUT (GSCOM),A
                CALL WC
                LD A,7
                CALL CLS
                LD HL,MESS21
                LD DE,0X4800
                CALL PRINT
                LD HL,MESS22
                LD DE,0X4849
                CALL PRINT
                CALL NANYKEY
                CALL ANYKEY
                CALL NANYKEY
                XOR A
                OUT (GSCOM),A
                JP LOOP13

CLS             LD HL,0X4000
                LD E,L
                LD D,H
                LD (HL),L
                INC E
                LD BC,0X1800
                LDIR
CLSCLR          LD (0X5C8D),A
                LD (0X5C48),A
                LD HL,0X5800
                LD D,H
                LD E,L
                LD (HL),A
                LD BC,0X02FF
                INC E
                LDIR
                RRCA
                RRCA
                RRCA
                AND 7
                OUT (0XFE),A
                RET

WC              IN A,(GSCOM)
                RRA
                JR C,$-3
                RET

WD              IN A,(GSCOM)
                RLA
                JR C,$-3
                RET

WN              IN A,(GSCOM)
                RLA
                JR NC,$-3
                RET

INI_E           LD BC,GSDAT
                CALL WN
                INI
                DEC E
                JR NZ,$-6
                RET

PRIHEX          PUSH AF
                RRA
                RRA
                RRA
                RRA
                CALL PHC
                POP AF
PHC             AND 0X0F
                CP 0X0A
                JR C,$+4
                ADD A,7
                ADD A,0X30
PRISYM          PUSH HL
                PUSH DE
                PUSH DE
                LD L,A
                LD H,0
                LD DE,CHARS
                REPT 3
                ADD HL,HL
                ENDM
                ADD HL,DE
                POP DE
                REPT 8
                LD A,(HL)
                LD (DE),A
                INC HL
                INC D
                ENDM
                POP DE
                POP HL
                INC E
                RET

GO_YES
                binclude unp_play4ngs.rom       ; INCB "FATNGSC*"
FAT_END

CHARS           binclude altstd.bin     ; INCB "ALTSTD"