53 lines
712 B
C
Raw Normal View History

2024-03-26 14:43:02 +01:00
#ifndef _PSG_H_
#define _PSG_H_
2024-03-26 16:47:42 +01:00
#include <stdint.h>
2024-03-26 14:43:02 +01:00
2024-03-26 15:05:39 +01:00
typedef enum {
e_O_1 = 0,
e_O_2,
e_O_3,
e_O_4,
e_O_5,
e_O_6,
e_O_7,
2024-03-26 21:05:48 +01:00
e_O_8,
e_O_Null
2024-03-26 15:05:39 +01:00
} t_octave;
typedef enum {
e_C = 0,
e_Cis,
e_D,
e_Dis,
e_E,
e_F,
e_Fis,
e_G,
e_Gis,
e_A,
e_Ais,
2024-03-26 21:05:48 +01:00
e_H,
e_Pause,
e_Null
2024-03-26 15:05:39 +01:00
} t_note;
2024-03-26 22:12:46 +01:00
#define e_Es e_Dis
#define e_As e_Gis
#define e_B e_Ais
2024-03-26 15:05:39 +01:00
void psgInit();
2024-03-26 22:12:46 +01:00
2024-03-26 14:43:02 +01:00
void psgPlayTone(uint8_t channel, t_octave octave, t_note note);
2024-03-26 22:12:46 +01:00
void psgAmplitude(uint8_t channel, uint8_t volume);
// low level
2024-03-26 16:47:42 +01:00
void psgWriteFrequency(uint8_t channel, uint16_t frequencyCode);
2024-03-26 22:12:46 +01:00
// very low level
2024-03-26 16:47:42 +01:00
void psgWrite(uint8_t address, uint8_t data);
2024-03-26 21:05:48 +01:00
uint8_t psgReadShadow(uint8_t address);
2024-03-26 14:43:02 +01:00
#endif // _PSG_H_