 +	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
 +	      b1i += 2;
  	    }
--	    ++a0;
--	    if (codingLine[a0] + code2 <= columns) {
--	      codingLine[a0 + 1] = codingLine[a0] + code2;
--	    } else {
--	      codingLine[a0 + 1] = columns;
--	    }
--	    ++a0;
--	    a0New = codingLine[a0];
--	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
--	      b1 += 2;
--	    }
  	  }
  	  break;
 -	case twoDimVert0:

       }
-    } while (bits > 0 && codingLine[a0] < columns);
+    } while (bits);
   }
-  buf = black ? (ret ^ 0xff) : ret;
+  if (black) {
+    buf ^= 0xff;
+  }
   return buf;
 }
 

+	    code1 += code3 = getWhiteCode();
+	  } while (code3 >= 64);
 	}
+	addPixels(codingLine[a0i] + code1, blackPixels);
+	blackPixels ^= 1;
       }
