Jump to content
  • entries
    36
  • comments
    18
  • views
    33,678

Learning POKEY


tschak909

335 views

I took some time out, today, to learn the basics of bit-banging the POKEY chip.. I will be doing more complicated experiments as my development with the invaders game continues....

 

;
; SOUND01 - PLAY A MUSICAL SCALE
;

	.INCLUDE atariequ.asm			; ATARI EQUATES

	*=$0600					; CRAM OURSELVES IN PAGE 6
	JMP START				; GO TO START, SKIP OVER TABLE
;
; TABLES
;
PCHTBL		.BYTE $79,$6C,$60,$5B,$51,$48,$40,$3C	; C MAJOR SCALE
DLYTBL		.BYTE $3C,$1E,$1E,$1E,$1E,$1E,$1E,$FF	; QUARTERS ON THE ENDS, EIGHTHS IN THE MIDDLE
CTLTBL		.BYTE $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8	; ALL HALF VOLUME, PURE TONES (SQUARE)

;
; START
;
START		CLD					; CLEAR DECIMAL FLAG
	CLC					; CLEAR CARRY FLAG
RESET		LDA #$00				; 
	STA AUDCTL				; CLEAR AUDIO CONTROL REGISTER
	LDX #$00				; X = OFFSET COUNTER FOR TABLES
LOOP		LDA PCHTBL,X				; GRAB CURRENT PITCH
	STA COLOR2				; CHANGE COLOR TO DENOTE WHAT IS BEING PLAYED.
	STA AUDF1				; STORE IT
	LDA CTLTBL,X				; GRAB CURRENT DISTORTION/VOLUME
	STA AUDC1				; STORE IT
DELAY		LDA RTCLOK+2				; GRAB LOW BYTE OF REAL TIME CLOCK
	AND DLYTBL,X				; LOP OFF EVERYTHING BUT NEWHAT WE WANT TO COUNT TO
	BNE DELAY				; ELSE WAIT SOME MORE.
DECLIK		LDA RTCLOK+2				; READ RTCLOK AGAIN
	AND DLYTBL,X				; CHECK AGAIN
	BEQ DECLIK				; WAIT IF IT MATCHES
NEXTNOTE	INX					; INCREMENT X
	CPX #$08				; HAVE ALL 8 NOTES PASSED?
	BEQ STOP				; YES, STOP
	BCC LOOP
STOP		LDA #$00				; CLEAR EVERYTHING
	STA AUDF1				; FREQUENCY
	STA AUDC1				; AND DISTORTION/VOLUME
INFINITE	JMP INFINITE				; AND HIT THE INFINITE LOOP

 

the resulting sound output is here: arcadia.zip

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...