summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/rdos/rdos.h
blob: 690500071b5d2b72a09737855f57daf8beec04be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344

#ifndef _RDOS_H
#define _RDOS_H

#ifdef __cplusplus
extern "C" {
#endif

//#undef WIN32

#define FILE_ATTRIBUTE_READONLY         0x1
#define FILE_ATTRIBUTE_HIDDEN           0x2
#define FILE_ATTRIBUTE_SYSTEM           0x4
#define FILE_ATTRIBUTE_DIRECTORY        0x10
#define FILE_ATTRIBUTE_ARCHIVE          0x20
#define FILE_ATTRIBUTE_NORMAL           0x80

#define LGOP_NULL  0
#define LGOP_NONE  1
#define LGOP_OR  2
#define LGOP_AND  3
#define LGOP_XOR  4
#define LGOP_INVERT  5
#define LGOP_INVERT_OR  6
#define LGOP_INVERT_AND  7
#define LGOP_INVERT_XOR  8
#define LGOP_ADD  9
#define LGOP_SUBTRACT  10
#define LGOP_MULTIPLY  11

#define getred(pgc)       (((pgc)>>16)&0xFF)
#define getgreen(pgc)     (((pgc)>>8)&0xFF)
#define getblue(pgc)      ((pgc)&0xFF)
#define mkcolor(r,g,b)    (((r)<<16)|((g)<<8)|(b))

typedef struct ThreadState
{
	 short int ID;
	 char Name[32];
	 unsigned long MsbTime;
	 unsigned long LsbTime;
	 char List[32];
	 long Offset;
	 short int Sel;
} ThreadState;

#ifdef __GNUC__
#define __stdcall
#else
#if (sizeof(int) == 2)
#define __stdcall
#endif
#endif

short int __stdcall RdosSwapShort(short int val);
long __stdcall RdosSwapLong(long val);

void __stdcall RdosSetTextMode();
int __stdcall RdosSetVideoMode(int *BitsPerPixel, int *xres, int *yres, int *linesize, void **buffer);
void __stdcall RdosSetClipRect(int handle, int xmin, int ymin, int xmax, int ymax);
void __stdcall RdosClearClipRect(int handle);
void __stdcall RdosSetDrawColor(int handle, int color);
void __stdcall RdosSetLGOP(int handle, int lgop);
void __stdcall RdosSetHollowStyle(int handle);
void __stdcall RdosSetFilledStyle(int handle);
int __stdcall RdosOpenFont(int height);
void __stdcall RdosCloseFont(int font);
void __stdcall RdosGetStringMetrics(int font, const char *str, int *width, int *height);
void __stdcall RdosSetFont(int handle, int font);
int __stdcall RdosGetPixel(int handle, int x, int y);
void __stdcall RdosSetPixel(int handle, int x, int y);
void __stdcall RdosBlit(int SrcHandle, int DestHandle, int width, int height,
				int SrcX, int SrcY, int DestX, int DestY);
void __stdcall RdosDrawMask(int handle, void *mask, int RowSize, int width, int height,
				int SrcX, int SrcY, int DestX, int DestY); 
void __stdcall RdosDrawLine(int handle, int x1, int y1, int x2, int y2);
void __stdcall RdosDrawString(int handle, int x, int y, const char *str);
void __stdcall RdosDrawRect(int handle, int x, int y, int width, int height);
void __stdcall RdosDrawEllipse(int handle, int x, int y, int width, int height);
int __stdcall RdosCreateBitmap(int BitsPerPixel, int width, int height);
int __stdcall RdosDuplicateBitmapHandle(int handle);
void __stdcall RdosCloseBitmap(int handle);
int __stdcall RdosCreateStringBitmap(int font, const char *str);
void __stdcall RdosGetBitmapInfo(int handle, int *BitPerPixel, int *width, int *height,
					   int *linesize, void **buffer);

int __stdcall RdosCreateSprite(int DestHandle, int BitmapHandle, int MaskHandle, int lgop); 
void __stdcall RdosCloseSprite(int handle);
void __stdcall RdosShowSprite(int handle);
void __stdcall RdosHideSprite(int handle);
void __stdcall RdosMoveSprite(int handle, int x, int y);

void __stdcall RdosSetForeColor(int color);
void __stdcall RdosSetBackColor(int color);
int __stdcall RdosGetMemSize(void *ptr);
void *__stdcall RdosAllocateMem(int Size);
void __stdcall RdosFreeMem(void *ptr);
int __stdcall RdosAppDebug();

int __stdcall RdosOpenCom(int ID, long BaudRate, char Parity, char DataBits, char StopBits, int SendBufSize, int RecBufSize); 
void __stdcall RdosCloseCom(int Handle);
void __stdcall RdosFlushCom(int Handle);
char __stdcall RdosReadCom(int Handle);
int __stdcall RdosWriteCom(int Handle, char Val);
void __stdcall RdosEnableCts(int Handle);
void __stdcall RdosDisableCts(int Handle);
void __stdcall RdosEnableAutoRts(int Handle);
void __stdcall RdosDisableAutoRts(int Handle);
void __stdcall RdosSetDtr(int Handle);
void __stdcall RdosResetDtr(int Handle);
void __stdcall RdosSetRts(int Handle);
void __stdcall RdosResetRts(int Handle);
int __stdcall RdosGetReceiveBufferSpace(int Handle);
int __stdcall RdosGetSendBufferSpace(int Handle);
void __stdcall RdosWaitForSendCompletedCom(int Handle);

int __stdcall RdosOpenFile(const char *FileName, char Access);
int __stdcall RdosCreateFile(const char *FileName, int Attrib);
void __stdcall RdosCloseFile(int Handle);
int __stdcall RdosIsDevice(int Handle);
int __stdcall RdosDuplFile(int Handle);
long __stdcall RdosGetFileSize(int Handle);
void __stdcall RdosSetFileSize(int Handle, long Size);
long __stdcall RdosGetFilePos(int Handle);
void __stdcall RdosSetFilePos(int Handle, long Pos);
int __stdcall RdosReadFile(int Handle, void *Buf, int Size);
int __stdcall RdosWriteFile(int Handle, const void *Buf, int Size);
void __stdcall RdosGetFileTime(int Handle, unsigned long *MsbTime, unsigned long *LsbTime);
void __stdcall RdosSetFileTime(int Handle, unsigned long MsbTime, unsigned long LsbTime);

int __stdcall RdosCreateMapping(int Size);
int __stdcall RdosCreateNamedMapping(const char *Name, int Size); 
int __stdcall RdosCreateNamedFileMapping(const char *Name, int Size, int FileHandle);
int __stdcall RdosOpenNamedMapping(const char *Name);
void __stdcall RdosSyncMapping(int Handle);
void __stdcall RdosCloseMapping(int Handle);
void __stdcall RdosMapView(int Handle, int Offset, void *Base, int Size);
void __stdcall RdosUnmapView(int Handle);

int __stdcall RdosSetCurDrive(int Drive);
int __stdcall RdosGetCurDrive();
int __stdcall RdosSetCurDir(const char *PathName);
int __stdcall RdosGetCurDir(int Drive, char *PathName);
int __stdcall RdosMakeDir(const char *PathName);
int __stdcall RdosRemoveDir(const char *PathName);
int __stdcall RdosRenameFile(const char *ToName, const char *FromName);
int __stdcall RdosDeleteFile(const char *PathName);
int __stdcall RdosGetFileAttribute(const char *PathName, int *Attribute);
int __stdcall RdosSetFileAttribute(const char *PathName, int Attribute);
int __stdcall RdosOpenDir(const char *PathName);
void __stdcall RdosCloseDir(int Handle);
int __stdcall RdosReadDir(int Handle, int EntryNr, int MaxNameSize, char *PathName, long *FileSize, int *Attribute, unsigned long *MsbTime, unsigned long *LsbTime);

int __stdcall RdosGetThreadState(int ThreadNr, ThreadState *State);
int __stdcall RdosSuspendThread(int ThreadNr);

void __stdcall RdosCpuReset();
void __stdcall RdosGetVersion(int *Major, int *Minor, int *Release);
void __stdcall RdosCreateThread(void (*Start)(void *Param), const char *Name, void *Param, int StackSize);
void __stdcall RdosTerminateThread();
int __stdcall RdosGetThreadHandle();
int __stdcall RdosExec(const char *prog, const char *param);
int __stdcall RdosSpawn(const char *prog, const char *param, const char *startdir);
void __stdcall RdosWaitMilli(int ms);
void __stdcall RdosGetTics(unsigned long *msb, unsigned long *lsb);
void __stdcall RdosTicsToRecord(unsigned long msb, unsigned long lsb, int *year, int *month, int *day, int *hour, int *min, int *sec, int *milli);
void __stdcall RdosRecordToTics(unsigned long *msb, unsigned long *lsb, int year, int month, int day, int hour, int min, int sec, int milli);
int __stdcall RdosDayOfWeek(int year, int month, int day);
void __stdcall RdosGetSysTime(int *year, int *month, int *day, int *hour, int *min, int *sec, int *milli);
void __stdcall RdosGetTime(int *year, int *month, int *day, int *hour, int *min, int *sec, int *milli);
void __stdcall RdosSetTime(int year, int month, int day, int hour, int min, int sec, int milli);
void __stdcall RdosAddTics(unsigned long *msb, unsigned long *lsb, long tics);
void __stdcall RdosAddMilli(unsigned long *msb, unsigned long *lsb, long ms);
void __stdcall RdosAddSec(unsigned long *msb, unsigned long *lsb, long sec);
void __stdcall RdosAddMin(unsigned long *msb, unsigned long *lsb, long min);
void __stdcall RdosAddHour(unsigned long *msb, unsigned long *lsb, long hour);
void __stdcall RdosAddDay(unsigned long *msb, unsigned long *lsb, long day);
int __stdcall RdosSyncTime(long IP);

void __stdcall RdosDecodeMsbTics(unsigned long msb, int *days, int *hours);
void __stdcall RdosDecodeLsbTics(unsigned long lsb, int *min, int *sec, int *milli, int *micro); 

int __stdcall RdosCreateSection();
void __stdcall RdosDeleteSection(int Handle);
void __stdcall RdosEnterSection(int Handle);
void __stdcall RdosLeaveSection(int Handle);

int __stdcall RdosCreateWait();
void __stdcall RdosCloseWait(int Handle);
void * __stdcall RdosCheckWait(int Handle);
void * __stdcall RdosWaitForever(int Handle);
void * __stdcall RdosWaitTimeout(int Handle, int MillSec);
void __stdcall RdosStopWait(int Handle);
void __stdcall RdosRemoveWait(int Handle, void *ID);
void __stdcall RdosAddWaitForKeyboard(int Handle, void *ID);
void __stdcall RdosAddWaitForMouse(int Handle, void *ID);
void __stdcall RdosAddWaitForCom(int Handle, int ComHandle, void *ID);
void __stdcall RdosAddWaitForAdc(int Handle, int AdcHandle, void *ID);

int __stdcall RdosCreateSignal();
void __stdcall RdosResetSignal(int Handle);
int __stdcall RdosIsSignalled(int Handle);
void __stdcall RdosSetSignal(int Handle);
void __stdcall RdosFreeSignal(int Handle);
void __stdcall RdosAddWaitForSignal(int Handle, int SignalHandle, void *ID);

long __stdcall RdosGetIp();
int __stdcall RdosNameToIp(const char *HostName);
int __stdcall RdosIpToName(int Ip, char *HostName, int MaxSize);

int __stdcall RdosCreateTcpListen(int Port, int MaxConnections, int BufferSize);
int __stdcall RdosGetTcpListen(int Handle);
void __stdcall RdosCloseTcpListen(int Handle);
void __stdcall RdosAddWaitForTcpListen(int Handle, int ConHandle, void *ID);

int __stdcall RdosOpenTcpConnection(int RemoteIp, int LocalPort, int RemotePort, int Timeout, int BufferSize);
int __stdcall RdosWaitForTcpConnection(int Handle, long Timeout);
void __stdcall RdosAddWaitForTcpConnection(int Handle, int ConHandle, void *ID);
void __stdcall RdosCloseTcpConnection(int Handle);
void __stdcall RdosDeleteTcpConnection(int Handle);
void __stdcall RdosAbortTcpConnection(int Handle);
void __stdcall RdosPushTcpConnection(int Handle);
int __stdcall RdosIsTcpConnectionClosed(int Handle);
long __stdcall RdosGetRemoteTcpConnectionIP(int Handle);
int __stdcall RdosGetRemoteTcpConnectionPort(int Handle);
int __stdcall RdosGetLocalTcpConnectionPort(int Handle);
int __stdcall RdosReadTcpConnection(int Handle, void *Buf, int Size);
int __stdcall RdosWriteTcpConnection(int Handle, const void *Buf, int Size);
int __stdcall RdosPollTcpConnection(int Handle);

int __stdcall RdosGetLocalMailslot(const char *Name);
int __stdcall RdosGetRemoteMailslot(long Ip, const char *Name);
void __stdcall RdosFreeMailslot(int Handle);
int __stdcall RdosSendMailslot(int Handle, const void *Msg, int Size, void *ReplyBuf, int MaxReplySize);

void __stdcall RdosDefineMailslot(const char *Name, int MaxSize);
int __stdcall RdosReceiveMailslot(void *Msg);
void __stdcall RdosReplyMailslot(const void *Msg, int Size);

void __stdcall RdosSetFocus(char FocusKey);
char __stdcall RdosGetFocus();

void __stdcall RdosClearKeyboard();
int __stdcall RdosPollKeyboard();
int __stdcall RdosReadKeyboard();
int __stdcall RdosGetKeyboardState();
int __stdcall RdosPutKeyboard(int KeyCode, int VirtualKey, int ScanCode);
int __stdcall RdosPeekKeyEvent(int *ExtKey, int *KeyState, int *VirtualKey, int *ScanCode);
int __stdcall RdosReadKeyEvent(int *ExtKey, int *KeyState, int *VirtualKey, int *ScanCode);

void __stdcall RdosHideMouse();
void __stdcall RdosShowMouse();
void __stdcall RdosGetMousePosition(int *x, int *y);
void __stdcall RdosSetMousePosition(int x, int y);
void __stdcall RdosSetMouseWindow(int StartX, int StartY, int EndX, int EndY);
void __stdcall RdosSetMouseMickey(int x, int y);
int __stdcall RdosGetLeftButton();
int __stdcall RdosGetRightButton();
void __stdcall RdosGetLeftButtonPressPosition(int *x, int *y);
void __stdcall RdosGetRightButtonPressPosition(int *x, int *y);
void __stdcall RdosGetLeftButtonReleasePosition(int *x, int *y);
void __stdcall RdosGetRightButtonReleasePosition(int *x, int *y);

void __stdcall RdosGetCursorPosition(int *Row, int *Col);
void __stdcall RdosSetCursorPosition(int Row, int Col);
void __stdcall RdosWriteChar(char ch);
void __stdcall RdosWriteSizeString(const char *Buf, int Size);
void __stdcall RdosWriteString(const char *Buf);
int __stdcall RdosReadLine(char *Buf, int MaxSize);

int __stdcall RdosPing(long Node, long Timeout);

int __stdcall RdosGetIdeDisc(int UnitNr);
int __stdcall RdosGetFloppyDisc(int UnitNr);

int __stdcall RdosSetDiscInfo(int DiscNr, int SectorSize, long Sectors, int BiosSectorsPerCyl, int BiosHeads);
int __stdcall RdosGetDiscInfo(int DiscNr, int *SectorSize, long *Sectors, int *BiosSectorsPerCyl, int *BiosHeads);
int __stdcall RdosReadDisc(int DiscNr, long Sector, char *Buf, int Size);
int __stdcall RdosWriteDisc(int DiscNr, long Sector, const char *Buf, int Size);

void __stdcall RdosGetRdfsInfo(void *CryptTab, void *KeyTab, void *ExtentSizeTab);
void __stdcall RdosDemandLoadDrive(int DriveNr);
int __stdcall RdosFormatDrive(int DiscNr, long StartSector, int Size, const char *FsName);

int __stdcall RdosAllocateFixedDrive(int DriveNr);
int __stdcall RdosAllocateStaticDrive();
int __stdcall RdosAllocateDynamicDrive();

int __stdcall RdosGetDriveInfo(int DriveNr, long *FreeUnits, int *BytesPerUnit, long *TotalUnits);
int __stdcall RdosGetDriveDiscParam(int DriveNr, int *DiscNr, long *StartSector, long *TotalSectors);

int __stdcall RdosCreateFileDrive(int Drive, long Size, const char *FsName, const char *FileName);
int __stdcall RdosOpenFileDrive(int Drive, const char *FileName);

int __stdcall RdosGetModuleHandle();
const char * __stdcall RdosGetExeName();
int __stdcall RdosLoadDll(const char *Name);
void __stdcall RdosFreeDll(int handle);
int __stdcall RdosReadResource(int handle, int ID, char *Buf, int Size);
int __stdcall RdosReadBinaryResource(int handle, int ID, char *Buf, int Size);

int __stdcall RdosOpenAdc(int channel);
void __stdcall RdosCloseAdc(int handle);
void __stdcall RdosDefineAdcTime(int handle, unsigned long msg, unsigned long lsb);
long __stdcall RdosReadAdc(int handle);

int __stdcall RdosReadSerialLines(int device, int *val);
int __stdcall RdosToggleSerialLine(int device, int line);
int __stdcall RdosReadSerialVal(int device, int line, int *val);
int __stdcall RdosWriteSerialVal(int device, int line, int val);
int __stdcall RdosReadSerialRaw(int device, int line, int *val);
int __stdcall RdosWriteSerialRaw(int device, int line, int val);

int __stdcall RdosOpenSysEnv();
int __stdcall RdosOpenProcessEnv();
void __stdcall RdosCloseEnv(int handle);
void __stdcall RdosAddEnvVar(int handle, const char *var, const char *value);
void __stdcall RdosDeleteEnvVar(int handle, const char *var);
int __stdcall RdosFindEnvVar(int handle, const char *var, char *value);
void __stdcall RdosGetEnvData(int handle, char *buf);
void __stdcall RdosSetEnvData(int handle, const char *buf);

int __stdcall RdosOpenSysIni();
void __stdcall RdosCloseIni(int handle);
int __stdcall RdosGotoIniSection(int handle, const char *name);
int __stdcall RdosRemoveIniSection(int handle);
int __stdcall RdosReadIni(int handle, const char *var, char *str, int maxsize);
int __stdcall RdosWriteIni(int handle, const char *var, const char *str);
int __stdcall RdosDeleteIni(int handle, const char *var);

void __stdcall RdosEnableStatusLED();
void __stdcall RdosDisableStatusLED();

void __stdcall RdosStartWatchdog(int timeout);
void __stdcall RdosKickWatchdog();

#ifdef __cplusplus
}
#endif

#endif