[Coco] more 1 bit madness

Steve 6809er at srbsoftware.com
Tue Jan 21 20:33:39 EST 2014


All I/O on the S&S pak needed to feed into the PIC micro-controller on 
the board.  On my CoCo software, I would created a FIFO buffer that I 
would feed sound commands into.  On the V-blank interrupt the data was 
sent into the the pak, if it was not busy.  Most of the time it was not.

The reason why I stop supporting the SSP in my CoCo 3 games was the 
programmable timer could be used to create high quality music and sound 
FX and the fact the SSP did not support double clock speed that I needed.

The SSP used the CoCo's own E & Q clocks to create the clocks for the 
PIC and AY3 chips. (Only the Speech chip had its own crystal.) Even the 
-5 power supply ran off the CoCo clocks.

When the CoCo 3 game turn on the double speed clock, the SSP's -5 volt 
power supply, Pic and sound chips just die.  I did mod a SSP with a 
clock divider that fix the problem,  but the timing was off at normal 
speed.  So, I added a switch to run it on and off the mod.

Steve

On 1/21/2014 2:45 PM, Simon Jonassen wrote:
> Hi Steve...
>
> Did u access the AY chip on the SSC directly or via the buffers provided by
> the PIC ?
>
> /Simon :-)
>   
>
> -----Oprindelig meddelelse-----
> Fra: coco-bounces at maltedmedia.com [mailto:coco-bounces at maltedmedia.com] På
> vegne af Steve
> Sendt: 21. januar 2014 17:48
> Til: CoCoList for Color Computer Enthusiasts
> Emne: Re: [Coco] more 1 bit madness
>
> Simon,
> Never needed to poll the speech sound pak since I used the v-sync Interrupt
> to feed information into it at the right time. (Changing the 3 "voice"
> channels of the Sound FX chip.)  I never used the speech side of the cart in
> my games.
>
> By the way, the SSP used a General Instrument AY-3-8910 sound chip.
> See: http://en.wikipedia.org/wiki/General_Instrument_AY-3-8910
>
> This chip was widely used in the Video Game industry.  From Arcade Games to
> the Vectrex, I've written quite a few games using it.  I even produced a 6
> Voice (2 chip) version called Hard Music for the TRS-80 I/III.  This was a
> follow up to my software only "Soft Music" that played two voices
> simultaneously in tune.  A first for any home computer just using software
> to pull it off.
>
> The key to Soft Music keeping both voices in turn was running both delays in
> the same loop.  How do you do that?  Use mathematics to create the timing.
>
> Your non interrupt version of the code used a simple time delay to trigger
> the flip the it event.  My code used the addition of a number to the sum
> register to trigger the flipping the bit.  In the case of the 6809, I would
> load up the SUM value into the D register and add its tone number to it.
> (and save back the sum.) When there was an overflow (carry bit set), the
> sound bit was flipped. (Did a xor $80 or $40 depending on the voice.)  After
> doing one voice, the code would working the second voice in the same loop.
> The loop was coded so the flipping or not flipping of the audio bit took the
> same number of cycles.
>
> Changing the Tone Number that was added to the sum would create the note at
> the right tone without effecting the other note.  This process was also a
> auto-tuning. If the delay for a bit flip was not right on the money because
> of the resolution of the loop, each pass would adjust
> (above/below) to the right frequency to keep the note in tune. (The number
> still in the SUM after an overflow did the tuning.) Very important for the
> higher musical notes.
>
> As with your first demo, this code took 100% of the CPU time to pull it off.
> That's why this code was limited to the Title Page in my games.
> But it did play a very pleasing two note harmony in a 6 octave range.
>
> Steve
>
>




More information about the Coco mailing list