sgdk
Loading...
Searching...
No Matches
psg.h File Reference

PSG support. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PSG_PORT   0xC00011
 PSG port address.
 
#define PSG_ENVELOPE_MIN   15
 Minimum PSG envelope value.
 
#define PSG_ENVELOPE_MAX   0
 Maximum PSG envelope value.
 
#define PSG_NOISE_TYPE_PERIODIC   0
 Periodic noise type (like low-frequency tone).
 
#define PSG_NOISE_TYPE_WHITE   1
 White noise type (hiss).
 
#define PSG_NOISE_FREQ_CLOCK2   0
 Noise frequency = PSG clock / 2 (less coarse).
 
#define PSG_NOISE_FREQ_CLOCK4   1
 Noise frequency = PSG clock / 4.
 
#define PSG_NOISE_FREQ_CLOCK8   2
 Noise frequency = PSG clock / 8 (more coarse).
 
#define PSG_NOISE_FREQ_TONE3   3
 Noise frequency = Tone generator #3.
 
#define PSG_init()   _Pragma("GCC error \"This method is deprecated, use PSG_reset() instead.\"")
 

Functions

void PSG_reset (void)
 Reset PSG chip.
 
void PSG_write (u8 data)
 Write to PSG port.
 
void PSG_setEnvelope (u8 channel, u8 value)
 Set envelope level.
 
void PSG_setTone (u8 channel, u16 value)
 Set tone.
 
void PSG_setToneLow (u8 channel, u8 value)
 Partial set tone (low bit only b3-b0).
 
void PSG_setFrequency (u8 channel, u16 value)
 Set frequency.
 
void PSG_setNoise (u8 type, u8 frequency)
 Set noise type and frequency.
 

Detailed Description

PSG support.

Author
Stephane Dallongeville
Date
08/2011

This unit provides access to the PSG through the 68000 CPU

Macro Definition Documentation

◆ PSG_init

#define PSG_init ( )    _Pragma("GCC error \"This method is deprecated, use PSG_reset() instead.\"")

Function Documentation

◆ PSG_setEnvelope()

void PSG_setEnvelope ( u8  channel,
u8  value 
)

Set envelope level.

Parameters
channelChannel we want to set envelope (0-3).
valueEnvelope level to set (PSG_ENVELOPE_MIN - PSG_ENVELOPE_MAX).

Set envelope level for the specified PSG channel.

◆ PSG_setFrequency()

void PSG_setFrequency ( u8  channel,
u16  value 
)

Set frequency.

Parameters
channelChannel we want to set frequency (0-3).
valueFrequency value to set in Hz (0-4095).

Set frequency for the specified PSG channel.
This method actually converts the specified frequency value in PSG tone value.

◆ PSG_setNoise()

void PSG_setNoise ( u8  type,
u8  frequency 
)

Set noise type and frequency.

Parameters
typeNoise type, accepted values are:
PSG_NOISE_TYPE_PERIODIC
PSG_NOISE_TYPE_WHITE
frequencyNoise frequency, accepted values are:
PSG_NOISE_FREQ_CLOCK2
PSG_NOISE_FREQ_CLOCK4
PSG_NOISE_FREQ_CLOCK8
PSG_NOISE_FREQ_TONE3

◆ PSG_setTone()

void PSG_setTone ( u8  channel,
u16  value 
)

Set tone.

Parameters
channelChannel we want to set tone (0-3).
valueTone value to set (0-1023).

Set direct tone value for the specified PSG channel.

◆ PSG_setToneLow()

void PSG_setToneLow ( u8  channel,
u8  value 
)

Partial set tone (low bit only b3-b0).

Parameters
channelChannel we want to set tone (0-3).
valueLow bit (b3-b0) of tone value to set (0-15)

Set low part of tone value for the specified PSG channel.

◆ PSG_write()

void PSG_write ( u8  data)

Write to PSG port.

Parameters
datavalue to write to the port.

Write the specified value to PSG data port.