URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k/trunk/linux/linux-2.4/net/802/pseudo
- from Rev 1275 to Rev 1765
- ↔ Reverse comparison
Rev 1275 → Rev 1765
/pseudocode.h
0,0 → 1,287
|
/* this file generated on Thu Oct 24 11:42:35 GMT 1996 */ |
|
static char pseudo_code [ ] = { |
0, 37, 57, 42, 59, 39, 0, 65, 38, |
63, 61, 59, 56, 58, 2, 0, 12, 0, |
12, 0, 0, 0, 12, 0, 65, 0, 5, |
0, 0, 0, 37, 57, 42, 59, 0, 38, |
63, 61, 59, 56, 58, 7, 0, 11, 57, |
42, 59, 0, 12, 0, 5, 0, 40, 65, |
0, 12, 5, 0, 0, 0, 38, 63, 61, |
59, 56, 58, 0, 12, 0, 5, 0, 65, |
0, 12, 5, 0, 0, 0, 38, 63, 61, |
59, 40, 0, 45, 63, 61, 59, 51, 3, |
58, 0, 56, 3, 58, 0, 12, 5, 45, |
0, 5, 45, 0, 0, 0, 37, 57, 42, |
60, 0, 5, 0, 38, 63, 61, 59, 40, |
0, 45, 63, 61, 59, 51, 7, 58, 0, |
56, 7, 58, 0, 12, 5, 45, 0, 5, |
45, 0, 0, 0, 37, 57, 42, 60, 0, |
5, 0, 12, 45, 0, 45, 0, 38, 0, |
45, 0, 0, 0, 11, 57, 42, 60, 0, |
0, 0, 71, 45, 65, 0, 38, 5, 45, |
0, 5, 45, 0, 70, 45, 66, 39, 0, |
15, 42, 0, 0, 0, 14, 42, 60, 0, |
39, 70, 0, 11, 57, 42, 49, 59, 0, |
37, 57, 42, 49, 59, 39, 0, 71, 65, |
48, 0, 38, 5, 48, 0, 48, 70, 66, |
39, 0, 5, 48, 0, 13, 67, 42, 49, |
59, 0, 0, 67, 42, 49, 59, 0, 0, |
67, 42, 49, 59, 0, 13, 67, 42, 49, |
59, 0, 48, 70, 39, 0, 16, 41, 44, |
0, 19, 44, 0, 26, 41, 53, 0, 28, |
53, 0, 25, 50, 51, 43, 9, 0, 25, |
50, 43, 0, 24, 50, 43, 0, 62, 32, |
41, 50, 9, 4, 0, 62, 51, 36, 50, |
9, 4, 0, 62, 36, 50, 4, 0, 62, |
34, 50, 4, 0, 51, 50, 1, 0, 34, |
50, 1, 0, 51, 50, 29, 0, 33, 50, |
29, 0, 64, 50, 51, 20, 1, 0, 64, |
50, 20, 1, 0, 64, 50, 22, 1, 0, |
31, 41, 0, 56, 0, 31, 41, 60, 0, |
16, 41, 44, 0, 19, 44, 0, 23, 43, |
41, 0, 25, 43, 0, 31, 41, 35, 0, |
35, 0, 31, 41, 35, 0, 35, 0, 30, |
51, 50, 55, 9, 0, 30, 50, 55, 0, |
27, 50, 55, 0, 27, 50, 10, 54, 0, |
30, 51, 50, 10, 54, 9, 0, 30, 50, |
10, 54, 0, 51, 50, 1, 0, 27, 50, |
1, 0, 51, 50, 29, 0, 27, 50, 29, |
0, 64, 50, 51, 20, 1, 0, 64, 50, |
20, 1, 0, 64, 50, 27, 20, 1, 0, |
26, 41, 0, 56, 0, 26, 41, 60, 0, |
54, 0, 54, 0, 16, 41, 44, 0, 19, |
44, 0, 26, 41, 52, 0, 28, 52, 0, |
50, 51, 9, 0, 33, 50, 0, 62, 32, |
41, 50, 9, 47, 4, 0, 62, 36, 50, |
47, 4, 0, 62, 34, 50, 47, 4, 0, |
51, 50, 1, 0, 34, 50, 1, 0, 51, |
50, 29, 0, 33, 50, 29, 0, 64, 50, |
51, 20, 1, 0, 64, 50, 20, 1, 0, |
64, 50, 22, 1, 0, 31, 41, 0, 23, |
41, 43, 60, 0, 56, 0, 31, 41, 43, |
60, 0, 28, 53, 0, 25, 50, 64, 46, |
20, 43, 1, 0, 25, 50, 43, 0, 24, |
50, 43, 0, 62, 50, 64, 18, 41, 1, |
4, 0, 62, 35, 50, 4, 0, 62, 33, |
50, 4, 0, 50, 64, 46, 20, 1, 0, |
50, 1, 0, 33, 50, 1, 0, 50, 64, |
46, 29, 0, 50, 29, 0, 33, 50, 29, |
0, 31, 41, 60, 0, 25, 43, 0, 35, |
0, 35, 0, 30, 50, 64, 46, 54, 1, |
20, 0, 30, 50, 54, 0, 27, 50, 54, |
0, 30, 50, 64, 54, 46, 1, 20, 0, |
30, 50, 54, 0, 27, 50, 54, 0, 50, |
64, 46, 20, 1, 0, 50, 1, 0, 27, |
50, 1, 0, 50, 64, 46, 29, 0, 50, |
29, 0, 27, 50, 29, 0, 26, 41, 60, |
0, 28, 52, 0, 50, 0, 33, 50, 0, |
62, 50, 64, 18, 41, 47, 1, 4, 0, |
62, 35, 47, 50, 4, 0, 62, 33, 47, |
50, 4, 0, 50, 64, 46, 20, 1, 0, |
50, 1, 0, 33, 50, 1, 0, 50, 64, |
46, 29, 0, 50, 29, 0, 33, 50, 29, |
0, 23, 41, 60, 0 |
}; |
|
static short int pseudo_code_idx [ ] ={ |
0, 1, 7, 16, 18, 20, 22, 24, 26, |
28, 30, 35, 43, 48, 50, 52, 55, 58, |
60, 67, 69, 71, 73, 76, 78, 84, 92, |
96, 100, 103, 105, 110, 112, 118, 126, 130, |
134, 137, 139, 144, 146, 149, 151, 153, 155, |
157, 162, 164, 168, 172, 175, 180, 183, 185, |
189, 192, 198, 205, 209, 213, 218, 221, 227, |
233, 239, 245, 249, 253, 256, 260, 263, 269, |
273, 277, 284, 291, 296, 301, 305, 309, 313, |
317, 323, 328, 333, 336, 338, 342, 346, 349, |
353, 356, 360, 362, 366, 368, 374, 378, 382, |
387, 394, 399, 403, 407, 411, 415, 421, 426, |
432, 435, 437, 441, 443, 445, 449, 452, 456, |
459, 463, 466, 474, 480, 486, 490, 494, 498, |
502, 508, 513, 518, 521, 526, 528, 533, 536, |
544, 548, 552, 560, 565, 570, 576, 579, 583, |
588, 591, 595, 599, 602, 604, 606, 614, 618, |
622, 630, 634, 638, 644, 647, 651, 656, 659, |
663, 667, 670, 672, 675, 684, 690, 696, 702, |
705, 709, 714, 717, 721, 0 |
}; |
|
#define NOP 0 |
#define ADM1 1 |
#define ADM2 2 |
#define ADM3 3 |
#define ADM4 4 |
#define ADM5 5 |
#define CONN2 6 |
#define CONN3 7 |
#define CONN4 8 |
#define CONN5 9 |
#define RESWAIT1 10 |
#define RESWAIT2 11 |
#define RESWAIT3 12 |
#define RESWAIT4 13 |
#define RESWAIT5 14 |
#define RESWAIT6 15 |
#define RESWAIT7 16 |
#define RESWAIT8 17 |
#define RESCHK1 18 |
#define RESCHK2 19 |
#define RESCHK3 20 |
#define RESCHK4 21 |
#define RESCHK5 22 |
#define RESCHK6 23 |
#define SETUP1 24 |
#define SETUP2 25 |
#define SETUP3 26 |
#define SETUP4 27 |
#define SETUP5 28 |
#define SETUP6 29 |
#define SETUP7 30 |
#define SETUP8 31 |
#define RESET1 32 |
#define RESET2 33 |
#define RESET3 34 |
#define RESET4 35 |
#define RESET5 36 |
#define RESET6 37 |
#define RESET7 38 |
#define RESET8 39 |
#define D_CONN1 40 |
#define D_CONN2 41 |
#define D_CONN3 42 |
#define D_CONN4 43 |
#define D_CONN5 44 |
#define D_CONN6 45 |
#define D_CONN7 46 |
#define ERR1 47 |
#define ERR2 48 |
#define ERR3 49 |
#define ERR4 50 |
#define ERR5 51 |
#define ERR6 52 |
#define ERR7 53 |
#define ERR8 54 |
#define SH1 55 |
#define SH2 56 |
#define SH3 57 |
#define SH4 58 |
#define SH5 59 |
#define SH6 60 |
#define SH7 61 |
#define SH8 62 |
#define SH9 63 |
#define SH10 64 |
#define SH11 65 |
#define NORMAL1 66 |
#define NORMAL2 67 |
#define NORMAL3 68 |
#define NORMAL4 69 |
#define NORMAL5 70 |
#define NORMAL6 71 |
#define NORMAL7 72 |
#define NORMAL8A 73 |
#define NORMAL8B 74 |
#define NORMAL9 75 |
#define NORMAL10 76 |
#define NORMAL11 77 |
#define NORMAL12 78 |
#define NORMAL13 79 |
#define NORMAL14 80 |
#define NORMAL15 81 |
#define NORMAL16 82 |
#define NORMAL17 83 |
#define NORMAL18 84 |
#define NORMAL19 85 |
#define NORMAL20 86 |
#define BUSY1 87 |
#define BUSY2 88 |
#define BUSY3 89 |
#define BUSY4 90 |
#define BUSY5 91 |
#define BUSY6 92 |
#define BUSY7 93 |
#define BUSY8 94 |
#define BUSY9 95 |
#define BUSY10 96 |
#define BUSY11 97 |
#define BUSY12 98 |
#define BUSY13 99 |
#define BUSY14 100 |
#define BUSY15 101 |
#define BUSY16 102 |
#define BUSY17 103 |
#define BUSY18 104 |
#define BUSY19 105 |
#define BUSY20 106 |
#define BUSY21 107 |
#define BUSY22 108 |
#define BUSY23 109 |
#define BUSY24 110 |
#define BUSY25 111 |
#define BUSY26 112 |
#define REJECT1 113 |
#define REJECT2 114 |
#define REJECT3 115 |
#define REJECT4 116 |
#define REJECT5 117 |
#define REJECT6 118 |
#define REJECT7 119 |
#define REJECT8 120 |
#define REJECT9 121 |
#define REJECT10 122 |
#define REJECT11 123 |
#define REJECT12 124 |
#define REJECT13 125 |
#define REJECT14 126 |
#define REJECT15 127 |
#define REJECT16 128 |
#define REJECT17 129 |
#define REJECT18 130 |
#define REJECT19 131 |
#define REJECT20 132 |
#define AWAIT1 133 |
#define AWAIT2 134 |
#define AWAIT3 135 |
#define AWAIT4 136 |
#define AWAIT5 137 |
#define AWAIT6 138 |
#define AWAIT7 139 |
#define AWAIT8 140 |
#define AWAIT9 141 |
#define AWAIT10 142 |
#define AWAIT11 143 |
#define AWAIT12 144 |
#define AWAIT13 145 |
#define AWAIT14 146 |
#define AWAIT_BUSY1 147 |
#define AWAIT_BUSY2 148 |
#define AWAIT_BUSY3 149 |
#define AWAIT_BUSY4 150 |
#define AWAIT_BUSY5 151 |
#define AWAIT_BUSY6 152 |
#define AWAIT_BUSY7 153 |
#define AWAIT_BUSY8 154 |
#define AWAIT_BUSY9 155 |
#define AWAIT_BUSY10 156 |
#define AWAIT_BUSY11 157 |
#define AWAIT_BUSY12 158 |
#define AWAIT_BUSY13 159 |
#define AWAIT_BUSY14 160 |
#define AWAIT_BUSY15 161 |
#define AWAIT_BUSY16 162 |
#define AWAIT_REJECT1 163 |
#define AWAIT_REJECT2 164 |
#define AWAIT_REJECT3 165 |
#define AWAIT_REJECT4 166 |
#define AWAIT_REJECT5 167 |
#define AWAIT_REJECT6 168 |
#define AWAIT_REJECT7 169 |
#define AWAIT_REJECT8 170 |
#define AWAIT_REJECT9 171 |
#define AWAIT_REJECT10 172 |
#define AWAIT_REJECT11 173 |
#define AWAIT_REJECT12 174 |
#define AWAIT_REJECT13 175 |
|
/opcd2num.sed
0,0 → 1,72
s/NOP/0/ |
s/DUMMY_6/6/ |
s/DUMMY_8/8/ |
s/IF_F=1_CLEAR_REMOTE_BUSY/9/ |
s/CLEAR_REMOTE_BUSY/1/ |
s/CONNECT_CONFIRM/3/ |
s/DISCONNECT_INDICATION/5/ |
s/CONNECT_INDICATION/2/ |
s/IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1/55/ |
s/DATA_FLAG:=0/53/ |
s/DATA_FLAG:=1/54/ |
s/DATA_FLAG:=2/52/ |
s/DATA_INDICATION/4/ |
s/F_FLAG:=P/65/ |
s/IF_DATA_FLAG=2_STOP_REJ_TIMER/10/ |
s/OPTIONAL_SEND_RNR_XXX(X=0)/30/ |
s/P_FLAG:=0/56/ |
s/P_FLAG:=P/57/ |
s/RE-SEND_FRMR_RSP(F=0)/14/ |
s/RE-SEND_FRMR_RSP(F=P)/15/ |
s/RE-SEND_I_CMD(P=1)_OR_SEND_RR/18/ |
s/RE-SEND_I_CMD(P=1)/17/ |
s/RE-SEND_I_RSP(F=1)/22/ |
s/RE-SEND_I_XXX(X=0)_OR_SEND_RR/21/ |
s/RE-SEND_I_XXX(X=0)/20/ |
s/REMOTE_BUSY:=0/58/ |
s/REPORT_STATUS(FRMR_RECEIVED)/66/ |
s/REPORT_STATUS(FRMR_SENT)/67/ |
s/REPORT_STATUS(REMOTE_BUSY)/68/ |
s/REPORT_STATUS(REMOTE_NOT_BUSY)/69/ |
s/RESET_CONFIRM/7/ |
s/RESET_INDICATION(LOCAL)/70/ |
s/RESET_INDICATION(REMOTE)/71/ |
s/RETRY_COUNT:=RETRY_COUNT+1/60/ |
s/RETRY_COUNT:=0/59/ |
s/SEND_ACKNOWLEDGE_CMD(P=1)/32/ |
s/SEND_ACKNOWLEDGE_RSP(F=1)/34/ |
s/SEND_ACKNOWLEDGE_XXX(X=0)/36/ |
s/SEND_DISC_CMD(P=X)/11/ |
s/SEND_DM_RSP(F=X)/12/ |
s/SEND_FRMR_RSP(F=X)/13/ |
s/SEND_I_CMD(P=1)/16/ |
s/SEND_I_XXX(X=0)/19/ |
s/SEND_REJ_CMD(P=1)/23/ |
s/SEND_REJ_RSP(F=1)/24/ |
s/SEND_REJ_XXX(X=0)/25/ |
s/SEND_RNR_CMD(F=1)/26/ |
s/SEND_RNR_RSP(F=1)/27/ |
s/SEND_RNR_XXX(X=0)/28/ |
s/SEND_RR_CMD(P=1)/31/ |
s/SEND_RR_RSP(F=1)/33/ |
s/SEND_RR_XXX(X=0)/35/ |
s/SEND_SABME_CMD(P=X)/37/ |
s/SEND_UA_RSP(F=X)/38/ |
s/SET_REMOTE_BUSY/29/ |
s/START_ACK_TIMER_IF_NOT_RUNNING/44/ |
s/START_ACK_TIMER/42/ |
s/START_P_TIMER/41/ |
s/START_REJ_TIMER/43/ |
s/STOP_ACK_TIMER/45/ |
s/STOP_ALL_TIMERS/48/ |
s/STOP_OTHER_TIMERS/49/ |
s/STOP_P_TIMER/46/ |
s/STOP_REJ_TIMER/47/ |
s/S_FLAG:=0/39/ |
s/S_FLAG:=1/40/ |
s/UPDATE_N(R)_RECEIVED/50/ |
s/UPDATE_P_FLAG/51/ |
s/V(R):=0/61/ |
s/V(R):=V(R)+1/62/ |
s/V(S):=0/63/ |
s/V(S):=N(R)/64/ |
/actionnm.awk
0,0 → 1,27
# usage: awk -f actionnm.awk pseudocode.h |
# |
BEGIN { "date" | getline |
today = $0 |
printf("\n/* this file generated on %s */\n", today ) |
printf("\nstatic char *action_names[] = { \n " ) |
opl = 0 |
} |
|
/^#define/ { |
if ( opl > 3 ) { |
printf("\n ") |
opl = 0 |
} |
opl = opl +1 |
t = sprintf("\"%s\"", $2 ) |
printf("%-15s ,", t ) |
# printf("%-10s", $2 ) |
} |
|
END { |
if ( opl > 3 ) { |
printf("\n ") |
} |
printf("\t 0\n};\n\n") |
} |
|
/compile.awk
0,0 → 1,57
# usage: cat pseudocode | sed -f act2num | awk -f compile.awk |
# |
# |
BEGIN { "date" | getline |
today = $0 |
printf("\n/* this file generated on %s */\n", today ) |
printf("\nstatic char pseudo_code [ ] = { \n" ) |
opl = 0 # op codes on the current line |
|
opc = 0 # opcode counter |
fpi = 0 # fill pointer for idx array |
} |
|
/^;/ { } # line starting with semicolon is comment |
|
/^[A-Z]/ { # start of a new action |
emit( 0 ) |
idx[ ++fpi ] = opc |
name[ fpi ] = $1 |
emit( $2 ) |
} |
|
/^[\t ]/ { |
emit( $1 ) |
} |
|
END { |
if ( opl > 8 ) { |
printf("\n") |
} |
printf("\t 0\n};\n\n") |
printf("static short int pseudo_code_idx [ ] ={\n") |
opl = 0 |
emit( 0 ) |
for( ii = 1; ii <= fpi; ii++ ) |
emit( idx[ ii ] ) |
if ( opl > 8 ) { |
printf("\n") |
} |
printf("\t 0\n};\n\n") |
|
printf("#define %-10s \t %3d \n", "NOP", 0 ) |
for( ii = 1; ii <= fpi; ii++ ) |
printf("#define %-10s \t %3d \n", name[ ii ], ii ) |
printf("\n") |
} |
|
function emit( opcode ){ # Niclaus Wirth |
if ( opl > 8 ) { |
printf("\n") |
opl = 0 |
} |
opl = opl +1 |
printf("\t%4d,", opcode ) |
opc++ |
} |
|
/pseudocode
0,0 → 1,780
;============================================================================ |
; |
; 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 |
;============================================================================ |
|
/opcodes
0,0 → 1,72
0 NOP |
1 CLEAR_REMOTE_BUSY |
2 CONNECT_INDICATION |
3 CONNECT_CONFIRM |
4 DATA_INDICATION |
5 DISCONNECT_INDICATION |
6 DUMMY_6 |
7 RESET_CONFIRM |
8 DUMMY_8 |
9 IF_F=1_CLEAR_REMOTE_BUSY |
10 IF_DATA_FLAG=2_STOP_REJ_TIMER |
11 SEND_DISC_CMD(P=X) |
12 SEND_DM_RSP(F=X) |
13 SEND_FRMR_RSP(F=X) |
14 RE-SEND_FRMR_RSP(F=0) |
15 RE-SEND_FRMR_RSP(F=P) |
16 SEND_I_CMD(P=1) |
17 RE-SEND_I_CMD(P=1) |
18 RE-SEND_I_CMD(P=1)_OR_SEND_RR |
19 SEND_I_XXX(X=0) |
20 RE-SEND_I_XXX(X=0) |
21 RE-SEND_I_XXX(X=0)_OR_SEND_RR |
22 RE-SEND_I_RSP(F=1) |
23 SEND_REJ_CMD(P=1) |
24 SEND_REJ_RSP(F=1) |
25 SEND_REJ_XXX(X=0) |
26 SEND_RNR_CMD(F=1) |
27 SEND_RNR_RSP(F=1) |
28 SEND_RNR_XXX(X=0) |
29 SET_REMOTE_BUSY |
30 OPTIONAL_SEND_RNR_XXX(X=0) |
31 SEND_RR_CMD(P=1) |
32 SEND_ACKNOWLEDGE_CMD(P=1) |
33 SEND_RR_RSP(F=1) |
34 SEND_ACKNOWLEDGE_RSP(F=1) |
35 SEND_RR_XXX(X=0) |
36 SEND_ACKNOWLEDGE_XXX(X=0) |
37 SEND_SABME_CMD(P=X) |
38 SEND_UA_RSP(F=X) |
39 S_FLAG:=0 |
40 S_FLAG:=1 |
41 START_P_TIMER |
42 START_ACK_TIMER |
43 START_REJ_TIMER |
44 START_ACK_TIMER_IF_NOT_RUNNING |
45 STOP_ACK_TIMER |
46 STOP_P_TIMER |
47 STOP_REJ_TIMER |
48 STOP_ALL_TIMERS |
49 STOP_OTHER_TIMERS |
50 UPDATE_N(R)_RECEIVED |
51 UPDATE_P_FLAG |
52 DATA_FLAG:=2 |
53 DATA_FLAG:=0 |
54 DATA_FLAG:=1 |
55 IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1 |
56 P_FLAG:=0 |
57 P_FLAG:=P |
58 REMOTE_BUSY:=0 |
59 RETRY_COUNT:=0 |
60 RETRY_COUNT:=RETRY_COUNT+1 |
61 V(R):=0 |
62 V(R):=V(R)+1 |
63 V(S):=0 |
64 V(S):=N(R) |
65 F_FLAG:=P |
66 REPORT_STATUS(FRMR_RECEIVED) |
67 REPORT_STATUS(FRMR_SENT) |
68 REPORT_STATUS(REMOTE_BUSY) |
69 REPORT_STATUS(REMOTE_NOT_BUSY) |
70 RESET_INDICATION(LOCAL) |
71 RESET_INDICATION(REMOTE) |
/Makefile
0,0 → 1,13
all: pseudocode.h actionnm.h |
|
clean: |
touch pseudocode.h actionnm.h |
rm pseudocode.h actionnm.h |
|
pseudocode.h: pseudocode opcd2num.sed compile.awk |
sed -f opcd2num.sed pseudocode | awk -f compile.awk >pseudocode.h |
|
actionnm.h: pseudocode.h actionnm.awk |
awk -f actionnm.awk pseudocode.h>actionnm.h |
|
|
/opcodesnm.h
0,0 → 1,23
static char *opcode_names[] = { |
"NOP", "CLEAR_REMOTE_BUSY", "CONNECT_INDICATION", "CONNECT_CONFIRM", "DATA_INDICATION", |
"DISCONNECT_INDICATION", "DUMMY_6", "RESET_CONFIRM", "DUMMY_8", |
"IF_F=1_CLEAR_REMOTE_BUSY", "IF_DATA_FLAG=2_STOP_REJ_TIMER", "SEND_DISC_CMD(P=X)", |
"SEND_DM_RSP(F=X)", "SEND_FRMR_RSP(F=X)", "RE-SEND_FRMR_RSP(F=0)", |
"RE-SEND_FRMR_RSP(F=P)", "SEND_I_CMD(P=1)", "RE-SEND_I_CMD(P=1)", |
"RE-SEND_I_CMD(P=1)_OR_SEND_RR", "SEND_I_XXX(X=0)", "RE-SEND_I_XXX(X=0)", |
"RE-SEND_I_XXX(X=0)_OR_SEND_RR", "RE-SEND_I_RSP(F=1)", "SEND_REJ_CMD(P=1)", |
"SEND_REJ_RSP(F=1)", "SEND_REJ_XXX(X=0)", "SEND_RNR_CMD(F=1)", "SEND_RNR_RSP(F=1)", |
"SEND_RNR_XXX(X=0)", "SET_REMOTE_BUSY", "OPTIONAL_SEND_RNR_XXX(X=0)", |
"SEND_RR_CMD(P=1)", "SEND_ACKNOWLEDGE_CMD(P=1)", "SEND_RR_RSP(F=1)", |
"SEND_ACKNOWLEDGE_RSP(F=1)", "SEND_RR_XXX(X=0)", "SEND_ACKNOWLEDGE_XXX(X=0)", |
"SEND_SABME_CMD(P=X)", "SEND_UA_RSP(F=X)", "S_FLAG:=0", "S_FLAG:=1", "START_P_TIMER", |
"START_ACK_TIMER", "START_REJ_TIMER", "START_ACK_TIMER_IF_NOT_RUNNING", |
"STOP_ACK_TIMER", "STOP_P_TIMER", "STOP_REJ_TIMER", "STOP_ALL_TIMERS", |
"STOP_OTHER_TIMERS", "UPDATE_N(R)_RECEIVED", "UPDATE_P_FLAG", "DATA_FLAG:=2", |
"DATA_FLAG:=0", "DATA_FLAG:=1", "IF_DATA_FLAG_=0_THEN_DATA_FLAG:=1", "P_FLAG:=0", |
"P_FLAG:=P", "REMOTE_BUSY:=0", "RETRY_COUNT:=0", "RETRY_COUNT:=RETRY_COUNT+1", |
"V(R):=0", "V(R):=V(R)+1", "V(S):=0", "V(S):=N(R)", "F_FLAG:=P", |
"REPORT_STATUS(FRMR_RECEIVED)", "REPORT_STATUS(FRMR_SENT)", |
"REPORT_STATUS(REMOTE_BUSY)", "REPORT_STATUS(REMOTE_NOT_BUSY)", |
"RESET_INDICATION(LOCAL)", "RESET_INDICATION(REMOTE)" |
}; |
/actionnm.h
0,0 → 1,51
|
/* this file generated on Thu Oct 24 11:42:37 GMT 1996 */ |
|
static char *action_names[] = { |
"NOP" ,"ADM1" ,"ADM2" ,"ADM3" , |
"ADM4" ,"ADM5" ,"CONN2" ,"CONN3" , |
"CONN4" ,"CONN5" ,"RESWAIT1" ,"RESWAIT2" , |
"RESWAIT3" ,"RESWAIT4" ,"RESWAIT5" ,"RESWAIT6" , |
"RESWAIT7" ,"RESWAIT8" ,"RESCHK1" ,"RESCHK2" , |
"RESCHK3" ,"RESCHK4" ,"RESCHK5" ,"RESCHK6" , |
"SETUP1" ,"SETUP2" ,"SETUP3" ,"SETUP4" , |
"SETUP5" ,"SETUP6" ,"SETUP7" ,"SETUP8" , |
"RESET1" ,"RESET2" ,"RESET3" ,"RESET4" , |
"RESET5" ,"RESET6" ,"RESET7" ,"RESET8" , |
"D_CONN1" ,"D_CONN2" ,"D_CONN3" ,"D_CONN4" , |
"D_CONN5" ,"D_CONN6" ,"D_CONN7" ,"ERR1" , |
"ERR2" ,"ERR3" ,"ERR4" ,"ERR5" , |
"ERR6" ,"ERR7" ,"ERR8" ,"SH1" , |
"SH2" ,"SH3" ,"SH4" ,"SH5" , |
"SH6" ,"SH7" ,"SH8" ,"SH9" , |
"SH10" ,"SH11" ,"NORMAL1" ,"NORMAL2" , |
"NORMAL3" ,"NORMAL4" ,"NORMAL5" ,"NORMAL6" , |
"NORMAL7" ,"NORMAL8A" ,"NORMAL8B" ,"NORMAL9" , |
"NORMAL10" ,"NORMAL11" ,"NORMAL12" ,"NORMAL13" , |
"NORMAL14" ,"NORMAL15" ,"NORMAL16" ,"NORMAL17" , |
"NORMAL18" ,"NORMAL19" ,"NORMAL20" ,"BUSY1" , |
"BUSY2" ,"BUSY3" ,"BUSY4" ,"BUSY5" , |
"BUSY6" ,"BUSY7" ,"BUSY8" ,"BUSY9" , |
"BUSY10" ,"BUSY11" ,"BUSY12" ,"BUSY13" , |
"BUSY14" ,"BUSY15" ,"BUSY16" ,"BUSY17" , |
"BUSY18" ,"BUSY19" ,"BUSY20" ,"BUSY21" , |
"BUSY22" ,"BUSY23" ,"BUSY24" ,"BUSY25" , |
"BUSY26" ,"REJECT1" ,"REJECT2" ,"REJECT3" , |
"REJECT4" ,"REJECT5" ,"REJECT6" ,"REJECT7" , |
"REJECT8" ,"REJECT9" ,"REJECT10" ,"REJECT11" , |
"REJECT12" ,"REJECT13" ,"REJECT14" ,"REJECT15" , |
"REJECT16" ,"REJECT17" ,"REJECT18" ,"REJECT19" , |
"REJECT20" ,"AWAIT1" ,"AWAIT2" ,"AWAIT3" , |
"AWAIT4" ,"AWAIT5" ,"AWAIT6" ,"AWAIT7" , |
"AWAIT8" ,"AWAIT9" ,"AWAIT10" ,"AWAIT11" , |
"AWAIT12" ,"AWAIT13" ,"AWAIT14" ,"AWAIT_BUSY1" , |
"AWAIT_BUSY2" ,"AWAIT_BUSY3" ,"AWAIT_BUSY4" ,"AWAIT_BUSY5" , |
"AWAIT_BUSY6" ,"AWAIT_BUSY7" ,"AWAIT_BUSY8" ,"AWAIT_BUSY9" , |
"AWAIT_BUSY10" ,"AWAIT_BUSY11" ,"AWAIT_BUSY12" ,"AWAIT_BUSY13" , |
"AWAIT_BUSY14" ,"AWAIT_BUSY15" ,"AWAIT_BUSY16" ,"AWAIT_REJECT1" , |
"AWAIT_REJECT2" ,"AWAIT_REJECT3" ,"AWAIT_REJECT4" ,"AWAIT_REJECT5" , |
"AWAIT_REJECT6" ,"AWAIT_REJECT7" ,"AWAIT_REJECT8" ,"AWAIT_REJECT9" , |
"AWAIT_REJECT10" ,"AWAIT_REJECT11" ,"AWAIT_REJECT12" ,"AWAIT_REJECT13" , |
0 |
}; |
|