! Datablaster just writes every combination of data bits!
! to the specified addresses				!
! Change Reg8 to a higher number to slow down Pause  	!			
! Tones Tests Pokeys at the Specified Address		!
! Please Feel Free To Modify this and Share with the	!
! Rest of Us - Matt Rossiter				!

PROGRAM DataBlaster


declarations
	assign REG2 to StartAddr	! Specify the beginning of Pokey address!
	assign REG3 to AddrToWrite 
	assign REG4 to DataToWrite	! Specify where Data Starts		!
	assign REG5 to PKChannel	! POKEY Channel	#			!
	
	DataToWrite = 00		! Modify this to where you feel like	!

!! Beginning Menu !!
DPY-1=DataBlaster 2=Tones 0=Quit /1	
aux 1=DataBlaster 2=Tones 0=Quit
   IF REG1 = 0 GOTO 7
   IF REG1 = 1 GOTO 0
   IF REG1 = 2 GOTO 4
   
!! DATA BLASTER !!
0: LABEL 0

DPY-DATA BLASTER
AUX Time to Blast Some Data
REG8 = 50
execute pause

DPY-Enter Pokey Start Addr 0=Quit /6
aux Enter Pokey Start Address 0=Quit
StartAddr = Reg6
If Reg6 = 0 goto 7
DPY-Testing
Aux Testing

1: Label 1

execute Pause
	
	AddrToWrite = StartAddr
	write @AddrToWrite = DataToWrite
		REG8 = 1			!! Raise this number to slow down test !!
		execute Pause
	DataToWrite = DataToWrite inc

2: label 2
aux $StartAddr = $DataToWrite
if ff > DataToWrite goto 1
DataToWrite = 00

3: label 3
StartAddr = StartAddr inc 16
if reg6 > StartAddr goto 1

write @AddrToWrite = 00
DPY-Test Completed - Hit Cont
aux Test Completed - Hit Cont
stop
goto 0

!! TONES !!

4: label 4

DPY-Now we will try to make tones
aux Now we will try to make tones
	REG8=50

5: label 5
DPY-Enter Pokey Start Addr 0=Quit /6
aux Enter Pokey Start Address 0=Quit
StartAddr = Reg6
If Reg6 = 0 goto 7
DPY-Testing
Aux Testing
	PKChannel=1
	execute Pause
	StartAddr = StartAddr inc 15
	write @StartAddr = 00
	aux write $StartAddr = 00
	write @StartAddr = 03
	aux write $StartAddr = 03
	StartAddr = StartAddr dec 15

6: label 6
	DPY-Pokey Channel @PKChannel enabled
	aux Pokey Channel @PKChannel enabled	
	write @StartAddr = 55
	aux write $StartAddr = 55
	StartAddr = StartAddr inc 1
	write @StartAddr = af
	aux write $StartAddr = af
		
execute Pause
	DPY-Pokey Channel @PKChannel disabled
	aux Pokey Channel @PKChannel disabled
	write @StartAddr = 00
	aux write $StartAddr = 00


execute Pause
StartAddr = StartAddr inc 1
PKChannel = PKChannel inc 1
if 5 >  PKChannel goto 6		!! 4channels !!
Aux Select Another Pokey Addr 0=Quit
goto 5

7: label 7
DPY-End of Tests
aux End of TESTS
stop
	
!!!!!! Pause Routine !!!!!!!!!!!!!!!	

program Pause

	REG2 = REG8
dloop:
	dec REG2
	if REG2 > 0 goto dloop 

