00001
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef SCOLPLUGIN_H
00013 #define SCOLPLUGIN_H
00014
00015
00016
00017 #include <stdio.h>
00018 #include <stdlib.h>
00019
00020
00021
00022
00023 #define SizeWord 4
00024 #define SizeHeader 3
00025
00026
00027 #define NIL -1
00028
00029
00030 struct Mmachine
00031 {
00032 int *tape;
00033 int sizetape;
00034 int pp;
00035 int maxpp;
00036 int topheap;
00037 int sigGC;
00038 int h;
00039 int err;
00040 int *top;
00041 };
00042 typedef struct Mmachine *mmachine;
00043
00044 extern mmachine mm;
00045
00046
00047 #define TYPETAB 1
00048 #define TYPEBUF 0
00049
00050
00051 #define MERREND 1
00052 #define MERROK 0
00053 #define MERRMEM -1
00054 #define MERRTYP -2
00055 #define MERRRET -3
00056 #define MERRNUL -4
00057 #define MERRNF -5
00058 #define MERRLINK -6
00059 #define MERRFULL -7
00060 #define MERRUNKNOWN -8
00061 #define MERRTOOLARGE -9
00062
00063
00064 #define OFFOBJMAG 0
00065 #define OFFOBJCHN 1
00066 #define OFFOBJTYP 2
00067 #define OFFOBJHAND 3
00068 #define OFFOBJTPERE 4
00069 #define OFFOBJHPERE 5
00070 #define OFFOBJREF0 6
00071 #define OFFOBJUSER0 7
00072
00073
00074 #define MSKFOO 1
00075 #define MSKRUNTIME 2
00076 #define MSKWARNING 4
00077 #define MSKTRACE 8
00078 #define MSKDEBUG 16
00079
00080
00081
00082 #define TYPVAR -1
00083 #define TYPCONS -2
00084 #define TYPTYPE -3
00085 #define TYPFIELD -4
00086 #define TYPSTRUC -5
00087 #define TYPCONS0 -6
00088 #define TYPCOM -7
00089 #define TYPCOMV -8
00090
00091
00092
00093
00094
00095 #define SIZESIGN 1024
00096
00097 struct Packdir
00098 {
00099 char path[SIZESIGN];
00100 int quota;
00101 struct Packdir *next;
00102 };
00103 typedef struct Packdir *packdir;
00104
00105 #define TYPESNONE 0
00106 #define TYPESLOGIC 1
00107
00108
00109
00110
00111 #ifdef __cplusplus
00112 extern "C" {
00113 #endif
00114 int MMpush (mmachine m, int val);
00115 int MMpushNoGC (mmachine m, int val);
00116 int MMpull(mmachine m);
00117 int MMgetPP(mmachine m);
00118 void MMsetPP(mmachine m,int i);
00119 int MMget(mmachine m,int i);
00120 void MMset(mmachine m,int i,int v);
00121 int MMgetglobal(mmachine m,int i);
00122 void MMsetglobal(mmachine m,int i,int v);
00123 int MMgetbase(mmachine m,int b,int i);
00124 void MMsetbase(mmachine m,int b,int i,int v);
00125 int MMfetch(mmachine m,int s,int i);
00126 void MMstore(mmachine m,int s,int i,int v);
00127 int* MMstart(mmachine m,int s);
00128 int MMsize(mmachine m,int s);
00129 int MMtype(mmachine m,int s);
00130 char* MMstartstr(mmachine m,int s);
00131 int MMsizestr(mmachine m,int s);
00132 void MMsetsizestr(mmachine m,int s,int size);
00133 int MMmalloc(mmachine m, int size, int type);
00134 int MMmallocCLR(mmachine m, int size, int type);
00135 int Mpushstrbloc(mmachine m,char *buf);
00136 int MBdeftab(mmachine m);
00137 int MBstrcat(mmachine m);
00138 void MMechostr(int i,char *buf,...);
00139 int SPfindfile(packdir p,char *sign,int *size,char *path);
00140 int SPaddfile(packdir p,char *sign,int size,char *path);
00141 int SCgetsocket(mmachine m, int channel);
00142 int SCgetsrvsocket(mmachine m, int server);
00143 int MBstrcatn(mmachine m);
00144 int Minterpreter(mmachine m);
00145 int PKhardpak(mmachine m, char *name,
00146 int n, char **namefun, int (**fun)(mmachine z),
00147 int *nargfun, char **typfun);
00148 int PKloader(mmachine m,char *name,char *simplename);
00149
00150 size_t fread(void* buf,size_t i,size_t j,FILE *f);
00151
00152 int MMneedMemory(mmachine m,int size,int realsize);
00153 #ifdef __cplusplus
00154 }
00155 #endif
00156
00157
00158
00159 int Mcutting(char *comm, char **argv);
00160
00161 #ifdef __cplusplus
00162 extern "C" {
00163 #endif
00164 int OBJcreate(mmachine m,int typ,int handsys,int typpere,int handsyspere);
00165 int OBJaddreflex(mmachine m,int typ, int num);
00166 int OBJbeginreflex(mmachine m,int typ,int handsys,int num);
00167 int OBJdel(mmachine m,int p,int flag);
00168 int OBJdestroy(mmachine m, int typ,int handsys,int objm,int flag);
00169 int OBJdelTH(mmachine m,int typ,int handsys);
00170 int OBJcallreflex(mmachine m,int nbarg);
00171 int OBJregister(int nbrefl,int recrefl,int (*destroy)(mmachine m,int handsys,int objm),char *name);
00172 int OBJtypebyname(char *name);
00173 int OBJdefEvent(int event,int (*cbevent)(mmachine m,int hwnd, unsigned msg,
00174 int wParam,int lParam,int *ret));
00175 int OBJgetUserEvent();
00176
00177
00178 int OBJdelTM(mmachine m,int typ,int q);
00179 int OBJfindTH(mmachine m,int typ,int handsys);
00180 int OBJfindTM(mmachine m,int typ,int objm);
00181
00182
00183
00184 extern int (*mt_start)(int per,int param,int (*fun)(int i,int param));
00185 extern int (*mt_del)(int i);
00186 #ifdef __cplusplus
00187 }
00188 #endif
00189 char* stdloadJpg(char *name,int *w,int *h);
00190 int Mpushstrblocn(mmachine m,char *buf, int n);
00191
00192 int Msearchinsyspak(mmachine m, char *name);
00193
00194 int Buffer2texture(mmachine m, char *buffer, int width, int height);
00195
00196
00197
00198 void* objdd_get_buffer (mmachine m, int mobj);
00199 int _CRbitmap (mmachine m);
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265 #endif
00266