package Communication.FDDI.Binary; module station(bool ?TT, ?trt7, ?trt6, ?trt5, ?trt4, ?trt3, ?trt2, ?trt1, ?trt0, event counter_reset, bool !RT, !transmit_sync, !transmit_async) { event sendbreak; bool tht7, tht6, tht5, tht4, tht3, tht2, tht1, tht0, tt7, tt6, tt5, tt4, tt3, tt2, tt1, tt0, cry, tmpequ; event tmpless; loop { emit(counter_reset); RT = false; transmit_sync = false; transmit_async = false; station_idle: await(TT==true); set_tht: Assign8(trt7,trt6,trt5,trt4,trt3,trt2,trt1,trt0, tht7,tht6,tht5,tht4,tht3,tht2,tht1,tht0); emit(counter_reset); weak abort { do { cmp1: Compare8(trt7,trt6,trt5,trt4,trt3,trt2,trt1,trt0, false,false,false,true,false,true,false,false,tmpequ); station_sending_sync_1: pause; }while(tmpequ == false); { emit(sendbreak); ||| { transmit_sync = true; station_sending_sync_2: pause; } } }when(sendbreak); prob_pause1: pause; add0: Adder8(trt7,trt6,trt5,trt4,trt3,trt2,trt1,trt0, tht7,tht6,tht5,tht4,tht3,tht2,tht1,tht0,false, cry,tt7,tt6,tt5,tt4,tt3,tt2,tt1,tt0); cmp2: CompareLess8(tt7,tt6,tt5,tt4,tt3,tt2,tt1,tt0, false,true,true,true,true,false,false,false, tmpless); if (tmpless) { weak abort { do { add1: Adder8(trt7,trt6,trt5,trt4,trt3,trt2,trt1,trt0, tht7,tht6,tht5,tht4,tht3,tht2,tht1,tht0,false, cry,tt7,tt6,tt5,tt4,tt3,tt2,tt1,tt0); cmp3: Compare8(tt7,tt6,tt5,tt4,tt3,tt2,tt1,tt0, false,true,true,true,true,false,false,false,tmpequ); station_sending_async_1: pause; }while(tmpequ == false); { emit(sendbreak); ||| { transmit_async =true; station_sending_async_2:pause; } } }when(sendbreak); } RT=true; fin: pause; } }