Name SLAVE ; PartNo 00 ; Date 15/07/03 ; Revision 01 ; Designer Engineer ; Company AHolme ; Assembly None ; Location ; Device g16v8ms ; pin 1 = CLK; pin 11 = !OE; pin [2..4] = [State0..2]; pin 5 = LFIN; pin [6..9] = [C0..3]; pin 14 = Tone0; pin 12 = Tone1; pin 13 = Tone2; pin 15 = Tone3; pin 16 = AC; pin 17 = DC; pin 18 = LFOUT; pin 19 = RUN; field State = [State0..2]; $DEFINE ST_IDLE 'd'7 $DEFINE ST_OFF_HOOK 'd'3 $DEFINE ST_DIAL_TONE 'd'2 $DEFINE ST_DIALING 'd'1 $DEFINE ST_RINGING 'd'6 $DEFINE ST_ANSWERED 'd'0 $DEFINE ST_UNOBTAINABLE 'd'4 $DEFINE ST_ENGAGED 'd'5 LFOUT.d = LFIN; Tone0.d = Silence; Tone1.d = Hz350; Tone2.d = Hz440; Tone3.d = Hz480; condition { if State:ST_RINGING # State:ST_ENGAGED out RUN.d; if State:ST_DIAL_TONE out Hz350 out Hz440; if State:ST_UNOBTAINABLE out Hz440; if State:ST_RINGING & Dest1 out Hz440 out Hz480; if State:ST_RINGING & !Dest1 out Silence; if State:ST_RINGING & Dest1 out AC.d; if State:ST_RINGING & Dest0 out DC.d; if State:ST_ENGAGED & Busy out Hz350; if State:ST_ENGAGED & !Busy out Silence; if State:ST_ANSWERED out DC.d; } table [C0..3] => [Dest0..Dest1] { 'h'0 => 'b'10; 'h'1 => 'b'10; 'h'2 => 'b'10; 'h'3 => 'b'10; 'h'4 => 'b'00; 'h'5 => 'b'10; 'h'6 => 'b'10; 'h'7 => 'b'10; 'h'8 => 'b'00; 'h'9 => 'b'00; 'h'A => 'b'01; 'h'B => 'b'01; 'h'C => 'b'01; 'h'D => 'b'01; 'h'E => 'b'01; 'h'F => 'b'01; } table [C0..2] => Busy { 'h'0 => 'b'1; 'h'1 => 'b'1; 'h'2 => 'b'1; 'h'3 => 'b'1; 'h'4 => 'b'0; 'h'5 => 'b'0; 'h'6 => 'b'0; 'h'7 => 'b'0; }