home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-10 | 5.3 KB | 186 lines | [04] ASCII Text (0x0000) |
- ; *************************
- ; * DISPLAY.SRC0A
- ; *************************
- ;
- NOT07 LDA #$B2
- STA STS
- LDA #$0
- STA VOLFLAG
- CLC
- RTS
- ;
- STSB2 LDA STS
- CMP #$B2
- BNE STS99
- ;
- LDA VOLFLAG
- BEQ NOTVOL
- LDA INBYTE
- LDX CHANNEL
- STA VOLUME,X
- ;
- NOTVOL LDA #$B1
- STA STS
- CLC
- RTS
- ;
- ;
- STS99 LDA STS
- CMP #$99
- BNE STS9A
- ;
- LDA #$9A
- STA STS
- LDX #$04
- DRUMLOOP LDA INBYTE
- CMP DRUMMAP,X
- BCS NEXTDRUM
- STX DRUM
- SEC
- RTS
- NEXTDRUM DEX
- BNE DRUMLOOP
- STX DRUM
- SEC
- RTS
- DRUMMAP DFB 00,60,52,44,36
- ;
- STS9A LDA STS
- CMP #$9A
- BNE ENDCHK
- LDA INBYTE
- BEQ NODRUM
- JSR DRUMMACH
- NODRUM SEC
- RTS
- ;
- ENDCHK CLC
- RTS
- ;
- POKEIT LDX ZPVECT ;DON'T POKE IF 0000
- BNE GOODPOKE
- LDX ZPVECT+1
- BNE GOODPOKE
- CLC
- RTS
- ;
- GOODPOKE LDY #$00
- STA (ZPVECT),Y
- CLC
- RTS
- ;
- TRANSPOS LDA INBYTE
- CLC
- ADC TRANSP
- BMI DONTTRAN
- STA INBYTE
- LDY #MIDIBYTE
- STA (BASL),Y
- DONTTRAN RTS
- ;
- ;
- ;DRUMMACH.SRC - DRUM MACHINE SOUNDS THRU MOCKINGBOARD
- ;
- MSLOT EQU $C400
- MSTS EQU MSLOT
- MDTA EQU MSTS+1
- ;
- DRUM DFB $01 ; POKE 2055, DRUM
- ;
- SPEAKER DFB $00 ;00=LEFT, 80=RIGHT
- ;
- REGISTER DFB $08 ; POKE 2057, REGISTER
- ;
- DATA DFB $00 ; POKE 2058, DATA
- ;
- DRUMMACH LDA DRUM
- CMP #$0
- BCC EXIT
- CMP #$5
- BCS EXIT
- JSR INITMOCK
- JSR SETNOISE
- LDA DRUM
- TAX
- LDA NOISE,X
- STA DATA
- LDA #$06
- STA REGISTER
- JSR POKEREG
- LDA COARSE,X
- STA DATA
- LDA #$0C
- STA REGISTER
- JSR POKEREG
- JSR SOUNDNOW
- EXIT RTS
- ;
- ; INSTRUMENT DATA: NOISE PERIOD, COARSE TONE PERIOD
- ;
- ;CYMBAL, HIHAT, SNARE, TOMTOM, BASSDRUM
- NOISE DFB $01,$01,$04,$10,$1F
- COARSE DFB $10,$02,$04,$02,$04
- ;
- ;====================================
- ; POKE REGISTER WITH DATA
- ;
- POKEREG LDA SPEAKER ;GET SPEAKER (L/R) INTO Y
- AND #$80
- TAY
- LDA REGISTER ;GET REGISTER #
- AND #$0F
- STA MDTA,Y
- LDA #$07 ;SEND REGISTER #
- STA MSTS,Y
- LDA #$04
- STA MSTS,Y
- LDA DATA ;GET DATA BYTE
- STA MDTA,Y
- LDA #$06 ;SEND DATA BYTE
- STA MSTS,Y
- LDA #$04
- STA MSTS,Y
- RTS
- ;
- INITMOCK LDA #$FF ;INIT
- STA MSLOT+$03
- STA MSLOT+$83
- LDA #$07
- STA MSLOT+$02
- STA MSLOT+$82
- LDA #$00 ;RESET ALL PARMS TO 0
- STA MSTS
- STA MSLOT+$80
- LDA #$04
- STA MSTS
- STA MSLOT+$80
- RTS
- ;
- ;;;ALLOW USER TO PICK SPEAKER
- ;;; LDA #$00 ;SPEAKER= LEFT
- ;;; STA SPEAKER
- SETNOISE LDA #$07 ;ENABLE
- STA REGISTER
- LDA #$07 ; ALL NOISE
- STA DATA
- JSR POKEREG ;SEND IT
- LDA #$08
- STA REGISTER
- LDA #$10
- STA DATA
- JSR POKEREG
- INC REGISTER
- JSR POKEREG
- INC REGISTER
- JSR POKEREG
- RTS
- ;
- SOUNDNOW LDA #$0D
- STA REGISTER
- LDA #$09 ;ENVELOPE SHAPE
- STA DATA
- JSR POKEREG
- RTS
- ;
- CHN DISPLAY.SRC1
-