mirror of
https://github.com/Tolik-Trek/WAV-Player.git
synced 2026-06-15 00:51:34 +03:00
214 lines
2.8 KiB
NASM
214 lines
2.8 KiB
NASM
;***********************************
|
||
/* ; 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
|