The Digiblaster is a simple and cheap device which allows the Amstrad CPC to play 8-bit mono sampled audio.
Version 1 was originally designed by Andreas Stroiczek and an article was published in "CPC International" (A commercial magazine for the CPC which was published in Germany) magazine. This version has a logarithmic volume output.
It was redesigned later to give a linear volume output by Joshua/Exodus and this is version 2.
The digiblaster is connected to the printer port, and uses D6-D0 and /STROBE signals. This table shows the relationship between byte written to printer I/O port and signal.
Bit | Signal |
---|---|
7 | /STROBE |
6 | D6 |
5 | D5 |
4 | D4 |
3 | D3 |
2 | D2 |
1 | D1 |
0 | D0 |
When writing to the printer port, /STROBE is negated by the printer port hardware, so you will need to write the data with bit 7 negated. The delay between successive writes defines the playback rate.
This piece of code shows how the digiblaster is used:
ld b,&EF ;printer I/O port .loop ld a,(hl) ;get byte of 8-bit sample data inc hl xor &80 ;negate bit 7 of data because it is negated by the printer port hardware out (c),c .. ;delay .. jr nz, loopThe speed of the CPC allows up to 11khz sound using the Digiblaster.
Digiblaster V1 schematic by Andreas Stroiczek.
Digiblaster V2 schematic by Joshua/Exodus