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, so 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.

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 the first PSG on right audio only:

LD BC,0xFFFD
LD A, 0xBC ; 1011 1111 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
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)