vgmplay updates

Still not in a terrific state but better
This commit is contained in:
b1ackmai1er
2022-12-15 21:25:56 +08:00
parent ef1989f600
commit e32d6e2d5d
20 changed files with 621 additions and 158 deletions

View File

@@ -0,0 +1,145 @@
;
.ORG $0100
; SCALES ON ALL THREE CHANNELS
; JR SKIP
LD B,3
NEXTCH0 LD A,B
DEC A
LD (CHANNEL),A
PUSH BC ; ACROSS
CALL SCALE ; ALL
POP BC ; CHANNELS
DJNZ NEXTCH0
; CONSTANT TONE ON ALL THREE CHANNELS, SCALE VOLUME
SKIP:
LD HL,332+48 ; TONE
LD (NOTE),HL
;
LD B,3
NEXTCH1 LD A,B
DEC A
LD (CHANNEL),A
PUSH BC ; ACROSS
CALL TONE ; ALL
POP BC ; CHANNELS
DJNZ NEXTCH1
RET
TONE: LD B,50H ; RESET
LD C,0
RST 08
;
NEXT1: LD B,51H ; VOLUME
LD C,0
LD A,(VOLUME)
LD L,A
RST 08
;
LD B,53H ; NOTE
LD C,0
LD HL,(NOTE)
RST 08
;
LD B,54H ; PLAY
LD C,0
LD A,(CHANNEL)
LD D,A
RST 08
;
CALL DELAY
;
LD A,(VOLUME)
DEC A
LD (VOLUME),A
JR NZ,NEXT1
;
LD B,51H ; VOLUME
LD C,0
LD L,00H
RST 08
;
LD B,54H ; PLAY
LD C,0
LD A,(CHANNEL)
LD D,A
RST 08
;
RET
;
;
;
SCALE: LD B,50H ; RESET
LD C,0
RST 08
;
LD B,51H ; VOLUME
LD C,0
LD L,80H
RST 08
;
LD HL,380
LD (NOTE),HL
;
NEXT0: LD B,53H ; NOTE
LD C,0
LD HL,(NOTE)
RST 08
;
LD B,54H ; PLAY
LD C,0
LD A,(CHANNEL)
LD D,A
RST 08
;
OR A
JR Z,NEXT2
LD C,9
LD DE,BADFLAG
CALL 5
JR NEXT3
;
NEXT2: CALL DELAY
;
NEXT3: LD HL,(NOTE)
DEC HL
LD A,L
LD (NOTE),A
LD A,H
LD (NOTE+1),A
OR L
;
JR NZ,NEXT0
;
LD B,51H ; VOLUME
LD C,0
LD L,00H
RST 08
;
LD B,54H ; PLAY
LD C,0
LD A,(CHANNEL)
LD D,A
RST 08
;
RET
;
DELAY: LD HL,-1
DELAY1: DEC HL
LD A,H
OR L
JR NZ,DELAY1
RET
;
BADFLAG .DB '*', $0D, $0A, '$'
NOTE .DW 128
VOLUME .DB 0
CHANNEL .DB 0
;
.END