[Coco] The CoCo PSG cartridge How To.

Robert "Exile In Paradise" Murphey exile at weylan-yutani.com
Thu Nov 4 16:30:13 EDT 2021


On Thu, 2021-11-04 at 16:14 -0400, coco at jechar.ca wrote:
> 
> Does anyone have any information about accessing The CoCo PSG
> cartridge  
> from a Radio Shack Disk Basic program.
> 
> Things like what to poke where to implement a function.
> 
> The CoCo PSG cartridge documentation is extremely limited and geared
> to 
> Assembly language not Basic.
> 
> Charlie.
> 

Here's a BASIC program that selects a CoCoPSG in MPI slot 1, then plays
some sound.

The square-wave sound chip in the CoCoPSG is register compatible with
the PSG in a Speech Sound Cart.

Programming the CoCoPSG from BASIC is easier than the Speech Sound Cart
since you don't have to watch for one register to say the chip is
ready.

The CoCo PSG registers you want are in R and D.
R is the address to poke in which sound chip register to program.
D is the address to poke the data you want in that sound chip.

Hope this helps.

10 CLS
20 A=PEEK(&HFF7F) AND &HF0:POKE &HFF7F,A
30 X=&HFF00
40 POKE X+1,52:POKE X+3,63:POKE X+35,60
50 R=&HFF5E:D=&HFF5F
60 GOSUB 290: 'SETUP REGISTERS
70 CLS 1
80 PRINT "SOUND"
90 SOUND 89,30
100 CLS 2
110 PRINT "PLAY"
120 PLAY "L2;V31;O3C"
130 CLS 3
140 PRINT "COCOPSG 2MHZ"
150 A=PEEK(&HFF7F) AND &HF0: POKE &HFF7F,A
160 POKE X+1,52:POKE X+3,63:POKE X+35,60
170 POKE &HFF5D,1
180 POKE R,0:POKE D,222
190 POKE R,1:POKE D,1
200 POKE R,7:POKE D,62
210 POKE R,8:POKE D,15
220 FOR I=0 TO 900:NEXT
230 PRINT "COCOPSG 1MHZ"
240 POKE &HFF5D,0
250 POKE R,0:POKE D,239
260 POKE R,1:POKE D,0
270 FOR I=0TO900:NEXT
280 GOTO 70 
290 POKE R,0:POKE D,221: 'TONE A FINE
300 POKE R,1:POKE D,1  : 'TONE A COARSE
310 POKE R,2:POKE D,0  : 'TONE B FINE
320 POKE R,3:POKE D,0  : 'TONE B COARSE
330 POKE R,4:POKE D,0  : 'TONE C FINE
340 POKE R,5:POKE D,0  : 'TONE C COARSE
350 POKE R,6:POKE D,8  : 'NOISE 00001000
360 POKE R,7:POKE D,62 : 'MIXER 00111110 A ON
370 POKE R,8:POKE D,0
380 POKE R,9:POKE D,0
390 POKE R,10:POKE D,0
400 POKE R,11:POKE D,0
410 POKE R,12:POKE D,12
420 POKE R,13:POKE D,9
430 RETURN
440 END

-- 
Robert "Exile In Paradise" Murphey <exile at weylan-yutani.com>
Weylan-Yutani Corporation



More information about the Coco mailing list