OSDN Git Service

V2.0
[fast-forth/master.git] / ForthThreads.mac
1 ; -*- coding: utf-8 -*-
2 ; ForthThreads.mac
3
4 voclink     .set 0                      ; initial vocabulary link
5
6
7 forthlink   .set 0
8 forthlink1  .set 0
9 forthlink2  .set 0
10 forthlink3  .set 0
11 forthlink4  .set 0
12 forthlink5  .set 0
13 forthlink6  .set 0
14 forthlink7  .set 0
15 forthlink8  .set 0
16 forthlink9  .set 0
17 forthlink10 .set 0
18 forthlink11 .set 0
19 forthlink12 .set 0
20 forthlink13 .set 0
21 forthlink14 .set 0
22 forthlink15 .set 0
23 forthlink16 .set 0
24 forthlink17 .set 0
25 forthlink18 .set 0
26 forthlink19 .set 0
27 forthlink20 .set 0
28 forthlink21 .set 0
29 forthlink22 .set 0
30 forthlink23 .set 0
31 forthlink24 .set 0
32 forthlink25 .set 0
33 forthlink26 .set 0
34 forthlink27 .set 0
35 forthlink28 .set 0
36 forthlink29 .set 0
37 forthlink30 .set 0
38 forthlink31 .set 0
39
40 asmlink     .set 0
41 asmlink1    .set 0
42 asmlink2    .set 0
43 asmlink3    .set 0
44 asmlink4    .set 0
45 asmlink5    .set 0
46 asmlink6    .set 0
47 asmlink7    .set 0
48 asmlink8    .set 0
49 asmlink9    .set 0
50 asmlink10   .set 0
51 asmlink11   .set 0
52 asmlink12   .set 0
53 asmlink13   .set 0
54 asmlink14   .set 0
55 asmlink15   .set 0
56 asmlink16   .set 0
57 asmlink17   .set 0
58 asmlink18   .set 0
59 asmlink19   .set 0
60 asmlink20   .set 0
61 asmlink21   .set 0
62 asmlink22   .set 0
63 asmlink23   .set 0
64 asmlink24   .set 0
65 asmlink25   .set 0
66 asmlink26   .set 0
67 asmlink27   .set 0
68 asmlink28   .set 0
69 asmlink29   .set 0
70 asmlink30   .set 0
71 asmlink31   .set 0
72
73 ;-------------------------------------------
74 FORTHWORD   .MACRO  name
75 ;-------------------------------------------
76 ; (THREADS-1)*2 = AND mask to define CURRENT offset in vocabulary
77 thread      .set    charfromstr(name,0) &  ((THREADS-1)*2)
78
79
80     .SWITCH thread
81     .case 0
82             .word   forthlink
83 forthlink   .set    $
84     .case 2
85             .word   forthlink1
86 forthlink1  .set    $
87     .case 4
88             .word   forthlink2
89 forthlink2  .set    $
90     .case 6
91             .word   forthlink3
92 forthlink3  .set    $
93     .case 8
94             .word   forthlink4
95 forthlink4  .set    $
96     .case 10
97             .word   forthlink5
98 forthlink5  .set    $
99     .case 12
100             .word   forthlink6
101 forthlink6  .set    $
102     .case 14
103             .word   forthlink7
104 forthlink7  .set    $
105     .case 16
106             .word   forthlink8
107 forthlink8  .set    $
108     .case 18
109             .word   forthlink9
110 forthlink9  .set    $
111     .case 20
112             .word   forthlink10
113 forthlink10 .set    $
114     .case 22
115             .word   forthlink11
116 forthlink11 .set    $
117     .case 24
118             .word   forthlink12
119 forthlink12 .set    $
120     .case 26
121             .word   forthlink13
122 forthlink13 .set    $
123     .case 28
124             .word   forthlink14
125 forthlink14 .set    $
126     .case 30
127             .word   forthlink15
128 forthlink15 .set    $
129     .case 32
130             .word   forthlink16
131 forthlink16 .set    $
132     .case 34
133             .word   forthlink17
134 forthlink17 .set    $
135     .case 36
136             .word   forthlink18
137 forthlink18 .set    $
138     .case 38
139             .word   forthlink19
140 forthlink19 .set    $
141     .case 40
142             .word   forthlink20
143 forthlink20 .set    $
144     .case 42
145             .word   forthlink21
146 forthlink21 .set    $
147     .case 44
148             .word   forthlink22
149 forthlink22 .set    $
150     .case 46
151             .word   forthlink23
152 forthlink23 .set    $
153     .case 48
154             .word   forthlink24
155 forthlink24 .set    $
156     .case 50
157             .word   forthlink25
158 forthlink25 .set    $
159     .case 52
160             .word   forthlink26
161 forthlink26 .set    $
162     .case 54
163             .word   forthlink27
164 forthlink27 .set    $
165     .case 56
166             .word   forthlink28
167 forthlink28 .set    $
168     .case 58
169             .word   forthlink29
170 forthlink29 .set    $
171     .case 60
172             .word   forthlink30
173 forthlink30 .set    $
174     .case 62
175             .word   forthlink31
176 forthlink31 .set    $
177
178     .endcase
179
180             .byte   STRLEN(name),name
181 ;            .align  2
182             .ENDM
183
184
185
186 ;-------------------------------------------
187 FORTHWORDIMM .MACRO  name
188 ;-------------------------------------------
189
190 ; (THREADS-1)*2 = AND mask to define CURRENT offset in vocabulary
191 thread      .set    charfromstr(name,0) &  ((THREADS-1)*2)
192
193
194     .SWITCH thread
195     .case 0
196             .word   forthlink
197 forthlink   .set    $
198     .case 2
199             .word   forthlink1
200 forthlink1  .set    $
201     .case 4
202             .word   forthlink2
203 forthlink2  .set    $
204     .case 6
205             .word   forthlink3
206 forthlink3  .set    $
207     .case 8
208             .word   forthlink4
209 forthlink4  .set    $
210     .case 10
211             .word   forthlink5
212 forthlink5  .set    $
213     .case 12
214             .word   forthlink6
215 forthlink6  .set    $
216     .case 14
217             .word   forthlink7
218 forthlink7  .set    $
219     .case 16
220             .word   forthlink8
221 forthlink8  .set    $
222     .case 18
223             .word   forthlink9
224 forthlink9  .set    $
225     .case 20
226             .word   forthlink10
227 forthlink10 .set    $
228     .case 22
229             .word   forthlink11
230 forthlink11 .set    $
231     .case 24
232             .word   forthlink12
233 forthlink12 .set    $
234     .case 26
235             .word   forthlink13
236 forthlink13 .set    $
237     .case 28
238             .word   forthlink14
239 forthlink14 .set    $
240     .case 30
241             .word   forthlink15
242 forthlink15 .set    $
243     .case 32
244             .word   forthlink16
245 forthlink16 .set    $
246     .case 34
247             .word   forthlink17
248 forthlink17 .set    $
249     .case 36
250             .word   forthlink18
251 forthlink18 .set    $
252     .case 38
253             .word   forthlink19
254 forthlink19 .set    $
255     .case 40
256             .word   forthlink20
257 forthlink20 .set    $
258     .case 42
259             .word   forthlink21
260 forthlink21 .set    $
261     .case 44
262             .word   forthlink22
263 forthlink22 .set    $
264     .case 46
265             .word   forthlink23
266 forthlink23 .set    $
267     .case 48
268             .word   forthlink24
269 forthlink24 .set    $
270     .case 50
271             .word   forthlink25
272 forthlink25 .set    $
273     .case 52
274             .word   forthlink26
275 forthlink26 .set    $
276     .case 54
277             .word   forthlink27
278 forthlink27 .set    $
279     .case 56
280             .word   forthlink28
281 forthlink28 .set    $
282     .case 58
283             .word   forthlink29
284 forthlink29 .set    $
285     .case 60
286             .word   forthlink30
287 forthlink30 .set    $
288     .case 62
289             .word   forthlink31
290 forthlink31 .set    $
291
292
293     .endcase
294
295             .byte   STRLEN(name)+128,name
296 ;            .align  2
297             .ENDM
298
299
300
301 ;-------------------------------------------
302 asmword     .MACRO  name
303 ;-------------------------------------------
304
305 ; (THREADS-1)*2 = AND mask to define CURRENT offset in vocabulary
306 thread      .set    charfromstr(name,0) &  ((THREADS-1)*2)
307
308
309     .SWITCH thread
310     .case 0
311             .word   asmlink
312 asmlink   .set    $
313     .case 2
314             .word   asmlink1
315 asmlink1  .set    $
316     .case 4
317             .word   asmlink2
318 asmlink2  .set    $
319     .case 6
320             .word   asmlink3
321 asmlink3  .set    $
322     .case 8
323             .word   asmlink4
324 asmlink4  .set    $
325     .case 10
326             .word   asmlink5
327 asmlink5  .set    $
328     .case 12
329             .word   asmlink6
330 asmlink6  .set    $
331     .case 14
332             .word   asmlink7
333 asmlink7  .set    $
334     .case 16
335             .word   asmlink8
336 asmlink8  .set    $
337     .case 18
338             .word   asmlink9
339 asmlink9  .set    $
340     .case 20
341             .word   asmlink10
342 asmlink10 .set    $
343     .case 22
344             .word   asmlink11
345 asmlink11 .set    $
346     .case 24
347             .word   asmlink12
348 asmlink12 .set    $
349     .case 26
350             .word   asmlink13
351 asmlink13 .set    $
352     .case 28
353             .word   asmlink14
354 asmlink14 .set    $
355     .case 30
356             .word   asmlink15
357 asmlink15 .set    $
358     .case 32
359             .word   asmlink16
360 asmlink16 .set    $
361     .case 34
362             .word   asmlink17
363 asmlink17 .set    $
364     .case 36
365             .word   asmlink18
366 asmlink18 .set    $
367     .case 38
368             .word   asmlink19
369 asmlink19 .set    $
370     .case 40
371             .word   asmlink20
372 asmlink20 .set    $
373     .case 42
374             .word   asmlink21
375 asmlink21 .set    $
376     .case 44
377             .word   asmlink22
378 asmlink22 .set    $
379     .case 46
380             .word   asmlink23
381 asmlink23 .set    $
382     .case 48
383             .word   asmlink24
384 asmlink24 .set    $
385     .case 50
386             .word   asmlink25
387 asmlink25 .set    $
388     .case 52
389             .word   asmlink26
390 asmlink26 .set    $
391     .case 54
392             .word   asmlink27
393 asmlink27 .set    $
394     .case 56
395             .word   asmlink28
396 asmlink28 .set    $
397     .case 58
398             .word   asmlink29
399 asmlink29 .set    $
400     .case 60
401             .word   asmlink30
402 asmlink30 .set    $
403     .case 62
404             .word   asmlink31
405 asmlink31 .set    $
406
407
408     .endcase
409
410             .byte   STRLEN(name),name
411 ;            .align  2
412             .ENDM
413
414