mirror of
https://github.com/Michaelangel007/apple2_mockingboard.git
synced 2024-10-10 08:23:41 +00:00
108 lines
1.2 KiB
Plaintext
108 lines
1.2 KiB
Plaintext
;PROCESSOR LOOP
|
|
|
|
;FOR LASER AND BOMB
|
|
|
|
;SOUND EFFECT
|
|
|
|
*
|
|
|
|
ORG $8F00
|
|
|
|
;FOR FIRST 6522
|
|
|
|
*
|
|
|
|
PTR EQU $08 ;DATA POINTE
|
|
|
|
TONE EQU $0A ;TONAL VALUE
|
|
|
|
TIME EQU $0B ;TIME VALUE FOR DELAY
|
|
|
|
BASE EQU $C400 ;CARD ADDRESS
|
|
|
|
ORA EQU BASE+1 ;PORT A
|
|
|
|
TAR EQU $8000 ; TABLE ACCESS ROUTINE
|
|
|
|
LATCH EQU $900B ;LATCH SUBROUTINE
|
|
|
|
|
|
|
|
WRITE EQU $9016 ;WRITE SUBROUTINE
|
|
|
|
RESET EQU $9021 ;RESET SUBROUTINE
|
|
|
|
WAIT EQU $FCAB ;WAIT SUBROUTINE
|
|
|
|
*
|
|
|
|
*
|
|
|
|
LASER LDA #$00 ;LOAD HIGHEST
|
|
|
|
STA TONE ;FREQUENCY VALUE
|
|
|
|
LDA #$0F ;LOAD SHORT
|
|
|
|
STA TIME ;TIME DELAY
|
|
|
|
JMP START ;AND START
|
|
|
|
BOMB LDA #$30 ;LOAD MIDDLE
|
|
|
|
STA TONE ;FREQUENCY VALUE
|
|
|
|
LDA #$40 ;LOAD LONGER
|
|
|
|
STA TIME ;TIME DELAY
|
|
|
|
START LDA #$90 ;SET TABLE ADDRESS
|
|
|
|
STA PTR
|
|
|
|
LDA #$81
|
|
|
|
STA PTR+1
|
|
|
|
JSR TAR ;TRANSFER DATA
|
|
|
|
LDA #$00 ;LATCH FIRST REGISTER
|
|
|
|
STA ORA ;ADDRESS
|
|
|
|
JSR LATCH
|
|
|
|
LOOP LDA TONE ;GET TONE VALUE
|
|
|
|
STA ORA ;STORE IN REGISTER
|
|
|
|
JSR WRITE
|
|
|
|
LDA TIME ;GET TIME VALUE
|
|
|
|
JSR WAIT ;AND DELAY
|
|
|
|
INC TONE ;INCREMENT TONE VALUE
|
|
|
|
LDA #$FF ;END OF INCREASE?
|
|
|
|
CMP TONE
|
|
|
|
BEQ DONE ;YES,EXIT
|
|
|
|
JMP LOOP ;NO, START AGAIN
|
|
|
|
DONE LDA TIME ;GET TIME VALUE
|
|
|
|
JSR WAIT ;DELAY
|
|
|
|
LDA #$00 ;RESTORE ORIGINAL
|
|
|
|
STA TONE ;TONE VALUE
|
|
|
|
JSR RESET ;CLEAR SOUND CHIP
|
|
|
|
RTS ;REGISTERS AND RETURN
|
|
|
|
|