WAV-Player/visio2.asm
Tolik 0c69e84a29 исправлено несколько багов с некорректной работой плейлиста.
исправлен баг с шумом при переключении треков плейлиста.
2025-06-27 23:16:27 +10:00

214 lines
2.8 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;***********************************
/* ; NEW
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
*/
VISIO: IN A,(PORT_Y)
PUSH AF
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)
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 ; Vertical Shift
LD (.NEW_),A
LD B,A
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,SP_SND.CBL.BUFFER_PAGE
OUT (SLOT3),A
POP AF
OUT (PORT_Y),A
RET