OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / z_tools / tolsrc_chn / bim2chn / bim2chn.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/z_tools/tolsrc_chn/bim2chn/bim2chn.c b/CHNOSProject/chnos/tolset_chn_000/z_tools/tolsrc_chn/bim2chn/bim2chn.c
deleted file mode 100644 (file)
index e4c65ad..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-#include <stdio.h>\r
-#include <stdlib.h>\r
-\r
-typedef unsigned char UCHAR;\r
-int getnum(const UCHAR *p);\r
-int get32(const UCHAR *p);\r
-void put32(UCHAR *p, int i);\r
-\r
-#define MAXSIZ 4 * 1024 * 1024\r
-\r
-int main(int argc, UCHAR **argv)\r
-{\r
-       UCHAR *fbuf = malloc(MAXSIZ);\r
-       int heap_siz, mmarea, fsiz, dsize, dofs, stksiz, wrksiz, entry, bsssiz;\r
-       int heap_adr, i;\r
-       FILE *fp;\r
-       static UCHAR sign[4] = "CHNP";\r
-\r
-       /* \83p\83\89\83\81\81[\83^\82Ì\8eæ\93¾ */\r
-       if (argc < 4) {\r
-               puts("usage>bim2chn appname.bim appname.chn heap-size [mmarea-size]");\r
-               return 1;\r
-       }\r
-       heap_siz = getnum(argv[3]);\r
-       mmarea = 0;\r
-       if (argc >= 5)\r
-               mmarea = getnum(argv[4]);\r
-\r
-       /* \83t\83@\83C\83\8b\93Ç\82Ý\8d\9e\82Ý */\r
-       fp = fopen(argv[1], "rb");\r
-       if (fp == NULL) {\r
-err_bim:\r
-               puts("bim file read error");\r
-               return 1;\r
-       }\r
-       fsiz = fread(fbuf, 1, MAXSIZ, fp);\r
-       fclose(fp);\r
-       if (fsiz >= MAXSIZ || fsiz < 0)\r
-               goto err_bim;\r
-\r
-       /* \83w\83b\83_\8am\94F */\r
-       if (get32(&fbuf[4]) != 0x24) {  /* \83t\83@\83C\83\8b\92\86\82Ì.text\83X\83^\81[\83g\83A\83h\83\8c\83X */\r
-err_form:\r
-               puts("bim file format error");\r
-               return 1;\r
-       }\r
-       if (get32(&fbuf[8]) != 0x24)    /* \83\81\83\82\83\8a\83\8d\81[\83h\8e\9e\82Ì.text\83X\83^\81[\83g\83A\83h\83\8c\83X */\r
-               goto err_form;\r
-       dsize  = get32(&fbuf[12]);      /* .data\83Z\83N\83V\83\87\83\93\83T\83C\83Y */\r
-       dofs   = get32(&fbuf[16]);      /* \83t\83@\83C\83\8b\82Ì\82Ç\82±\82É.data\83Z\83N\83V\83\87\83\93\82ª\82 \82é\82© */\r
-       stksiz = get32(&fbuf[20]);      /* \83X\83^\83b\83N\83T\83C\83Y */\r
-       entry  = get32(&fbuf[24]);      /* \83G\83\93\83g\83\8a\83|\83C\83\93\83g */\r
-       bsssiz = get32(&fbuf[28]);      /* bss\83T\83C\83Y */\r
-\r
-       /* \83w\83b\83_\90\90¬ */\r
-       heap_adr = stksiz + dsize + bsssiz;\r
-       heap_adr = (heap_adr + 0xf) & 0xfffffff0; /* 16\83o\83C\83g\92P\88Ê\82É\90Ø\82è\8fã\82° */\r
-       wrksiz = heap_adr + heap_siz;\r
-       wrksiz = (wrksiz + 0xfff) & 0xfffff000; /* 4KB\92P\88Ê\82É\90Ø\82è\8fã\82° */\r
-       put32(&fbuf[ 0], wrksiz);\r
-       for (i = 0; i < 4; i++)\r
-               fbuf[4 + i] = sign[i];\r
-       put32(&fbuf[ 8], mmarea);\r
-       put32(&fbuf[12], stksiz);\r
-       put32(&fbuf[16], dsize);\r
-       put32(&fbuf[20], dofs);\r
-       put32(&fbuf[24], 0xe9000000);\r
-       put32(&fbuf[28], entry - 0x20);\r
-       put32(&fbuf[32], heap_adr);\r
-\r
-       /* \83t\83@\83C\83\8b\8f\91\82«\8d\9e\82Ý */\r
-       fp = fopen(argv[2], "wb");\r
-       if (fp == NULL) {\r
-err_chn:\r
-               puts("chn file write error");\r
-               return 1;\r
-       }\r
-       i = fwrite(fbuf, 1, fsiz, fp);\r
-       fclose(fp);\r
-       if (fsiz != i)\r
-               goto err_chn;\r
-\r
-       return 0;\r
-}\r
-\r
-int getnum(const UCHAR *p)\r
-{\r
-       int i = 0, base = 10, sign = 1;\r
-       UCHAR c;\r
-       if (*p == '-') {\r
-               p++;\r
-               sign = -1;\r
-       }\r
-       if (*p == '0') {\r
-               p++;\r
-               base = 8;\r
-               c = *p;\r
-               if (c >= 'a')\r
-                       c -= 'a' - 'A';\r
-               if (c == 'X') {\r
-                       p++;\r
-                       base = 16;\r
-               }\r
-               if (c == 'O') {\r
-                       p++;\r
-                       base = 8;\r
-               }\r
-               if (c == 'B') {\r
-                       p++;\r
-                       base = 2;\r
-               }\r
-       }\r
-       for (;;) {\r
-               c = *p++;\r
-               if ('0' <= c && c <= '9')\r
-                       c -= '0'; \r
-               else if ('A' <= c && c <= 'F')\r
-                       c -= 'A' - 10;\r
-               else if ('a' <= c && c <= 'f')\r
-                       c -= 'a' - 10;\r
-               else\r
-                       break;\r
-               if (c >= base)\r
-                       break;\r
-               i = i * base + c;\r
-       }\r
-       if (c >= 'a')\r
-               c -= 'a' - 'A';\r
-       if (c == 'K')\r
-               i <<= 10;\r
-       if (c == 'M')\r
-               i <<= 20;\r
-       if (c == 'G')\r
-               i <<= 30;\r
-       return i * sign;\r
-}\r
-\r
-int get32(const UCHAR *p)\r
-{\r
-       return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;\r
-}\r
-\r
-void put32(UCHAR *p, int i)\r
-{\r
-       p[0] =  i        & 0xff;\r
-       p[1] = (i >>  8) & 0xff;\r
-       p[2] = (i >> 16) & 0xff;\r
-       p[3] = (i >> 24) & 0xff;\r
-       return;\r
-}\r
-\r
-/*\r
-\r
-memo\r
-\r
-[ .bim\83t\83@\83C\83\8b\82Ì\8d\\91¢ ]\r
-\r
-+ 0 : .text\83T\83C\83Y\r
-+ 4 : \83t\83@\83C\83\8b\92\86\82Ì.text\83X\83^\81[\83g\83A\83h\83\8c\83X\81i0x24\81j\r
-+ 8 : \83\81\83\82\83\8a\83\8d\81[\83h\8e\9e\82Ì.text\83X\83^\81[\83g\83A\83h\83\8c\83X\81i0x24\81j\r
-+12 : .data\83T\83C\83Y\r
-+16 : \83t\83@\83C\83\8b\92\86\82Ì.data\83X\83^\81[\83g\83A\83h\83\8c\83X\r
-+20 : \83\81\83\82\83\8a\83\8d\81[\83h\8e\9e\82Ì.data\83X\83^\81[\83g\83A\83h\83\8c\83X\r
-+24 : \83G\83\93\83g\83\8a\83|\83C\83\93\83g\r
-+28 : bss\97Ì\88æ\82Ì\83o\83C\83g\90\94\r
-+36 : \83R\81[\83h\r
-\r
-[ .chn\83t\83@\83C\83\8b\82Ì\8d\\91¢ (.hrb\82Æ\83V\83O\83l\83`\83\83\88È\8aO\93¯\93\99)]\r
-\r
-+ 0 : stack+.data+heap \82Ì\91å\82«\82³\81i4KB\82Ì\94{\90\94\81j\r
-+ 4 : \83V\83O\83l\83`\83\83 "CHNP"\r
-+ 8 : mmarea \82Ì\91å\82«\82³\81i4KB\82Ì\94{\90\94\81j\r
-+12 : \83X\83^\83b\83N\8f\89\8aú\92l\81\95.data\93]\91\97\90æ\r
-+16 : .data\82Ì\83T\83C\83Y\r
-+20 : .data\82Ì\8f\89\8aú\92l\97ñ\82ª\83t\83@\83C\83\8b\82Ì\82Ç\82±\82É\82 \82é\82©\r
-+24 : 0xe9000000\r
-+28 : \83G\83\93\83g\83\8a\83A\83h\83\8c\83X-0x20\r
-+32 : heap\97Ì\88æ\81imalloc\97Ì\88æ\81j\8aJ\8en\83A\83h\83\8c\83X\r
-\r
-*/\r