OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [net/] [802/] [pseudo/] [pseudocode] - Rev 1765

Compare with Previous | Blame | View Log

;============================================================================
;
; 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
;============================================================================

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.