I finally built up a RC2014 Mini kit yesterday and jumped into learning Microsoft BASIC, so I've now written a routine for controlling the SID Soundchip Interface from BASIC...
10 DATA 205,7,10,123,66,14,84,237,121
20 DATA 0,0,0,203,248,237,121,195,125,17
30 FOR A=-1024 TO -1006
40 READ D
50 POKE A,D
60 NEXT A
70 POKE -32695,0
80 POKE -32694,252
100 LET A=USR(6195)
101 LET A=USR(1280)
102 LET A=USR(1776)
103 LET A=USR(1041)
110 FOR D=256 TO 511
120 LET A=USR(D)
130 NEXT D
140 GOTO 110
Lines 10 to 60 POKE in a short assembly routine for OUTing data to a specific SID Register. LINES 70 to 80 point the USR address to the code that's been POKEd in at address 64512. (Written for the 32K BASIC, the POKEs in likes 70/80 can be changed to point to the correct point for USR address for the 56K version.)
Now the SID chip can be written to with USR ( (SID-REGISTER * 256) + VALUE )
Lines 100 to 140 as a demonstration do a siren effect using one of the channels.
On Thursday, July 22, 2021 at 4:50:00 PM UTC+1 Christopher wrote:
> I have it working with an ArmSID.
I've got Z80 code working for changing the ARMSID configuration (6581+filter settings / 8580), I'll write it up and put up routines for assembler and MS BASIC in the near future.