VOC Optimation
[owSlave2.git] / tools_cmd / rwOW / ibtmexcw.h
1 /*---------------------------------------------------------------------------\r
2 * Copyright © 1992-2008 Maxim Integrated Products, All Rights Reserved.\r
3 *\r
4 * Permission is hereby granted, free of charge, to any person obtaining a\r
5 * copy of this software and associated documentation files (the "Software"),\r
6 * to deal in the Software without restriction, including without limitation\r
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
8 * and/or sell copies of the Software, and to permit persons to whom the\r
9 * Software is furnished to do so, subject to the following conditions:\r
10 *\r
11 * The above copyright notice and this permission notice shall be included\r
12 * in all copies or substantial portions of the Software.\r
13 *\r
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r
17 * IN NO EVENT SHALL MAXIM INTEGRATED PRODUCTS BE LIABLE FOR ANY CLAIM, DAMAGES\r
18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r
20 * OTHER DEALINGS IN THE SOFTWARE.\r
21 *\r
22 * Except as contained in this notice, the name of Maxim Integrated Products\r
23 * shall not be used except as stated in the Maxim Integrated Products\r
24 * Branding Policy.\r
25 *---------------------------------------------------------------------------\r
26 * Version 4.01\r
27 */\r
28 \r
29 /* includes */\r
30 #include <stdlib.h>\r
31 #include <string.h>\r
32 #include <ctype.h>\r
33 #include <windows.h>\r
34 #ifndef _WIN32_WCE\r
35 #include <stdio.h>\r
36 #include <conio.h>\r
37 #include <dos.h>\r
38 #include <fcntl.h>\r
39 #include <io.h>\r
40 #include <time.h>\r
41 #endif\r
42 \r
43 /* type defs */\r
44 typedef unsigned char uchar;\r
45 typedef unsigned short ushort;\r
46 typedef unsigned long ulong;\r
47 \r
48 /* typedef structure sent back by TMEX routines */\r
49 typedef struct \r
50 {\r
51 uchar name[4];\r
52 uchar extension;\r
53 uchar startpage;\r
54 uchar numpages;\r
55 uchar attrib;\r
56 uchar bitmap[32];\r
57 } FileEntry;\r
58 \r
59 /* structure to hold directory path */\r
60 typedef struct\r
61 {\r
62 uchar NumEntries; /* number of entries in path 0-10 */\r
63 char Ref; /* reference character '\' or '.' */\r
64 char Entries[10][4]; /* sub-directory entry names */ \r
65 } DirectoryPath;\r
66 \r
67 /* Holds info of each object in the Directory list */\r
68 struct DirNumInfo \r
69\r
70 unsigned char Name[4];\r
71 unsigned char Extension;\r
72 char Attrib;\r
73 };\r
74 \r
75 /* structure to hold exportable device parameters by family code (3.11) */\r
76 typedef struct\r
77 {\r
78 short features[32];\r
79 char dscrptn[255];\r
80 } Specification;\r
81 \r
82 \r
83 /* Error codes from TMEX functions */\r
84 #define NO_DEVICE -1 \r
85 #define WRONG_TYPE -2 \r
86 #define FILE_READ_ERR -3 \r
87 #define BUFFER_TOO_SMALL -4 \r
88 #define HANDLE_NOT_AVAIL -5 \r
89 #define FILE_NOT_FOUND -6 \r
90 #define REPEAT_FILE -7 \r
91 #define HANDLE_NOT_USED -8 \r
92 #define FILE_WRITE_ONLY -9 \r
93 #define OUT_OF_SPACE -10 \r
94 #define FILE_WRITE_ERR -11 \r
95 #define TMFILE_READ_ONLY -12 \r
96 #define FUNC_NOT_SUP -13 \r
97 #define BAD_FILENAME -14 \r
98 #define CANT_DEL_READ_ONLY -15 \r
99 #define HANDLE_NOT_EXIST -16 \r
100 #define ONE_WIRE_PORT_ERROR -17 \r
101 #define INVALID_DIRECTORY -18 \r
102 #define DIRECTORY_NOT_EMPTY -19 \r
103 #define UNABLE_TO_CREATE_DIR -20 \r
104 #define NO_PROGRAM_JOB -21 \r
105 #define PROGRAM_WRITE_PROTECT -22\r
106 #define NON_PROGRAM_PARTS -23 \r
107 #define ADDFILE_TERMINATED -24 \r
108 #define TIMEOUT -25 \r
109 #define INVALID_ARGUMENT -26 \r
110 #define BAD_ACK -27 \r
111 #define INVALID_SESSION -200\r
112 #define NO_BASDRV_FOUND -201\r
113 \r
114 /* Basic physical level error codes */\r
115 #define BPORT_NOT_INITIALIZED -1 \r
116 #define BPORT_NOT_EXIST -2 \r
117 #define BNO_SUCH_FUNCTION -3 \r
118 \r
119 /* Transport level error codes */\r
120 #define TERROR_READ_WRITE -4 \r
121 #define TBUFFER_TOO_SMALL -5 \r
122 #define TDEVICE_TOO_SMALL -6 \r
123 #define TNO_DEVICE -7 \r
124 #define TBLOCK_TOO_BIG -8 \r
125 #define TWRONG_TYPE -9 \r
126 #define TPAGE_REDIRECTED -10\r
127 #define TPROGRAM_NOT_POSSIBLE -11\r
128 #define BCOM_FAILURE -12\r
129 #define BCOM_EVENT -13\r
130 \r
131 /* for TMOneWireLevel */\r
132 #define LEVEL_NORMAL 0\r
133 #define LEVEL_STRONG_PULLUP 1\r
134 #define LEVEL_BREAK 2\r
135 #define LEVEL_PROGRAM 3 \r
136 #define PRIMED_NONE 0\r
137 #define PRIMED_BIT 1\r
138 #define PRIMED_BYTE 2 \r
139 #define LEVEL_READ 1\r
140 #define LEVEL_SET 0\r
141 \r
142 /* misc */\r
143 #define GENERAL_FAIL -2 \r
144 #define BAD_ARGUMENT 50\r
145 #define NO_DRIVERS 51\r
146 #define KEY_ABORT 52\r
147 #define OUT_MEMORY 53\r
148 #define NORMAL_EXIT 0\r
149 \r
150 #define TRUE 1\r
151 #define FALSE 0\r
152 #define DIR_READ 1\r
153 #define DIR_SET 0\r
154 #define DIR_REMOVE 1\r
155 #define DIR_MAKE 0\r
156 \r
157 /* for specification */\r
158 #define NOMEM 0\r
159 #define NVRAM 1\r
160 #define EPROM1 2\r
161 #define EPROM2 3\r
162 #define EPROM3 4\r
163 #define EEPROM1 5\r
164 #define MNVRAM 6\r
165 #define EEPROM2 7\r
166 #define NVRAM2 8\r
167 #define NVRAM3 9 \r
168 #define FTR_REG_PAGES 0\r
169 #define FTR_REG_LEN 1\r
170 #define FTR_STAT_PAGES 2\r
171 #define FTR_STAT_LEN 3\r
172 #define FTR_MAX_COM 4 \r
173 #define FTR_MEM_TYPE 5\r
174 \r
175 // session\r
176 extern long __fastcall TMExtendedStartSession(short, short, void far *);\r
177 extern short __fastcall TMValidSession(long); \r
178 extern short __fastcall TMEndSession(long); \r
179 extern short __fastcall Get_Version(char far *); \r
180 // file_operations\r
181 extern short __fastcall TMFirstFile(long, void far *, FileEntry far *); \r
182 extern short __fastcall TMNextFile(long, void far *, FileEntry far *);\r
183 extern short __fastcall TMOpenFile(long, void far *, FileEntry far *);\r
184 extern short __fastcall TMCreateFile(long, void far *, short far *, FileEntry far *);\r
185 extern short __fastcall TMCloseFile(long, void far *, short);\r
186 extern short __fastcall TMReadFile(long, void far *, short, uchar far *, short);\r
187 extern short __fastcall TMWriteFile(long, void far *, short, uchar far *, short);\r
188 extern short __fastcall TMDeleteFile(long, void far *, FileEntry far *);\r
189 extern short __fastcall TMFormat(long, void far *);\r
190 extern short __fastcall TMAttribute(long, void far *, short, FileEntry far *);\r
191 extern short __fastcall TMReNameFile(long, void far *, short, FileEntry far *); \r
192 extern short __fastcall TMChangeDirectory(long, void far *, short, DirectoryPath far *); \r
193 extern short __fastcall TMDirectoryMR(long, void far *, short, FileEntry far *);\r
194 extern short __fastcall TMCreateProgramJob(long, void far *);\r
195 extern short __fastcall TMDoProgramJob(long, void far *);\r
196 extern short __fastcall TMWriteAddFile(long, void far *, short, short, short, uchar far *, short);\r
197 extern short __fastcall TMTerminateAddFile(long, void far *, FileEntry far *);\r
198 extern short __fastcall TMGetFamilySpec(long, void far *, Specification *); \r
199 // transport\r
200 extern short __fastcall TMReadPacket(long, void far *, short, uchar far *, short);\r
201 extern short __fastcall TMWritePacket(long, void far *, short, uchar far *, short);\r
202 extern short __fastcall TMBlockIO(long, uchar far *, short);\r
203 extern short __fastcall TMExtendedReadPage(long, void far *, short, uchar far *, short);\r
204 extern short __fastcall TMProgramByte(long, void far *, short, short, short, short far *, short);\r
205 extern short __fastcall TMProgramBlock(long, void far *, uchar far *, short, short, short far *); /* (3.11) */\r
206 extern long __fastcall TMCRC(short, uchar far *, ushort, short); \r
207 // network\r
208 extern short __fastcall TMSkipFamily(long, void far *); \r
209 extern short __fastcall TMFamilySearchSetup(long, void far *, short); \r
210 extern short __fastcall TMFirst(long, void far *);\r
211 extern short __fastcall TMNext(long, void far *);\r
212 extern short __fastcall TMAccess(long, void far *);\r
213 extern short __fastcall TMOverAccess(long, void far *);\r
214 extern short __fastcall TMStrongAccess(long, void far *);\r
215 extern short __fastcall TMStrongAlarmAccess(long, void far *);\r
216 extern short __fastcall TMRom(long, void far *, short far *);\r
217 extern short __fastcall TMFirstAlarm(long, void far *);\r
218 extern short __fastcall TMNextAlarm(long, void far *); \r
219 extern short __fastcall TMAutoOverDrive(long, void far *, short); \r
220 extern short __fastcall TMSearch(short, short, short, short); \r
221 // hardware_specific\r
222 extern short __fastcall TMSetup(long);\r
223 extern short __fastcall TMTouchByte(long, short);\r
224 extern short __fastcall TMTouchReset(long);\r
225 extern short __fastcall TMTouchBit(long, short);\r
226 extern short __fastcall TMClose(long);\r
227 extern short __fastcall TMProgramPulse(long); \r
228 extern short __fastcall TMOneWireCom(long, short, short); \r
229 extern short __fastcall TMOneWireLevel(long, short, short, short); \r
230 extern short __fastcall TMGetTypeVersion(short,char far *); \r
231 extern short __fastcall TMBlockStream(long, uchar far *, short);\r
232 extern short __fastcall TMGetAdapterSpec(long, Specification far *); \r
233 extern short __fastcall TMReadDefaultPort(short far *, short far *); \r
234 \r