|
Subject: [stella] Paddle-based sound utility From: jimn8@xxxxxxxxxx (Jim Nitchals) Date: Mon, 14 Oct 1996 10:29:21 -0700 (PDT) |
;
; Utility found on Dennis Caswell's source disk for Escape from the Mindmaster
;
; Kind of like SoundX, but no volume control built in.
; File name: SOUNDS
; .LIST OFF
llchar '.'
VSYNC .EQ $0
VBLANK .EQ $1
WHSYNC .EQ $2
P1CONT .EQ $4
P2CONT .EQ $5
P1COLOR .EQ $6 ;
P2COLOR .EQ $7 ;
PFCOLOR .EQ $8
BCOLOR .EQ $9
PFCONT .EQ $A
RP1 .EQ $B
RP2 .EQ $C
PF1 .EQ $D
PF2 .EQ $E
PF3 .EQ $F
PL1POS .EQ $10 ;
PL2POS .EQ $11 ;
M1POS .EQ $12 ;
M2POS .EQ $13 ;
BALPOS .EQ $14 ;
S1TYPE .EQ $15 ;
S2TYPE .EQ $16 ;
S1PITCH .EQ $17 ;
S2PITCH .EQ $18 ;
S1VOL .EQ $19 ;
S2VOL .EQ $1A ;
PL1 .EQ $1B
PL2 .EQ $1C
MIS1 .EQ $1D
MIS2 .EQ $1E
BALL .EQ $1F
P1SHFT .EQ $20 ;
P2SHFT .EQ $21 ;
M1SHFT .EQ $22 ;
M2SHFT .EQ $23 ;
BLSHFT .EQ $24 ;
PL1DC .EQ $25 ;
PL2DC .EQ $26 ;
BALLDC .EQ $27
MS1RST .EQ $28 ;
MS2RST .EQ $29 ;
SHIFT .EQ $2A ;
SZERO .EQ $2B
CZERO .EQ $2C ;
COLSN0 .EQ $30 ;
COLSN1 .EQ $31
COLSN2 .EQ $32 ;
COLSN3 .EQ $33
COLSN4 .EQ $34
COLSN5 .EQ $35
COLSN6 .EQ $36
COLSN7 .EQ $37
PDL1 .EQ $38
PDL2 .EQ $39
PDL3 .EQ $3A
PDL4 .EQ $3B
JSBTN1 .EQ $3C ;
JSBTN2 .EQ $3D ;
STICK .EQ $280 ;
CONSOL .EQ $282 ;
TIMER .EQ $284 ;
TIME1C .EQ $294 ;
TIME8C .EQ $295 ;
TIME64C .EQ $296 ;
TIME1KC .EQ $297 ;
.OR $81
P1VAL .BS 1
P2VAL .BS 1
TYPPTR .BS 2
PITPTR .BS 2
TEMP .BS 1
COLOR .BS 1
VOLUME .BS 1
.OR $F800
*********************************
* *
* VCS SOUND DEVELOPMENT UTILITY *
* *
* CONTROLS ONE SOUND VOICE: *
* PADDLE 1 CONTROLS TYPE; *
* PADDLE 2 CONTROLS PITCH. *
* VOLUME IS INITIALIZED TO ZERO.*
* WHILE EITHER PADDLE BUTTON IS *
* HELD DOWN, THE VOLUME IS SET *
* TO THE VALUE IN THE ZERO-PAGE *
* LOCATION "VOLUME," AND THE *
* SOUND IS HEARD. *
* *
*********************************
START SEI
CLD
LDA #$00
TAX
CLEAR STA 0,X
TXS
INX
BNE CLEAR
LDA #$80
STA BCOLOR
LDA #$88
STA P1COLOR
LDA #$48
STA P2COLOR
LDA /ZERO
STA TYPPTR+1
STA PITPTR+1
LDA #8
STA VOLUME
SCREEN LDA #$FF
STA VBLANK
STA WHSYNC
LDX #7
.0 DEX
BNE .0
STA PL1POS
LDX #3
.1 DEX
BNE .1
STA PL2POS
LDX #$48
STX P2COLOR
STA WHSYNC
STA WHSYNC
STA VSYNC
LDA #$00
STA WHSYNC
STA WHSYNC
STA WHSYNC
STA VSYNC
STA WHSYNC
STA WHSYNC
STA WHSYNC
STA VBLANK
LDA #0
STA P1VAL
STA P2VAL
LDY #247
WAIT STA WHSYNC
LDA PDL3
BMI .0
STY P1VAL
.0 LDA PDL4
BMI .1
STY P2VAL
.1 DEY
CPY #173
BNE WAIT
LDX #80
DOLIN1 STA WHSYNC
LDA STYPE,X
STA PL1
LDA SPITCH,X
STA PL2
LDA PDL3
BMI .0
STY P1VAL
.0 LDA PDL4
BMI .1
STY P2VAL
.1 DEX
DEY
CPX #10
BNE DOLIN1
STA WHSYNC
STA WHSYNC
STA WHSYNC
STA WHSYNC
STA WHSYNC
TXA ; KLUGE ALERT.
PHA
TYA
SEC
SBC #5
TAX
PLA
TAY
DOLIN2 STA WHSYNC
LDA (TYPPTR),Y
STA PL1
LDA (PITPTR),Y
STA PL2
LDA COLOR
STA P2COLOR
LDA PDL3
BMI .0
STX P1VAL
.0 LDA PDL4
BMI .1
STX P2VAL
.1 DEY
BPL DOLIN2
STA WHSYNC
LDA #0
STA PL1
STA PL2
WAIT2 STA WHSYNC
LDA PDL3
BMI .0
STX P1VAL
.0 LDA PDL4
BMI .1
STX P2VAL
.1 DEX
BNE WAIT2
LDA P1VAL
BNE .9
LDA #$FF
.9 LSR
LSR
LSR
LSR
STA S1TYPE
STA TEMP
LDY #10
CLC
.2 ADC TEMP ; MULTIPLY BY
DEY ; ELEVEN.
BNE .2
STA TYPPTR
LDY #$48
LDA P2VAL
BNE .8
LDA #$FF
.8 EOR #$FF
CMP #128
BCC .3
LDY #$4F
.3 STY COLOR
LSR
LSR
LSR
STA S1PITCH
AND #$0F
STA TEMP
LDY #10
CLC
.4 ADC TEMP
DEY
BNE .4
STA PITPTR
LDY VOLUME
LDA STICK
ASL
ASL
ASL
ASL
BPL .5
ASL
BPL .5
LDY #0
.5 STY S1VOL
JMP SCREEN
align 256
; put this on a page boundary if your assembler doesn't support "align",
; for example: .OR $FA00
STYPE .HS 0000000000000000000000
.HS 000000
.HS FFFFFFC0F8F8F8C0FFFFFF
.HS 000000
.HS C0C0C0FCFEFFC3C3FFFEFC
.HS 000000
.HS 18181818183C3C6666C3C3
.HS 000000
.HS 1818181818181818FFFFFF
.HS 000000
.HS 0000000000000000000000
SPITCH .HS 0000000000000000000000
.HS 000000
.HS C3C3C3C3FFFFFFC3C3C3C3
.HS 000000
.HS 3C7EFFE3C0C0C0E3FF7E3C
.HS 000000
.HS 1818181818181818FFFFFF
.HS 000000
.HS 3C3C3C18181818183C3C3C
.HS 000000
.HS C0C0C0FCFEFFC3C3FFFEFC
; same here: .OR or ORG to $FB00 if you don't have an align directive
align 256
ZERO .HS 3C7EFFE7C3C3C3E7FF7E3C
ONE .HS 3C3C3C1818181818383818
TWO .HS FFFFFFE0380E03E7FF7E3C
THREE .HS 3C7EFFC3060C06C3FF7E3C
FOUR .HS 060606FFFFFFC666361E0E
FIVE .HS 3C7EE70307FFFCC0C0FFFF
SIX .HS 3C7EC3C3FEFCC0C3E77E3C
SEVEN .HS 30303030381C0E07FFFFFF
EIGHT .HS 3C7EE7C3E77EE7C3E77E3C
NINE .HS 3C7EE7C3033F7FC3C37E3C
A .HS C3C3C3FFFFFFC3C3FFFF7E
B .HS FCFEC7C7FEFCFEC7C7FEFC
C .HS 3C7EE7C3C0C0C0C3E77E3C
D .HS FCFEC7C3C3C3C3C3C7FEFC
E .HS FFFFFFC0F8F8F8C0FFFFFF
F .HS C0C0C0C0F8F8F8C0FFFFFF
.or $FFFC
.DA START
bsave $f800,$800,2600demo.bin
end
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [stella] Re: robbie.a65, Greg Troutman | Thread | [stella] Sound utility (uuencoded b, Jim Nitchals |
| [stella] Re: robbie.a65, Greg Troutman | Date | [stella] Sound utility (uuencoded b, Jim Nitchals |
| Month |