daout0()とdaout1()はDAC0とDAC1によってDA変換を行う関数である。aの0,1番目のビットでDAC0かDAC1を指定する。getc()は値をマイコンに読み込む関数である。12ビットのDACに対して、スクイークとマイコンの間の通信は8ビット通信なので、入力を2つに分けてその値をを読み込む必要がある。
if ((a&0x60) == 0x20) { //DA n = getc(); //DA変換を行いたい値を読み込む n = ((n&0x0f) << 8) + getc(); //読み込んだ値の4ビット //と新しく読み込む値を足す。 if ((a&0x01) == 0x00) daout0(n); //DAC0かDCA1を判断する else daout1(n); }