[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