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