Blame | Last modification | View Log | Download | RSS feed
/* $Id: sound.c 18 2024-08-29 06:56:23Z nishi $ */
#include "sound.h"
#include "../io.h"
short psg_addr;
short psg_data;
void beep(void){
_beep(1L * 1024 / 2);
}
void _beep(unsigned long howlong){
if(psg_addr == -1) return;
unsigned long i;
outp(psg_addr, 8);
outp(psg_data, 0x0f);
outp(psg_addr, 0);
outp(psg_data, 0xb0);
outp(psg_addr, 1);
outp(psg_data, 0x0);
outp(psg_addr, 7);
outp(psg_data, 0x3e);
for(i = 0; i < howlong; i++);
outp(psg_addr, 7);
outp(psg_data, 0x3f);
}
void sound_card(int t, int port){
if(t == 0x11){
psg_addr = port - 2;
psg_data = port - 1;
}
}