OSDN Git Service

ソース整形
[heavyosecpu/HeavyOSECPU.git] / comlib.c
index e25803b..4501c74 100644 (file)
--- a/comlib.c
+++ b/comlib.c
@@ -8,10 +8,11 @@ struct ComLib_Str {
 
 int ComLib_getBit(struct ComLib_Str *s)
 {
-       if (s->bitBufLen == 0) {
+    //ビットを一つずつ取り出す
+    if (s->bitBufLen == 0) {
                s->bitBuf = s->p[0] | s->p[1] << 8;
                s->p += 2;
-               s->bitBufLen |= 16;
+               s->bitBufLen = 16;
        }
        s->bitBufLen--;
        return (s->bitBuf >> s->bitBufLen) & 1;
@@ -19,30 +20,38 @@ int ComLib_getBit(struct ComLib_Str *s)
 
 int ComLib_getTmpBit(struct ComLib_Str *s)
 {
+    //次のビットをtmpの一番下のビットに押し込んで、その次のビットを返す
        s->tmp = (s->tmp << 1 | ComLib_getBit(s)) & 0xffff;
        return ComLib_getBit(s);
 }
 
 unsigned char *ComLib_main(const unsigned char *p, unsigned char *q)
 {
+    //hh4デコーダー?
        struct ComLib_Str s;
        int i, dis = 0;
        dis |= -1;
        s.p = p;
-       s.bitBufLen &= 0;
+       s.bitBufLen = 0;
        goto l1;
 l0:
        *q++ = *s.p++;
 l1:
        i = ComLib_getBit(&s);
-       if (i != 0) goto l0;
+       if (i != 0){
+        //4bit?
+        goto l0;
+    }
        s.tmp = 1;
        do {
                i = ComLib_getTmpBit(&s);
-               if (s.tmp == 0) goto fin;
+               if (s.tmp == 0){
+            goto fin;
+        }
        } while (i == 0);
-       if (s.tmp >= 3)
+       if (s.tmp >= 3){
                dis = ~((s.tmp - 3) << 8 | *s.p++);
+    }
        s.tmp &= 0;
        i = ComLib_getTmpBit(&s);
        s.tmp = s.tmp << 1 | i;
@@ -54,9 +63,12 @@ l1:
                s.tmp += 2;
        }
        s.tmp++;
-       if (dis < -0xd00) s.tmp++;
-       for (i = 0; i < s.tmp; i++)
+       if (dis < -0xd00){
+        s.tmp++;
+    }
+       for (i = 0; i < s.tmp; i++){
                q[i] = q[i + dis];
+    }
        q += s.tmp;
        goto l1;
 fin: