-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalgorithms.js
183 lines (165 loc) · 4.04 KB
/
algorithms.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
dataSegment = [
0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x09,
]
const cdx = (w2c_p0, w2c_p1, w2c_p2, w2c_p3, w2c_p4) => {
let w2c_i0 = w2c_p1
let w2c_i1 = 10
w2c_i0 = Math.floor(w2c_i0 / w2c_i1);
w2c_p0 = w2c_i0
w2c_i1 = 10
w2c_i0 = w2c_i0 % w2c_i1
w2c_i1 = w2c_p1
let w2c_i2 = w2c_p0
let w2c_i3 = 10
w2c_i2 *= w2c_i3
w2c_i1 -= w2c_i2
w2c_i0 += w2c_i1
w2c_i1 = w2c_p1
w2c_i2 = 100
w2c_i1 = Math.floor(w2c_i1 / w2c_i2);
w2c_i2 = 10
w2c_i1 = w2c_i1 % w2c_i2
w2c_i0 += w2c_i1
w2c_i1 = 2
w2c_i0 <<= (w2c_i1 & 31)
w2c_i0 = dataSegment[w2c_i0]
w2c_i1 = 22
w2c_i0 += w2c_i1
return w2c_i0
};
const rdx = (w2c_p0, w2c_p1, w2c_p2, w2c_p3, w2c_p4) => {
let w2c_i0 = w2c_p1
let w2c_i1 = 100
w2c_i0 = Math.floor(w2c_i0 / w2c_i1);
w2c_i1 = 10
w2c_i0 = w2c_i0 % w2c_i1
w2c_i1 = w2c_p1
let w2c_i2 = 10
w2c_i1 = Math.floor(w2c_i1 / w2c_i2);
w2c_p0 = w2c_i1
w2c_i2 = 10
w2c_i1 = w2c_i1 % w2c_i2
w2c_i0 += w2c_i1
w2c_p2 = w2c_i0
w2c_i1 = w2c_p2
w2c_i2 = w2c_p1
let w2c_i3 = w2c_p0
let w2c_i4 = 10
w2c_i3 *= w2c_i4
w2c_i2 -= w2c_i3
w2c_i1 += w2c_i2
w2c_i2 = 2
w2c_i1 <<= (w2c_i2 & 31)
w2c_i1 = dataSegment[w2c_i1]
w2c_i0 += w2c_i1
w2c_i1 = 32
w2c_i0 += w2c_i1
return w2c_i0
};
const bdx = (w2c_p0, w2c_p1, w2c_p2, w2c_p3, w2c_p4) => {
let w2c_i0 = w2c_p1
let w2c_i1 = 100
w2c_i0 = Math.floor(w2c_i0 / w2c_i1);
w2c_i1 = 10
w2c_i0 = w2c_i0 % w2c_i1
w2c_i1 = w2c_p1
let w2c_i2 = 10
w2c_i1 = Math.floor(w2c_i1 / w2c_i2);
w2c_p0 = w2c_i1
w2c_i2 = 10
w2c_i1 = w2c_i1 % w2c_i2
w2c_i0 += w2c_i1
w2c_p2 = w2c_i0
w2c_i1 = w2c_p2
w2c_i2 = w2c_p1
let w2c_i3 = w2c_p0
let w2c_i4 = 10
w2c_i3 *= w2c_i4
w2c_i2 -= w2c_i3
w2c_i1 += w2c_i2
w2c_i2 = 2
w2c_i1 <<= (w2c_i2 & 31)
w2c_i1 = dataSegment[w2c_i1]
w2c_i0 += w2c_i1
w2c_i1 = 60
w2c_i0 += w2c_i1
return w2c_i0
};
const ndx = (w2c_p0, w2c_p1, w2c_p2, w2c_p3, w2c_p4) => {
let w2c_i0 = w2c_p1
let w2c_i1 = 10
w2c_i0 = Math.floor(w2c_i0 / w2c_i1);
w2c_p0 = w2c_i0
w2c_i1 = 10
w2c_i0 = w2c_i0 % w2c_i1
w2c_p2 = w2c_i0
w2c_i1 = w2c_p2
let w2c_i2 = w2c_p1
let w2c_i3 = w2c_p0
let w2c_i4 = 10
w2c_i3 *= w2c_i4
w2c_i2 -= w2c_i3
w2c_i1 += w2c_i2
w2c_i2 = w2c_p1
w2c_i3 = 100
w2c_i2 = Math.floor(w2c_i2 / w2c_i3);
w2c_i3 = 10
w2c_i2 = w2c_i2 % w2c_i3
w2c_i1 += w2c_i2
w2c_i2 = 2
w2c_i1 <<= (w2c_i2 & 31)
w2c_i1 = dataSegment[w2c_i1]
w2c_i0 += w2c_i1
w2c_i1 = 88
w2c_i0 += w2c_i1
return w2c_i0
};
const mdx = (w2c_p0, w2c_p1, w2c_p2, w2c_p3, w2c_p4) => {
let w2c_i0 = w2c_p1
let w2c_i1 = 100
w2c_i0 = Math.floor(w2c_i0 / w2c_i1);
w2c_i1 = 10
w2c_i0 = w2c_i0 % w2c_i1
w2c_p0 = w2c_i0
w2c_i1 = w2c_p0
let w2c_i2 = w2c_p1
let w2c_i3 = 10
w2c_i2 = Math.floor(w2c_i2 / w2c_i3);
w2c_p2 = w2c_i2
w2c_i3 = 10
w2c_i2 = w2c_i2 % w2c_i3
w2c_i3 = w2c_p1
let w2c_i4 = w2c_p2
let w2c_i5 = 10
w2c_i4 *= w2c_i5
w2c_i3 -= w2c_i4
w2c_i2 += w2c_i3
w2c_i1 += w2c_i2
w2c_i2 = 2
w2c_i1 <<= (w2c_i2 & 31)
w2c_i1 = dataSegment[w2c_i1]
w2c_i0 += w2c_i1
w2c_i1 = 110
w2c_i0 += w2c_i1
return w2c_i0
};
module.exports = {
cdx,
rdx,
bdx,
ndx,
mdx
};