指定ポートに値を出力するには、__outp()を使用する
以下のコードは、音の周波数を指定して音を再生するサンプル
main.c
void setToneA(unsigned int freq)
{
unsigned int n = 1789000 / (32 * freq);
__outp(0xA0, 0); // レジスタ0選択(Tone A low)
__outp(0xA1, n & 0xFF); // 下位8bit
__outp(0xA0, 1); // レジスタ1選択(Tone A high)
__outp(0xA1, (n >> 8) & 0x0F); // 上位4bit
}
void setVolumeA(unsigned char vol)
{
__outp(0xA0, 8); // レジスタ8選択(Volume A)
__outp(0xA1, vol & 0x0F); // 0〜15
}
void main()
{
setToneA(440); // A音
setVolumeA(7); // 音量
}