home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
DISPLAY.SRC0A.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
5KB
|
186 lines
; *************************
; * 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