mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
1.6 KiB
145 lines
1.6 KiB
;
|
|
|
|
.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
|
|
|
|
|