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 |