Name MASTER ; 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 = !TIMEOUT; pin 3 = UNOB; pin 4 = ENG; pin 5 = B; pin 6 = A; pin 7 = !TRIP; pin 8 = RESET; pin 9 = SEIZE; pin [12..14] = [State0..2]; /* pin 15 spare */ pin 16 = !DIAL; pin 17 = TRIG; pin 18 = DEST; pin 19 = !IDLE; 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 sequence State { present ST_IDLE if !RESET & SEIZE next ST_OFF_HOOK; default next ST_IDLE out IDLE out TRIG; present ST_OFF_HOOK if RESET next ST_IDLE; if !RESET & TIMEOUT next ST_DIAL_TONE; default next ST_OFF_HOOK; present ST_DIAL_TONE if RESET # !B next ST_IDLE; if !RESET & B & !TIMEOUT next ST_DIALING out DIAL; default next ST_DIAL_TONE out DIAL; present ST_DIALING if RESET # !B next ST_IDLE; if !RESET & B & TIMEOUT & UNOB next ST_UNOBTAINABLE; if !RESET & B & TIMEOUT & !UNOB & ENG next ST_ENGAGED; if !RESET & B & TIMEOUT & !UNOB & !ENG next ST_RINGING; default next ST_DIALING out DIAL; present ST_RINGING if RESET # !B next ST_IDLE; if !RESET & B & TRIP next ST_ANSWERED out DEST; default next ST_RINGING out DEST; present ST_ANSWERED if RESET # !B next ST_IDLE; default next ST_ANSWERED out DEST; present ST_UNOBTAINABLE if RESET # !B next ST_IDLE; default next ST_UNOBTAINABLE; present ST_ENGAGED if RESET # !B next ST_IDLE; default next ST_ENGAGED; } append TRIG.d = B & !A;