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