-
-#include "osecpu.h"
-#if (USE_TEK5 != 0)
-/*----For using tek Begin----*/
-#include "tek.h"
-
-int appackSub2(const UCHAR **pp, char *pif)
-{
- int r = 0;
- const UCHAR *p = *pp;
- if (*pif == 0) {
- r = *p >> 4;
- } else {
- r = *p & 0x0f;
- p++;
- *pp = p;
- }
- *pif ^= 1;
-
- return r;
-}
-
-int appackSub3u(const UCHAR **pp, char *pif)
-{
- int r = 0, i;
-
- r = appackSub2(pp, pif);
- if (0x8 <= r && r <= 0xb) {
- r = r << 4 | appackSub2(pp, pif);
- r &= 0x3f;
- } else if (0xc <= r && r <= 0xd) {
- r = r << 4 | appackSub2(pp, pif);
- r = r << 4 | appackSub2(pp, pif);
- r &= 0x1ff;
- } else if (r == 0xe) {
- r = appackSub2(pp, pif);
- r = r << 4 | appackSub2(pp, pif);
- r = r << 4 | appackSub2(pp, pif);
- } else if (r == 0x7) {
- i = appackSub3u(pp, pif);
- r = 0;
- while (i > 0) {
- r = r << 4 | appackSub2(pp, pif);
- i--;
- }
- }
-
- return r;
-}
-
-int tek5Decomp(UCHAR *buf, UCHAR *buf1, UCHAR *tmp)
-{
- static char tek5head[16] = {
- 0x89, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
- 0x4f, 0x53, 0x41, 0x53, 0x4b, 0x43, 0x4d, 0x50
- };
- memcpy(tmp, tek5head, 16);
- UCHAR *q = tmp + 16;
- char iif = 0;
- int i, tmpsiz;
- const UCHAR *p = &buf[1];
- i = appackSub3u(&p, &iif);
- tmpsiz = appackSub3u(&p, &iif);
- tmpsiz = tmpsiz << 8 | *p++;
- *q++ = (tmpsiz >> 27) & 0xfe;
- *q++ = (tmpsiz >> 20) & 0xfe;
- *q++ = (tmpsiz >> 13) & 0xfe;
- *q++ = (tmpsiz >> 6) & 0xfe;
- *q++ = (tmpsiz << 1 | 1) & 0xff;
- if (i == 1) *q++ = 0x15;
- if (i == 2) *q++ = 0x19;
- if (i == 3) *q++ = 0x21;
- if (i >= 4) return -9;
- while (p < buf1){
- *q++ = *p++;
- }
- if(tek_decomp(tmp, buf, tmpsiz) != 0){;
- // failed
- fputs("tek decomp error.\n", stderr);
- exit(1);
- }
- //success
- return tmpsiz;
-}
-
-/*----For using tek End----*/
-#endif
-
+\r
+#include "osecpu.h"\r
+#if (USE_TEK5 != 0)\r
+/*----For using tek Begin----*/\r
+#include "tek.h"\r
+\r
+int appackSub2(const UCHAR **pp, char *pif)\r
+{\r
+ int r = 0;\r
+ const UCHAR *p = *pp;\r
+ if (*pif == 0) {\r
+ r = *p >> 4;\r
+ } else {\r
+ r = *p & 0x0f;\r
+ p++;\r
+ *pp = p;\r
+ }\r
+ *pif ^= 1;\r
+ \r
+ return r;\r
+}\r
+\r
+int appackSub3u(const UCHAR **pp, char *pif)\r
+{\r
+ int r = 0, i;\r
+ \r
+ r = appackSub2(pp, pif);\r
+ if (0x8 <= r && r <= 0xb) {\r
+ r = r << 4 | appackSub2(pp, pif);\r
+ r &= 0x3f;\r
+ } else if (0xc <= r && r <= 0xd) {\r
+ r = r << 4 | appackSub2(pp, pif);\r
+ r = r << 4 | appackSub2(pp, pif);\r
+ r &= 0x1ff;\r
+ } else if (r == 0xe) {\r
+ r = appackSub2(pp, pif);\r
+ r = r << 4 | appackSub2(pp, pif);\r
+ r = r << 4 | appackSub2(pp, pif);\r
+ } else if (r == 0x7) {\r
+ i = appackSub3u(pp, pif);\r
+ r = 0;\r
+ while (i > 0) {\r
+ r = r << 4 | appackSub2(pp, pif);\r
+ i--;\r
+ }\r
+ }\r
+ \r
+ return r;\r
+}\r
+\r
+int tek5Decomp(UCHAR *buf, UCHAR *buf1, UCHAR *tmp)\r
+{\r
+ static char tek5head[16] = {\r
+ 0x89, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,\r
+ 0x4f, 0x53, 0x41, 0x53, 0x4b, 0x43, 0x4d, 0x50\r
+ };\r
+ memcpy(tmp, tek5head, 16);\r
+ UCHAR *q = tmp + 16;\r
+ char iif = 0;\r
+ int i, tmpsiz;\r
+ const UCHAR *p = &buf[1];\r
+ i = appackSub3u(&p, &iif);\r
+ tmpsiz = appackSub3u(&p, &iif);\r
+ tmpsiz = tmpsiz << 8 | *p++;\r
+ *q++ = (tmpsiz >> 27) & 0xfe;\r
+ *q++ = (tmpsiz >> 20) & 0xfe;\r
+ *q++ = (tmpsiz >> 13) & 0xfe;\r
+ *q++ = (tmpsiz >> 6) & 0xfe;\r
+ *q++ = (tmpsiz << 1 | 1) & 0xff;\r
+ if (i == 1) *q++ = 0x15;\r
+ if (i == 2) *q++ = 0x19;\r
+ if (i == 3) *q++ = 0x21;\r
+ if (i >= 4) return -9;\r
+ while (p < buf1){\r
+ *q++ = *p++;\r
+ }\r
+ if(tek_decomp(tmp, buf, tmpsiz) != 0){;\r
+ // failed\r
+ fputs("tek decomp error.\n", stderr);\r
+ exit(1);\r
+ }\r
+ //success\r
+ return tmpsiz;\r
+}\r
+\r
+/*----For using tek End----*/\r
+#endif\r
+\r