недоделка

This commit is contained in:
Tolik 2025-02-28 02:28:01 +10:00
parent 02db2c9d50
commit 02c469a77c
3 changed files with 270 additions and 89 deletions

@ -1 +1 @@
Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022 Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a

View File

@ -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)
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
VISIO: IN A,(PORT_Y) .no_add: LD A,H
PUSH AF CALL .PUT_DOT
; ¢ë室
.exit: POP AF
OUT (PORT_Y),A
RET
LD A,(SND_A+1)
ADD A,A
; ADD A,A
AND #7F
LD L,A
LD H,#B0
LD BC,7
ADD HL,BC
LD BC,(SND_A) ; ‚•Ž„: A - áâ à訩 ¡ ©â  ¤à¥á  SND_A
; B = (ª®«¨ç¥á⢮ ¯¨ªá¥«®¢)/2
.PUT_DOT: ADD A,A
;DJNZ .PUT_DOT
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,(BC) LD A,(HL) ; old
RRA LD (.OLD_),A
CPL LD A,(.NEW_)
AND #7F LD (HL),A
ADD A,#40 ; ¯¥à¥ª«îç ¥¬ ¢ HL  ¤à¥á á ¡ãä¥à  ­  íªà ­
LD (COLOR_),A LD A,H
INC BC ADD A,#10
LD A,(BC) ; new LD H,A
ADD_PAR+1: ADD A,0 ; parameter for 8/16 bit ;
RRA LD A,(SND_A)
RRA RLCA
AND #3F JR NC,.no_dec_hl
ADD A,#40 ; Vertical Shift INC HL
LD (NEW_),A .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)
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
;
; .pixels: DB 1 ; 1 = 2, 2 = 4, 3 = 6
*/
LD B,A include 'visio2.asm'
LD A,(MAX_)
CP B
JR NC,NO_MAX
LD A,B
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
;************************************* ;*************************************
@ -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
View 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