- ;============================================================================
- ;
- ; translate this with
- ; cat pseudocode | sed -f act2num | awk -f compile.awk >pseudocode.h
- ;
- ; actionname pseudocode
- ;
- ;============================================================================
- ADM1 SEND_SABME_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- RETRY_COUNT:=0
- S_FLAG:=0
- ;
- ; instructions in ADM2 have been changed:
- ; 1. P_FLAG:=P is probably wrong in doc...
- ; I think it should be F_FLAG:=P the way it is in CONN3
- ; 2. CONNECT_RESPONSE has been wired in here,
- ; CONN1 is no longer referenced
- ;
- ADM2 F_FLAG:=P
- SEND_UA_RSP(F=X)
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- P_FLAG:=0
- REMOTE_BUSY:=0
- CONNECT_INDICATION
- ADM3 SEND_DM_RSP(F=X)
- ADM4 SEND_DM_RSP(F=X)
- ADM5 NOP
- ;============================================================================
- ;CONN1 SEND_UA_RSP(F=X)
- ; V(S):=0
- ; V(R):=0
- ; RETRY_COUNT:=0
- ; P_FLAG:=0
- ; REMOTE_BUSY:=0
- CONN2 SEND_DM_RSP(F=X)
- CONN3 F_FLAG:=P
- CONN4 DISCONNECT_INDICATION
- CONN5 NOP
- ;============================================================================
- RESWAIT1 SEND_SABME_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- RETRY_COUNT:=0
- RESWAIT2 SEND_UA_RSP(F=X)
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- P_FLAG:=0
- REMOTE_BUSY:=0
- RESET_CONFIRM
- RESWAIT3 SEND_DISC_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- RETRY_COUNT:=0
- RESWAIT4 SEND_DM_RSP(F=X)
- RESWAIT5 DISCONNECT_INDICATION
- RESWAIT6 S_FLAG:=1
- F_FLAG:=P
- RESWAIT7 SEND_DM_RSP(F=X)
- DISCONNECT_INDICATION
- RESWAIT8 NOP
- ;============================================================================
- RESCHK1 SEND_UA_RSP(F=X)
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- P_FLAG:=0
- REMOTE_BUSY:=0
- RESCHK2 SEND_DM_RSP(F=X)
- RESCHK3 DISCONNECT_INDICATION
- RESCHK4 F_FLAG:=P
- RESCHK5 SEND_DM_RSP(F=X)
- DISCONNECT_INDICATION
- RESCHK6 NOP
- ;============================================================================
- SETUP1 SEND_UA_RSP(F=X)
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- S_FLAG:=1
- SETUP2 STOP_ACK_TIMER
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- UPDATE_P_FLAG
- CONNECT_CONFIRM
- REMOTE_BUSY:=0
- SETUP3 P_FLAG:=0
- CONNECT_CONFIRM
- REMOTE_BUSY:=0
- SETUP4 SEND_DM_RSP(F=X)
- DISCONNECT_INDICATION
- STOP_ACK_TIMER
- SETUP5 DISCONNECT_INDICATION
- STOP_ACK_TIMER
- SETUP6 NOP
- SETUP7 SEND_SABME_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- SETUP8 DISCONNECT_INDICATION
- ;============================================================================
- RESET1 SEND_UA_RSP(F=X)
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- S_FLAG:=1
- RESET2 STOP_ACK_TIMER
- V(S):=0
- V(R):=0
- RETRY_COUNT:=0
- UPDATE_P_FLAG
- RESET_CONFIRM
- REMOTE_BUSY:=0
- RESET3 P_FLAG:=0
- RESET_CONFIRM
- REMOTE_BUSY:=0
- RESET4 SEND_DM_RSP(F=X)
- DISCONNECT_INDICATION
- STOP_ACK_TIMER
- RESET5 DISCONNECT_INDICATION
- STOP_ACK_TIMER
- RESET6 NOP
- RESET7 SEND_SABME_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- RESET8 DISCONNECT_INDICATION
- ;============================================================================
- D_CONN1 SEND_DM_RSP(F=X)
- STOP_ACK_TIMER
- D_CONN2 STOP_ACK_TIMER
- D_CONN3 SEND_UA_RSP(F=X)
- D_CONN4 STOP_ACK_TIMER
- D_CONN5 NOP
- D_CONN6 SEND_DISC_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- D_CONN7 NOP
- ;============================================================================
- ERR1 RESET_INDICATION(REMOTE)
- STOP_ACK_TIMER
- F_FLAG:=P
- ERR2 SEND_UA_RSP(F=X)
- DISCONNECT_INDICATION
- STOP_ACK_TIMER
- ERR3 DISCONNECT_INDICATION
- STOP_ACK_TIMER
- ERR4 RESET_INDICATION(LOCAL)
- STOP_ACK_TIMER
- REPORT_STATUS(FRMR_RECEIVED)
- S_FLAG:=0
- ERR5 RE-SEND_FRMR_RSP(F=P)
- START_ACK_TIMER
- ERR6 NOP
- ERR7 RE-SEND_FRMR_RSP(F=0)
- START_ACK_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- ERR8 S_FLAG:=0
- RESET_INDICATION(LOCAL)
- ;============================================================================
- ; the shared actions are common to states NORMAL, BUSY, REJECT,
- ; AWAIT, AWAIT_BUSY and AWAIT_REJECT.
- ;============================================================================
- SH1 SEND_DISC_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- STOP_OTHER_TIMERS
- RETRY_COUNT:=0
- SH2 SEND_SABME_CMD(P=X)
- P_FLAG:=P
- START_ACK_TIMER
- STOP_OTHER_TIMERS
- RETRY_COUNT:=0
- S_FLAG:=0
- SH3 RESET_INDICATION(REMOTE)
- F_FLAG:=P
- STOP_ALL_TIMERS
- SH4 SEND_UA_RSP(F=X)
- DISCONNECT_INDICATION
- STOP_ALL_TIMERS
- SH5 STOP_ALL_TIMERS
- RESET_INDICATION(LOCAL)
- REPORT_STATUS(FRMR_RECEIVED)
- S_FLAG:=0
- SH6 DISCONNECT_INDICATION
- STOP_ALL_TIMERS
- SH7 SEND_FRMR_RSP(F=X)
- REPORT_STATUS(FRMR_SENT)
- START_ACK_TIMER
- STOP_OTHER_TIMERS
- RETRY_COUNT:=0
- SH8 SEND_FRMR_RSP(F=0)
- REPORT_STATUS(FRMR_SENT)
- START_ACK_TIMER
- STOP_OTHER_TIMERS
- RETRY_COUNT:=0
- SH9 SEND_FRMR_RSP(F=0)
- REPORT_STATUS(FRMR_SENT)
- START_ACK_TIMER
- STOP_OTHER_TIMERS
- RETRY_COUNT:=0
- SH10 SEND_FRMR_RSP(F=X)
- REPORT_STATUS(FRMR_SENT)
- START_ACK_TIMER
- STOP_OTHER_TIMERS
- RETRY_COUNT:=0
- SH11 STOP_ALL_TIMERS
- RESET_INDICATION(LOCAL)
- S_FLAG:=0
- ;============================================================================
- NORMAL1 SEND_I_CMD(P=1)
- START_P_TIMER
- START_ACK_TIMER_IF_NOT_RUNNING
- ; SEND_I_XXX(X=0)
- ; START_ACK_TIMER_IF_NOT_RUNNING
- NORMAL2 SEND_I_XXX(X=0)
- START_ACK_TIMER_IF_NOT_RUNNING
- NORMAL3 SEND_RNR_CMD(F=1)
- START_P_TIMER
- DATA_FLAG:=0
- ; SEND_RNR_XXX(X=0)
- ; DATA_FLAG:=0
- NORMAL4 SEND_RNR_XXX(X=0)
- DATA_FLAG:=0
- NORMAL5 SEND_REJ_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- UPDATE_P_FLAG
- START_REJ_TIMER
- IF_F=1_CLEAR_REMOTE_BUSY
- ; SEND_REJ_CMD(P=1)
- ; UPDATE_N(R)_RECEIVED
- ; START_P_TIMER
- ; START_REJ_TIMER
- ; IF_F=1_CLEAR_REMOTE_BUSY
- NORMAL6 SEND_REJ_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- START_REJ_TIMER
- NORMAL7 SEND_REJ_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- START_REJ_TIMER
- ;
- ; the order of opcodes in NORMAL8 is changed.
- ; the transition table will execute NORMAL8A for incoming pdus
- ; with p/f 1, pdus with pf 0 are treated in NORMAL8B.
- ;
- NORMAL8A V(R):=V(R)+1
- SEND_ACKNOWLEDGE_CMD(P=1)
- START_P_TIMER
- UPDATE_N(R)_RECEIVED
- IF_F=1_CLEAR_REMOTE_BUSY
- DATA_INDICATION
- ;
- NORMAL8B V(R):=V(R)+1
- UPDATE_P_FLAG
- SEND_ACKNOWLEDGE_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- IF_F=1_CLEAR_REMOTE_BUSY
- DATA_INDICATION
- ;
- ; the order of opcodes in NORMAL9 is changed
- NORMAL9 V(R):=V(R)+1
- SEND_ACKNOWLEDGE_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- DATA_INDICATION
- ;
- ; the order of opcodes in NORMAL10 is changed
- NORMAL10 V(R):=V(R)+1
- SEND_ACKNOWLEDGE_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- DATA_INDICATION
- NORMAL11 UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- NORMAL12 SEND_ACKNOWLEDGE_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- NORMAL13 UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- NORMAL14 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- NORMAL15 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- UPDATE_P_FLAG
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- ; V(S):=N(R)
- ; UPDATE_N(R)_RECEIVED
- ; START_P_TIMER
- ; RE-SEND_I_CMD(P=1)
- ; CLEAR_REMOTE_BUSY
- NORMAL16 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- NORMAL17 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- RE-SEND_I_RSP(F=1)
- CLEAR_REMOTE_BUSY
- NORMAL18 SEND_RR_CMD(P=1)
- START_P_TIMER
- NORMAL19 P_FLAG:=0
- ; SEND_RR_CMD(P=1)
- ; START_P_TIMER
- ; RETRY_COUNT:=RETRY_COUNT+1
- NORMAL20 SEND_RR_CMD(P=1)
- START_P_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- ;============================================================================
- BUSY1 SEND_I_CMD(P=1)
- START_P_TIMER
- START_ACK_TIMER_IF_NOT_RUNNING
- ; SEND_I_XXX(X=0)
- ; START_ACK_TIMER_IF_NOT_RUNNING
- BUSY2 SEND_I_XXX(X=0)
- START_ACK_TIMER_IF_NOT_RUNNING
- BUSY3 SEND_REJ_CMD(P=1)
- START_REJ_TIMER
- START_P_TIMER
- ; SEND_REJ_XXX(X=0)
- ; START_REJ_TIMER
- BUSY4 SEND_REJ_XXX(X=0)
- START_REJ_TIMER
- BUSY5 SEND_RR_CMD(P=1)
- START_P_TIMER
- SEND_RR_XXX(X=0)
- BUSY6 SEND_RR_XXX(X=0)
- BUSY7 SEND_RR_CMD(P=1)
- START_P_TIMER
- SEND_RR_XXX(X=0)
- BUSY8 SEND_RR_XXX(X=0)
- BUSY9 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1
- IF_F=1_CLEAR_REMOTE_BUSY
- ; SEND_RNR_CMD(P=1)
- ; START_P_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1
- ; IF_F=1_CLEAR_REMOTE_BUSY
- BUSY10 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1
- BUSY11 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1
- BUSY12 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- IF_DATA_FLAG=2_STOP_REJ_TIMER
- DATA_FLAG:=1
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; SEND_RNR_RSP(F=1)
- ; UPDATE_N(R)_RECEIVED
- ; IF_DATA_FLAG=2_STOP_REJ_TIMER
- ; DATA_FLAG:=0
- BUSY13 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- IF_DATA_FLAG=2_STOP_REJ_TIMER
- DATA_FLAG:=1
- IF_F=1_CLEAR_REMOTE_BUSY
- ; SEND_RNR_CMD(F=1)
- ; START_P_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; IF_DATA_FLAG=2_STOP_REJ_TIMER
- ; DATA_FLAG:=1
- ; IF_F=1_CLEAR_REMOTE_BUSY
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; SEND_RNR_CMD(F=1)
- ; START_P_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; IF_DATA_FLAG=2_STOP_REJ_TIMER
- ; DATA_FLAG:=0
- ; IF_F=1_CLEAR_REMOTE_BUSY
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; UPDATE_P_FLAG
- ; OPTIONAL_SEND_RNR_XXX(X=0)
- ; UPDATE_N(R)_RECEIVED
- ; IF_DATA_FLAG=2_STOP_REJ_TIMER
- ; DATA_FLAG:=0
- ; IF_F=1_CLEAR_REMOTE_BUSY
- BUSY14 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- IF_DATA_FLAG=2_STOP_REJ_TIMER
- DATA_FLAG:=1
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; OPTIONAL_SEND_RNR_XXX(X=0)
- ; UPDATE_N(R)_RECEIVED
- ; IF_DATA_FLAG=2_STOP_REJ_TIMER
- ; DATA_FLAG:=0
- BUSY15 UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- BUSY16 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- BUSY17 UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- BUSY18 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- BUSY19 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- UPDATE_P_FLAG
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- ; V(S):=N(R)
- ; UPDATE_N(R)_RECEIVED
- ; RE-SEND_I_CMD(P=1)
- ; CLEAR_REMOTE_BUSY
- BUSY20 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- BUSY21 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- SEND_RNR_RSP(F=1)
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- BUSY22 SEND_RNR_CMD(F=1)
- START_P_TIMER
- BUSY23 P_FLAG:=0
- ; SEND_RNR_CMD(F=1)
- ; START_P_TIMER
- ; RETRY_COUNT:=RETRY_COUNT+1
- BUSY24 SEND_RNR_CMD(F=1)
- START_P_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- BUSY25 DATA_FLAG:=1
- ; SEND_RNR_CMD(F=1)
- ; START_P_TIMER
- ; RETRY_COUNT:=RETRY_COUNT+1
- ; DATA_FLAG:=1
- BUSY26 DATA_FLAG:=1
- ;============================================================================
- REJECT1 SEND_I_CMD(P=1)
- START_P_TIMER
- START_ACK_TIMER_IF_NOT_RUNNING
- ; SEND_I_XXX(X=0)
- ; START_ACK_TIMER_IF_NOT_RUNNING
- REJECT2 SEND_I_XXX(X=0)
- START_ACK_TIMER_IF_NOT_RUNNING
- REJECT3 SEND_RNR_CMD(F=1)
- START_P_TIMER
- DATA_FLAG:=2
- ; SEND_RNR_XXX(X=0)
- ; DATA_FLAG:=2
- REJECT4 SEND_RNR_XXX(X=0)
- DATA_FLAG:=2
- REJECT5 UPDATE_N(R)_RECEIVED
- UPDATE_P_FLAG
- IF_F=1_CLEAR_REMOTE_BUSY
- REJECT6 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- ;
- ; order of opcodes in REJECT7 is changed
- REJECT7 V(R):=V(R)+1
- SEND_ACKNOWLEDGE_CMD(P=1)
- START_P_TIMER
- UPDATE_N(R)_RECEIVED
- IF_F=1_CLEAR_REMOTE_BUSY
- STOP_REJ_TIMER
- DATA_INDICATION
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; UPDATE_P_FLAG
- ; SEND_ACKNOWLEDGE_XXX(X=0)
- ; UPDATE_N(R)_RECEIVED
- ; IF_F=1_CLEAR_REMOTE_BUSY
- ; STOP_REJ_TIMER
- ;
- ; order of opcodes in REJECT8 is changed
- REJECT8 V(R):=V(R)+1
- SEND_ACKNOWLEDGE_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- STOP_REJ_TIMER
- DATA_INDICATION
- ;
- ; order of opcodes in REJECT9 is changed
- REJECT9 V(R):=V(R)+1
- SEND_ACKNOWLEDGE_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- STOP_REJ_TIMER
- DATA_INDICATION
- REJECT10 UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- REJECT11 SEND_ACKNOWLEDGE_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- REJECT12 UPDATE_P_FLAG
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- REJECT13 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- REJECT14 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- UPDATE_P_FLAG
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- ; V(S):=N(R)
- ; UPDATE_N(R)_RECEIVED
- ; RE-SEND_I_CMD(P=1)
- ; START_P_TIMER
- ; CLEAR_REMOTE_BUSY
- REJECT15 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- REJECT16 V(S):=N(R)
- UPDATE_N(R)_RECEIVED
- RE-SEND_I_RSP(F=1)
- CLEAR_REMOTE_BUSY
- REJECT17 SEND_RR_CMD(P=1)
- START_P_TIMER
- REJECT18 SEND_REJ_CMD(P=1)
- START_P_TIMER
- START_REJ_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- REJECT19 P_FLAG:=0
- ; SEND_RR_CMD(P=1)
- ; START_P_TIMER
- ; START_REJ_TIMER
- ; RETRY_COUNT:=RETRY_COUNT+1
- REJECT20 SEND_RR_CMD(P=1)
- START_P_TIMER
- START_REJ_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- ;============================================================================
- AWAIT1 SEND_RNR_XXX(X=0)
- DATA_FLAG:=0
- AWAIT2 SEND_REJ_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- RE-SEND_I_XXX(X=0)
- START_REJ_TIMER
- CLEAR_REMOTE_BUSY
- ; SEND_REJ_CMD(P=1)
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; RE-SEND_I_XXX(X=0)
- ; START_P_TIMER
- ; START_REJ_TIMER
- ; CLEAR_REMOTE_BUSY
- AWAIT3 SEND_REJ_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- START_REJ_TIMER
- AWAIT4 SEND_REJ_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- START_REJ_TIMER
- ;
- ; order of opcode in AWAIT5 changed
- AWAIT5 V(R):=V(R)+1
- UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- RE-SEND_I_CMD(P=1)_OR_SEND_RR
- START_P_TIMER
- CLEAR_REMOTE_BUSY
- DATA_INDICATION
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; STOP_P_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; RE-SEND_I_XXX(X=0)_OR_SEND_RR
- ; CLEAR_REMOTE_BUSY
- ;
- ; order of opcode in AWAIT6 changed
- AWAIT6 V(R):=V(R)+1
- SEND_RR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- DATA_INDICATION
- ;
- ; order of opcode in AWAIT7 changed
- AWAIT7 V(R):=V(R)+1
- SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- DATA_INDICATION
- AWAIT8 UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; RE-SEND_I_CMD(P=1)
- ; START_P_TIMER
- ; CLEAR_REMOTE_BUSY
- AWAIT9 UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- AWAIT10 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- AWAIT11 UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- SET_REMOTE_BUSY
- AWAIT12 UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- AWAIT13 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- AWAIT14 SEND_RR_CMD(P=1)
- START_P_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- ;============================================================================
- AWAIT_BUSY1 SEND_REJ_XXX(X=0)
- START_REJ_TIMER
- AWAIT_BUSY2 SEND_RR_XXX(X=0)
- AWAIT_BUSY3 SEND_RR_XXX(X=0)
- AWAIT_BUSY4 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- DATA_FLAG:=1
- CLEAR_REMOTE_BUSY
- RE-SEND_I_XXX(X=0)
- ; SEND_RNR_CMD(F=1)
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; START_P_TIMER
- ; DATA_FLAG:=1
- ; CLEAR_REMOTE_BUSY
- ; RE-SEND_I_XXX(X=0)
- AWAIT_BUSY5 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- DATA_FLAG:=1
- AWAIT_BUSY6 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- DATA_FLAG:=1
- AWAIT_BUSY7 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- DATA_FLAG:=1
- STOP_P_TIMER
- CLEAR_REMOTE_BUSY
- RE-SEND_I_XXX(X=0)
- ; SEND_RNR_CMD(F=1)
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; START_P_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; DATA_FLAG:=0
- ; CLEAR_REMOTE_BUSY
- ; RE-SEND_I_XXX(X=0)
- ; OPTIONAL_SEND_RNR_XXX(X=0)
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; STOP_P_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; DATA_FLAG:=0
- ; CLEAR_REMOTE_BUSY
- ; RE-SEND_I_XXX(X=0)
- AWAIT_BUSY8 OPTIONAL_SEND_RNR_XXX(X=0)
- UPDATE_N(R)_RECEIVED
- DATA_FLAG:=1
- ; OPTIONAL_SEND_RNR_XXX(X=0)
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; UPDATE_N(R)_RECEIVED
- ; DATA_FLAG:=0
- AWAIT_BUSY9 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- DATA_FLAG:=1
- ; SEND_RNR_RSP(F=1)
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; UPDATE_N(R)_RECEIVED
- ; DATA_FLAG:=0
- AWAIT_BUSY10 UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; RE-SEND_I_CMD(P=1)
- ; START_P_TIMER
- ; CLEAR_REMOTE_BUSY
- AWAIT_BUSY11 UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- AWAIT_BUSY12 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- AWAIT_BUSY13 UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- SET_REMOTE_BUSY
- AWAIT_BUSY14 UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- AWAIT_BUSY15 SEND_RNR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- AWAIT_BUSY16 SEND_RNR_CMD(F=1)
- START_P_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- ;============================================================================
- AWAIT_REJECT1 SEND_RNR_XXX(X=0)
- DATA_FLAG:=2
- AWAIT_REJECT2 UPDATE_N(R)_RECEIVED
- AWAIT_REJECT3 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- ;
- ; order of opcodes in AWAIT_REJECT4 changed
- AWAIT_REJECT4 V(R):=V(R)+1
- UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- RE-SEND_I_CMD(P=1)_OR_SEND_RR
- START_P_TIMER
- STOP_REJ_TIMER
- CLEAR_REMOTE_BUSY
- DATA_INDICATION
- ; V(R):=V(R)+1
- ; DATA_INDICATION
- ; STOP_P_TIMER
- ; STOP_REJ_TIMER
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; RE-SEND_I_CMD(P=1)_OR_SEND_RR
- ; CLEAR_REMOTE_BUSY
- ;
- ; order of opcodes in AWAIT_REJECT5 changed
- AWAIT_REJECT5 V(R):=V(R)+1
- SEND_RR_XXX(X=0)
- STOP_REJ_TIMER
- UPDATE_N(R)_RECEIVED
- DATA_INDICATION
- ;
- ; order of opcodes in AWAIT_REJECT6 changed
- AWAIT_REJECT6 V(R):=V(R)+1
- SEND_RR_RSP(F=1)
- STOP_REJ_TIMER
- UPDATE_N(R)_RECEIVED
- DATA_INDICATION
- AWAIT_REJECT7 UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- RE-SEND_I_XXX(X=0)
- CLEAR_REMOTE_BUSY
- ; UPDATE_N(R)_RECEIVED
- ; V(S):=N(R)
- ; RE-SEND_I_CMD(P=1)
- ; START_P_TIMER
- ; CLEAR_REMOTE_BUSY
- AWAIT_REJECT8 UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- AWAIT_REJECT9 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- CLEAR_REMOTE_BUSY
- AWAIT_REJECT10 UPDATE_N(R)_RECEIVED
- V(S):=N(R)
- STOP_P_TIMER
- SET_REMOTE_BUSY
- AWAIT_REJECT11 UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- AWAIT_REJECT12 SEND_RR_RSP(F=1)
- UPDATE_N(R)_RECEIVED
- SET_REMOTE_BUSY
- AWAIT_REJECT13 SEND_REJ_CMD(P=1)
- START_P_TIMER
- RETRY_COUNT:=RETRY_COUNT+1
- ;============================================================================