mirror of
https://github.com/Tolik-Trek/WAV-Player.git
synced 2026-06-15 09:01:35 +03:00
недоделка
This commit is contained in:
parent
02db2c9d50
commit
02c469a77c
@ -1 +1 @@
|
|||||||
Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022
|
Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a
|
||||||
193
WAVPLAY.ASM
193
WAVPLAY.ASM
@ -2,6 +2,8 @@
|
|||||||
DEFINE WAVPLunknown 1
|
DEFINE WAVPLunknown 1
|
||||||
DEFINE SoundBugFix 1
|
DEFINE SoundBugFix 1
|
||||||
|
|
||||||
|
DEFINE FULL_VERSION "2.01"
|
||||||
|
|
||||||
SH_HDD_X EQU 223 ; ¯®«®¦¥¨¥ ¨¤¨ª â®à HDD £®à.
|
SH_HDD_X EQU 223 ; ¯®«®¦¥¨¥ ¨¤¨ª â®à HDD £®à.
|
||||||
SH_HDD_Y EQU 90 ; ¯®«®¦¥¨¥ ¨¤¨ª â®à HDD ¢¥àâ.
|
SH_HDD_Y EQU 90 ; ¯®«®¦¥¨¥ ¨¤¨ª â®à HDD ¢¥àâ.
|
||||||
|
|
||||||
@ -432,7 +434,7 @@ PLAY_WAVE:
|
|||||||
LD A,#80
|
LD A,#80
|
||||||
LD (D_FILL),A ; FILL by 80h
|
LD (D_FILL),A ; FILL by 80h
|
||||||
LD A,0
|
LD A,0
|
||||||
LD (ADD_PAR),A
|
LD (VISIO.ADD_PAR),A
|
||||||
|
|
||||||
LD A,(#C022)
|
LD A,(#C022)
|
||||||
LD (FLAG16),A
|
LD (FLAG16),A
|
||||||
@ -444,7 +446,7 @@ PLAY_WAVE:
|
|||||||
LD A,0
|
LD A,0
|
||||||
LD (D_FILL),A ; FILL by 0
|
LD (D_FILL),A ; FILL by 0
|
||||||
LD A,#80
|
LD A,#80
|
||||||
LD (ADD_PAR),A
|
LD (VISIO.ADD_PAR),A
|
||||||
JR Z,NEXT_1
|
JR Z,NEXT_1
|
||||||
;JR ERROR2 ; format error
|
;JR ERROR2 ; format error
|
||||||
ERROR2: CALL RESTORE_SCR
|
ERROR2: CALL RESTORE_SCR
|
||||||
@ -493,7 +495,7 @@ NEXT_2:
|
|||||||
LD DE,9000
|
LD DE,9000
|
||||||
CALL Test_DIAP
|
CALL Test_DIAP
|
||||||
LD A,8 ; 8khz
|
LD A,8 ; 8khz
|
||||||
JR Z,NEXT_3
|
JR Z,NEXT_3\
|
||||||
|
|
||||||
LD HL,10000
|
LD HL,10000
|
||||||
LD DE,12000
|
LD DE,12000
|
||||||
@ -652,15 +654,14 @@ LOOP:
|
|||||||
CALL Z,HELP_OUT
|
CALL Z,HELP_OUT
|
||||||
|
|
||||||
NO_KEY1:
|
NO_KEY1:
|
||||||
|
|
||||||
LD A,(SND_A+1)
|
LD A,(SND_A+1)
|
||||||
CP 0DFh
|
CP #DF
|
||||||
JR NC,LOOP
|
JR NC,LOOP
|
||||||
|
|
||||||
LD A,1
|
LD A,1
|
||||||
LD (HDD_CNT),A
|
LD (HDD_CNT),A
|
||||||
|
|
||||||
LD HL,0E000h
|
LD HL,#E000
|
||||||
;
|
;
|
||||||
CALL READ_FILE_X
|
CALL READ_FILE_X
|
||||||
JP NZ,EXIT_ALL
|
JP NZ,EXIT_ALL
|
||||||
@ -690,7 +691,7 @@ LOOP2:
|
|||||||
NO_KEY2:
|
NO_KEY2:
|
||||||
|
|
||||||
LD A,(SND_A+1)
|
LD A,(SND_A+1)
|
||||||
CP 0DFh
|
CP #DF
|
||||||
JR C,LOOP2
|
JR C,LOOP2
|
||||||
|
|
||||||
LD A,1
|
LD A,1
|
||||||
@ -1005,7 +1006,6 @@ PLAY: DI
|
|||||||
PUSH DE
|
PUSH DE
|
||||||
|
|
||||||
LD A,CBL.BUFFER_PAGE
|
LD A,CBL.BUFFER_PAGE
|
||||||
;PLAY_PAGE EQU $-1 ; !FIXIT § 祬, ¥á«¨ ¬®¦® ¯àï¬ãî ¡ë«® ¯à®¯¨á âì?
|
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
OUT (SLOT0),A
|
OUT (SLOT0),A
|
||||||
|
|
||||||
@ -1059,85 +1059,137 @@ NO_SND:
|
|||||||
RETI
|
RETI
|
||||||
|
|
||||||
;***********************************
|
;***********************************
|
||||||
|
/*
|
||||||
VISIO: IN A,(PORT_Y)
|
VISIO: IN A,(PORT_Y)
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
;
|
||||||
|
; LD A,(.ADD_PAR)
|
||||||
|
; OR A
|
||||||
|
; LD A,1 ; x2 pixels
|
||||||
|
; JR NZ,.set_pix
|
||||||
|
; LD A,2 ; x2 pixels
|
||||||
|
.set_pix: ; LD (.pixels),A
|
||||||
|
; LD B,A
|
||||||
|
;
|
||||||
|
LD HL,(SND_A)
|
||||||
|
LD (.ADDRESS),HL
|
||||||
|
; OR A
|
||||||
|
; JR Z,.no_add
|
||||||
|
|
||||||
LD A,(SND_A+1)
|
.no_add: LD A,H
|
||||||
ADD A,A
|
CALL .PUT_DOT
|
||||||
; ADD A,A
|
; ¢ë室
|
||||||
AND #7F
|
.exit: POP AF
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
; ‚•Ž„: A - áâ à訩 ¡ ©â ¤à¥á SND_A
|
||||||
|
; B = (ª®«¨ç¥á⢮ ¯¨ªá¥«®¢)/2
|
||||||
|
.PUT_DOT: ADD A,A
|
||||||
|
;DJNZ .PUT_DOT
|
||||||
|
AND #7F ; !HARDCODE ¤«¨ ®ª - 128 ¡ ©â®¢
|
||||||
LD L,A
|
LD L,A
|
||||||
LD H,#B0
|
LD H,#B0 ; !HARDCODE ¡ãää¥à
|
||||||
LD BC,7
|
LD BC,7 ; !HARDCODE ᬥ饨¥ ®â ç « à ¬ª¨
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
|
;
|
||||||
|
LD A,(SND_A)
|
||||||
|
RLCA
|
||||||
|
LD C,A
|
||||||
|
ADD HL,BC
|
||||||
|
;
|
||||||
|
CALL .SET_Y_COLOR
|
||||||
|
;
|
||||||
|
LD A,#50
|
||||||
|
OUT (SLOT3),A
|
||||||
|
|
||||||
LD BC,(SND_A)
|
LD A,(HL) ; old
|
||||||
|
LD (.OLD_),A
|
||||||
|
LD A,(.NEW_)
|
||||||
|
LD (HL),A
|
||||||
|
; ¯¥à¥ª«îç ¥¬ ¢ HL ¤à¥á á ¡ãä¥à íªà
|
||||||
|
LD A,H
|
||||||
|
ADD A,#10
|
||||||
|
LD H,A
|
||||||
|
;
|
||||||
|
LD A,(SND_A)
|
||||||
|
RLCA
|
||||||
|
JR NC,.no_dec_hl
|
||||||
|
INC HL
|
||||||
|
.no_dec_hl: ;
|
||||||
|
; áâ¥à¥âì ¯® áâ ன ª®®à¤¨ â¥
|
||||||
|
; LD A,(.pixels)
|
||||||
|
; LD B,A
|
||||||
|
; LD C,A
|
||||||
|
;
|
||||||
|
.OLD_+1: LD A,0
|
||||||
|
OUT (PORT_Y),A ; old
|
||||||
|
; áâ¥à¥âì
|
||||||
|
.clear+1: LD A,0 ; clear
|
||||||
|
.loop_clear: LD (HL),A
|
||||||
|
INC L
|
||||||
|
LD (HL),A ; áâ¥à¥âì
|
||||||
|
; INC L
|
||||||
|
; DJNZ .loop_clear
|
||||||
|
; DEC L
|
||||||
|
; à¨á®¢ âì ¯® ®¢®© ª®®à¤¨ â¥
|
||||||
|
; LD B,C
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
.loop_draw: ;
|
||||||
|
.NEW_+1: LD A,0
|
||||||
|
OUT (PORT_Y),A ; new
|
||||||
|
.COLOR_+1: LD A,#FF
|
||||||
|
; à¨á®¢ âì
|
||||||
|
LD (HL),A
|
||||||
|
DEC L
|
||||||
|
LD (HL),A
|
||||||
|
; INC L
|
||||||
|
;
|
||||||
|
; LD A,(.ADDRESS)
|
||||||
|
; ADD A,8
|
||||||
|
; LD (.ADDRESS),A
|
||||||
|
; LD D,B
|
||||||
|
; CALL .SET_Y_COLOR
|
||||||
|
; ;
|
||||||
|
; LD B,D
|
||||||
|
; DJNZ .loop_draw
|
||||||
|
;
|
||||||
|
.no_draw: LD A,CBL.BUFFER_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.SET_Y_COLOR: ;
|
||||||
|
.ADDRESS+1: LD BC,0
|
||||||
LD A,(BC)
|
LD A,(BC)
|
||||||
RRA
|
RRA
|
||||||
CPL
|
CPL
|
||||||
AND #7F
|
AND #7F
|
||||||
ADD A,#40
|
ADD A,#40
|
||||||
LD (COLOR_),A
|
LD (.COLOR_),A
|
||||||
INC BC
|
INC BC
|
||||||
LD A,(BC) ; new
|
LD A,(BC) ; new
|
||||||
ADD_PAR+1: ADD A,0 ; parameter for 8/16 bit
|
.ADD_PAR+1: ADD A,0 ; parameter for 8/16 bit
|
||||||
RRA
|
RRA
|
||||||
RRA
|
RRA
|
||||||
AND #3F
|
AND #3F
|
||||||
ADD A,#40 ; Vertical Shift
|
ADD A,#40 ; !HARDCODE Vertical Shift
|
||||||
LD (NEW_),A
|
LD (.NEW_),A
|
||||||
|
;
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,(MAX_)
|
LD A,(MAX_)
|
||||||
CP B
|
CP B
|
||||||
JR NC,NO_MAX
|
RET NC
|
||||||
LD A,B
|
LD A,B
|
||||||
LD (MAX_),A
|
LD (MAX_),A
|
||||||
NO_MAX:
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
LD A,(HL) ; old
|
|
||||||
LD (OLD_),A
|
|
||||||
LD A,(NEW_)
|
|
||||||
LD (HL),A
|
|
||||||
|
|
||||||
OLD_+1: LD A,0
|
|
||||||
OUT (PORT_Y),A ; old
|
|
||||||
|
|
||||||
LD A,H
|
|
||||||
ADD A,#10
|
|
||||||
LD H,A
|
|
||||||
|
|
||||||
LD A,0 ; clear
|
|
||||||
LD (HL),A
|
|
||||||
INC L
|
|
||||||
LD (HL),A
|
|
||||||
; INC L
|
|
||||||
; LD (HL),A
|
|
||||||
; INC L
|
|
||||||
; LD (HL),A ; áâ¥à¥âì
|
|
||||||
|
|
||||||
NEW_+1: LD A,0
|
|
||||||
OUT (PORT_Y),A ; new
|
|
||||||
|
|
||||||
COLOR_+1: LD A,#FF
|
|
||||||
LD (HL),A
|
|
||||||
DEC L
|
|
||||||
LD (HL),A
|
|
||||||
; DEC L
|
|
||||||
; LD (HL),A
|
|
||||||
; DEC L
|
|
||||||
; LD (HL),A ; à¨á®¢ âì ®¢®¥
|
|
||||||
|
|
||||||
LD A,CBL.BUFFER_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
POP AF
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
|
; .pixels: DB 1 ; 1 = 2, 2 = 4, 3 = 6
|
||||||
|
*/
|
||||||
|
|
||||||
|
include 'visio2.asm'
|
||||||
|
|
||||||
;*************************************
|
;*************************************
|
||||||
|
|
||||||
@ -1359,7 +1411,6 @@ READ_FILE_X: ; HL -
|
|||||||
;
|
;
|
||||||
|
|
||||||
READ_FILE_X1: ; HL - ªã¤ ç¨â âì
|
READ_FILE_X1: ; HL - ªã¤ ç¨â âì
|
||||||
|
|
||||||
LD A,(DOS_FLAG1)
|
LD A,(DOS_FLAG1)
|
||||||
AND A
|
AND A
|
||||||
JP NZ,READ_FILE_XD1
|
JP NZ,READ_FILE_XD1
|
||||||
@ -1543,7 +1594,7 @@ FILE_HANDLE: db 0
|
|||||||
|
|
||||||
CBL_MODE: db 0
|
CBL_MODE: db 0
|
||||||
|
|
||||||
FACE_FILE: db "WAV_PL.BMP",0
|
;FACE_FILE: db "WAV_PL.BMP",0
|
||||||
|
|
||||||
LINES: db "RIFF","WAVEfmt "
|
LINES: db "RIFF","WAVEfmt "
|
||||||
LINES_DATA: db "data"
|
LINES_DATA: db "data"
|
||||||
@ -1552,13 +1603,13 @@ ERROR_MSG:
|
|||||||
db 13,10,"File not found."
|
db 13,10,"File not found."
|
||||||
db 13,10,"USE: wavplay.exe filename.ext",13,10,0
|
db 13,10,"USE: wavplay.exe filename.ext",13,10,0
|
||||||
ERROR_MSG2:
|
ERROR_MSG2:
|
||||||
db 13,10,"File format not recognized.",13,10,0
|
db 13,10,"The file format is not recognized.",13,10,0
|
||||||
ERROR_MSG3:
|
ERROR_MSG3:
|
||||||
db 13,10,"Not standart data rate",13,10,0
|
db 13,10,"Non-standart data rate.",13,10,0
|
||||||
|
|
||||||
START_MSG:
|
START_MSG:
|
||||||
db 13,10,"COVOX-Blaster WAV-Player by Ivan Mak"
|
db 13,10,"COVOX-Blaster WAV-Player v",FULL_VERSION," by Ivan Mak"
|
||||||
db 13,10,"(c) Sprinter Team. 2023.",13,10,0
|
db 13,10,"(c) Sprinter Team. 2024.",13,10,0
|
||||||
|
|
||||||
PLAY_LIST_ID: db "PLAYLIST"
|
PLAY_LIST_ID: db "PLAYLIST"
|
||||||
|
|
||||||
|
|||||||
130
visio2.asm
Normal file
130
visio2.asm
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
;***********************************
|
||||||
|
|
||||||
|
VISIO: IN A,(PORT_Y)
|
||||||
|
PUSH AF
|
||||||
|
;
|
||||||
|
LD A,(.ADD_PAR)
|
||||||
|
OR A
|
||||||
|
LD A,1 ; lines
|
||||||
|
JR NZ,.set_lines
|
||||||
|
INC A ; lines
|
||||||
|
.set_lines: LD (.lines),A
|
||||||
|
LD B,A
|
||||||
|
|
||||||
|
LD HL,(SND_A)
|
||||||
|
LD (.ADDRESS),HL
|
||||||
|
; OR A
|
||||||
|
; JR Z,.no_add
|
||||||
|
|
||||||
|
.no_add: LD A,H
|
||||||
|
CALL .PUT_DOT
|
||||||
|
; ¢ë室
|
||||||
|
.exit: POP AF
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
; ‚•Ž„: A - áâ à訩 ¡ ©â ¤à¥á SND_A
|
||||||
|
; B = (ª®«¨ç¥á⢮ ¯®«®á®ª)/2
|
||||||
|
.PUT_DOT: ADD A,A
|
||||||
|
;
|
||||||
|
AND #7F ; !HARDCODE ¤«¨ ®ª - 128 ¡ ©â®¢
|
||||||
|
LD L,A
|
||||||
|
LD H,#B0 ; !HARDCODE ¡ãää¥à
|
||||||
|
LD BC,7 ; !HARDCODE ᬥ饨¥ ®â ç « à ¬ª¨
|
||||||
|
ADD HL,BC
|
||||||
|
;
|
||||||
|
LD A,(SND_A)
|
||||||
|
RLCA
|
||||||
|
LD C,A
|
||||||
|
ADD HL,BC
|
||||||
|
;
|
||||||
|
CALL .SET_Y_COLOR
|
||||||
|
;
|
||||||
|
LD A,#50
|
||||||
|
OUT (SLOT3),A
|
||||||
|
|
||||||
|
LD A,(HL) ; old
|
||||||
|
LD (.OLD_),A
|
||||||
|
LD A,(.NEW_)
|
||||||
|
LD (HL),A
|
||||||
|
; ¯¥à¥ª«îç ¥¬ ¢ HL ¤à¥á á ¡ãä¥à íªà
|
||||||
|
LD A,H
|
||||||
|
ADD A,#10
|
||||||
|
LD H,A
|
||||||
|
;
|
||||||
|
LD A,(SND_A)
|
||||||
|
RLCA
|
||||||
|
JR NC,.no_dec_hl
|
||||||
|
INC HL
|
||||||
|
.no_dec_hl: ;
|
||||||
|
; áâ¥à¥âì ¯® áâ ன ª®®à¤¨ â¥
|
||||||
|
; LD A,(.lines)
|
||||||
|
; LD B,A
|
||||||
|
; LD C,A
|
||||||
|
;
|
||||||
|
.OLD_+1: LD A,0
|
||||||
|
OUT (PORT_Y),A ; old
|
||||||
|
; áâ¥à¥âì
|
||||||
|
.clear+1: LD A,0 ; clear
|
||||||
|
.loop_clear: LD (HL),A
|
||||||
|
INC L
|
||||||
|
LD (HL),A ; áâ¥à¥âì
|
||||||
|
; INC L
|
||||||
|
; DJNZ .loop_clear
|
||||||
|
; DEC L
|
||||||
|
; à¨á®¢ âì ¯® ®¢®© ª®®à¤¨ â¥
|
||||||
|
; LD B,C
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
.loop_draw: ;
|
||||||
|
.NEW_+1: LD A,0
|
||||||
|
OUT (PORT_Y),A ; new
|
||||||
|
.COLOR_+1: LD A,#FF
|
||||||
|
; à¨á®¢ âì
|
||||||
|
LD (HL),A
|
||||||
|
DEC L
|
||||||
|
LD (HL),A
|
||||||
|
; INC L
|
||||||
|
;
|
||||||
|
; LD A,(.ADDRESS)
|
||||||
|
; ADD A,8
|
||||||
|
; LD (.ADDRESS),A
|
||||||
|
; LD D,B
|
||||||
|
; CALL .SET_Y_COLOR
|
||||||
|
; ;
|
||||||
|
; LD B,D
|
||||||
|
; DJNZ .loop_draw
|
||||||
|
;
|
||||||
|
.no_draw: LD A,CBL.BUFFER_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
;
|
||||||
|
.SET_Y_COLOR: ;
|
||||||
|
.ADDRESS+1: LD BC,0
|
||||||
|
LD A,(BC)
|
||||||
|
RRA
|
||||||
|
CPL
|
||||||
|
AND #7F
|
||||||
|
ADD A,#40
|
||||||
|
LD (.COLOR_),A
|
||||||
|
INC BC
|
||||||
|
LD A,(BC) ; new
|
||||||
|
.ADD_PAR+1: ADD A,0 ; parameter for 8/16 bit
|
||||||
|
RRA
|
||||||
|
RRA
|
||||||
|
AND #3F
|
||||||
|
ADD A,#40 ; !HARDCODE Vertical Shift
|
||||||
|
LD (.NEW_),A
|
||||||
|
;
|
||||||
|
LD B,A
|
||||||
|
LD A,(MAX_)
|
||||||
|
CP B
|
||||||
|
RET NC
|
||||||
|
LD A,B
|
||||||
|
LD (MAX_),A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.lines: DB 1 ; 1 = 1, 2 = 2
|
||||||
Loading…
Reference in New Issue
Block a user