WAV-Player/visio2.asm
2025-02-28 02:28:01 +10:00

130 lines
1.8 KiB
NASM
Raw 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.

;***********************************
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