Turbo Sound Next

The internal Turbo Sound Next interface is an evolution of the original Turbo Sound, supporting also the AY tracks written for this interface. Currently implements three selectable PSGs, giving access to 9 sound channels plus 3 noise channels. Additionally we have the MOS IC 6581, the Sound Interface Device, aka ‘SID’ and all the sound ICs can be played at the same time.

All the AYs output channels (A, B and C) are mixed to the two stereo output channels (left and right) and the channel mixing can be selected from the two common standards: ABC or ACB.

ABC: A is mixed to right, B to left and right, and C to left. This arrange is common in west Europe.
ACB: A is mixed to right, C to left and right, and B to left . Common in east Europe.

You can select the mixing writing to TBBlue register 0x08, bit 5.
More info at TBBlue I/O port system: https://www.specnext.com/tbblue-io-port-system/

Regardless of the ABC or ACB arrangement, the selection of the current sound IC is done by writing a value in the I/O port 0xFFFD, as below:

Bit 7 = “1”
Bit 6 = Left audio (“1” enabled, “0” disabled)
Bit 5 = Right audio (“1” enabled, “0” disabled)
Bit 4 = “1”
Bit 3 = “1”
Bit 2 = “1”
Bits 1 and 0 as

  • “’11”: Selects the first PSG (default);
  • “10”: Selects the second PSG;
  • “01”: Selects the third PSG.
  • “00”: Selects the SID.

For example, to select the second PSG, sound on both audio outs:

LD BC,0xFFFD
LD A, 0xFE ; 1111 1110 binary
OUT (C), A

To select SID on right audio only:

LD BC,0xFFFD
LD A, 0xBC ; 1011 1100 binary
OUT (C), A

Commands and data are sent to the standard I/O ports and will be redirected to the currently selected IC.

(to set a register)
LD BC, 0xFFFD
LD A, XX ; select the register: 0 to 15 for PSGs, 0 to 24 for SID
OUT (C), A

(to write to the selected register)
LD BC, 0xBFFD
LD A, XX ; the register value, 0 to 255
OUT (C),A

(to read a selected register)
LD BC, 0xBFFD
IN A,(C)