annotate runtime/fib.c @ 56:d2f9b0a9403d

Initial experiment with goto and switch
author Mike Pavone <pavone@retrodev.com>
date Thu, 08 Oct 2009 01:52:38 -0400
parents
children 2174878a6e4b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
56
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #include <stdio.h>
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include "builtin.h"
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 #include "object.h"
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 #include "context.h"
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 #include "func.h"
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 #include "integer.h"
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 #include "bool.h"
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 typedef enum {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 FUNC__LT_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 FUNC__LT__AT_Int32,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 FUNC__MN_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 FUNC__MN__AT_Int32,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 FUNC__PL_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 FUNC__PL__AT_Int32,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 FUNC_Fib,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 FUNC_If,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 FUNC_If_AT_Yes_SP_No,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 FUNC_Main,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 FUNC_Print,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 END
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 } funcids;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 typedef struct {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 struct object *____result__0__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 struct object *____result__0__1;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 struct object *____result__10__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 struct object *____result__11__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 struct object *____result__1__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
30 struct object *____result__5__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31 struct object *____result__6__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 struct object *____result__7__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 struct object *out;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 } lt_Fib;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36 typedef struct {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 struct object *____result__0__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 struct object *____result__1__0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 } lt_Main;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 object * _const_Whole_SP_Number__1;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42 object * _const_Whole_SP_Number__2;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43 object * _const_Whole_SP_Number__30;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 void rhope(uint32_t func)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 uint16_t resume,idx;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
48 context * ct;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
49 calldata * cdata, *temp_cdata;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
50 FuncDef(Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
51 FuncDef(Main)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
52
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
53 ct = new_context();
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
54 cdata = alloc_cdata(ct, NULL, 0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
55 cdata->num_params = 0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
56 cdata->func = END;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
57 resume = 0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
58 _dispatch:
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
59 switch(func)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
60 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
61 Method(_LT_)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
62 MethodDispatch(TYPE_INT32,_LT_,Int32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
63 EndMethod
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
64
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
65 MethodImplNoLocals(_LT_,Int32,TYPE_INT32,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
66 NumParams 2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
67
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
68 Param(1, TYPE_INT32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
69
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
70 if(((t_Int32 *)cdata->params[0])->num < ((t_Int32 *)cdata->params[-1])->num)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
71 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
72 release_ref(cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
73 Ret(0, Yes)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
74 } else {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
75 release_ref(cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
76 Ret(0, No)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
77 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
78
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
79 release_ref(cdata->params[-1]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
80 EndFuncNoLocals
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
81
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
82 Method(_MN_)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
83 MethodDispatch(TYPE_INT32,_MN_,Int32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
84 EndMethod
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
85
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
86 MethodImplNoLocals(_MN_,Int32,TYPE_INT32,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
87 NumParams 2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
88
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
89 Param(1, TYPE_INT32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
90
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
91 cdata->params[0] = copy_object(cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
92 ((t_Int32 *)cdata->params[0])->num -= ((t_Int32 *)cdata->params[-1])->num;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
93
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
94 release_ref(cdata->params[-1]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
95 EndFuncNoLocals
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
96
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
97 Method(_PL_)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
98 MethodDispatch(TYPE_INT32,_PL_,Int32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
99 EndMethod
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
100
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
101 MethodImplNoLocals(_PL_,Int32,TYPE_INT32,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
102 NumParams 2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
103
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
104 Param(1, TYPE_INT32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
105
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
106 cdata->params[0] = copy_object(cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
107 ((t_Int32 *)cdata->params[0])->num += ((t_Int32 *)cdata->params[-1])->num;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
108
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
109 release_ref(cdata->params[-1]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
110 EndFuncNoLocals
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
111
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
112 Func(Fib,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
113 NumParams 1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
114 lv_Fib->____result__0__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
115 lv_Fib->____result__0__1 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
116 lv_Fib->____result__1__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
117 lv_Fib->____result__5__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
118 lv_Fib->____result__6__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
119 lv_Fib->____result__7__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
120 lv_Fib->____result__10__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
121 lv_Fib->____result__11__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
122 lv_Fib->out = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
123
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
124 PrepCall(2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
125 SetParam(0, add_ref(cdata->lastframe->params[0]))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
126 SetParam(1, add_ref(_const_Whole_SP_Number__2))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
127 Call(_LT_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
128 NumParams 2, 1, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
129 lv_Fib->____result__1__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
130 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
131
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
132 PrepCall(2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
133 SetParam(0, add_ref(lv_Fib->____result__1__0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
134 Call(If,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
135 NumParams 1, 2, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
136 lv_Fib->____result__0__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
137 lv_Fib->____result__0__1 = cdata->params[-1];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
138 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
139
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
140 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
141 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
142 PrepCall(2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
143 SetParam(0, add_ref(cdata->lastframe->params[0]))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
144 SetParam(1, add_ref(_const_Whole_SP_Number__1))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
145 Call(_MN_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
146 NumParams 2, 3, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
147 lv_Fib->____result__7__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
148 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
149 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
150 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
151 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
152 PrepCall(2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
153 SetParam(0, add_ref(cdata->lastframe->params[0]))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
154 SetParam(1, add_ref(_const_Whole_SP_Number__2))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
155 Call(_MN_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
156 NumParams 2, 4, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
157 lv_Fib->____result__11__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
158 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
159 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
160 if(lv_Fib->____result__0__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
161 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
162 lv_Fib->out = add_ref(_const_Whole_SP_Number__1);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
163 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
164 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
165 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
166 PrepCall(1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
167 SetParam(0, add_ref(lv_Fib->____result__7__0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
168 Call(Fib,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
169 NumParams 1, 5, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
170 lv_Fib->____result__6__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
171 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
172 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
173 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
174 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
175 PrepCall(1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
176 SetParam(0, add_ref(lv_Fib->____result__11__0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
177 Call(Fib,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
178 NumParams 1, 6, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
179 lv_Fib->____result__10__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
180 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
181 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
182 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
183 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
184 PrepCall(2)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
185 SetParam(0, add_ref(lv_Fib->____result__6__0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
186 SetParam(1, add_ref(lv_Fib->____result__10__0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
187 Call(_PL_,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
188 NumParams 2, 7, Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
189 lv_Fib->____result__5__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
190 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
191 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
192 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
193 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
194 lv_Fib->out = add_ref(lv_Fib->____result__5__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
195 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
196 if(lv_Fib->____result__0__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
197 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
198 release_ref(lv_Fib->____result__0__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
199 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
200 if(lv_Fib->____result__0__1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
201 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
202 release_ref(lv_Fib->____result__0__1);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
203 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
204 if(lv_Fib->____result__1__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
205 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
206 release_ref(lv_Fib->____result__1__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
207 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
208 if(lv_Fib->____result__5__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
209 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
210 release_ref(lv_Fib->____result__5__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
211 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
212 if(lv_Fib->____result__6__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
213 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
214 release_ref(lv_Fib->____result__6__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
215 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
216 if(lv_Fib->____result__7__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
217 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
218 release_ref(lv_Fib->____result__7__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
219 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
220 if(lv_Fib->____result__10__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
221 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
222 release_ref(lv_Fib->____result__10__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
223 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
224 if(lv_Fib->____result__11__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
225 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
226 release_ref(lv_Fib->____result__11__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
227 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
228 release_ref(cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
229 Ret(0, lv_Fib->out)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
230 EndFunc(Fib)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
231
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
232 Method(If)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
233 MethodDispatch(TYPE_BOOLEAN,If,Yes_SP_No)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
234 EndMethod
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
235
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
236 MethodImplNoLocals(If,Yes_SP_No,TYPE_BOOLEAN,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
237 NumParams 1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
238
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
239 if(((t_Boolean *)(cdata->params[0]))->val)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
240 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
241 Ret(1, NULL)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
242 } else {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
243 Ret(1, cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
244 Ret(0, NULL)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
245 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
246 EndFuncNoLocals
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
247
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
248 Func(Main,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
249 NumParams 0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
250
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
251 lv_Main->____result__0__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
252 lv_Main->____result__1__0 = NULL;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
253
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
254 PrepCall(1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
255 SetParam(0, add_ref(_const_Whole_SP_Number__30))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
256 Call(Fib,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
257 NumParams 1, 1, Main)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
258 lv_Main->____result__1__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
259 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
260
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
261 PrepCall(1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
262 SetParam(0, add_ref(lv_Main->____result__1__0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
263 Call(Print,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
264 NumParams 1, 2, Main)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
265 lv_Main->____result__0__0 = cdata->params[0];
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
266 FreeCall
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
267
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
268 if(lv_Main->____result__0__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
269 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
270 release_ref(lv_Main->____result__0__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
271 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
272 if(lv_Main->____result__1__0)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
273 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
274 release_ref(lv_Main->____result__1__0);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
275 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
276 EndFunc(Main)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
277
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
278 FuncNoLocals(Print,
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
279 NumParams 1)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
280
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
281 if(get_blueprint(cdata->params[0])->type_id == TYPE_INT32)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
282 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
283 printf("%d\n", ((t_Int32 *)(cdata->params[0]))->num);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
284 } else {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
285 puts("Don't know how to print this type");
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
286 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
287 release_ref(cdata->params[0]);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
288 Ret(0, make_Int32(0))
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
289 EndFuncNoLocals
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
290
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
291 case END:
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
292 return;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
293 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
294 _exception:
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
295 puts("whoops, exception!");
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
296 }
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
297
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
298 int main(int argc, char ** argv)
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
299 {
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
300 register_builtin_types();
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
301
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
302 _const_Whole_SP_Number__1 = make_Int32(1);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
303 _const_Whole_SP_Number__2 = make_Int32(2);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
304 _const_Whole_SP_Number__30 = make_Int32(30);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
305
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
306 rhope(FUNC_Main);
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
307 return 0;
d2f9b0a9403d Initial experiment with goto and switch
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
308 }