changeset 2359:de570106b6cc

Add argument to dmPrintByte() for reversing the bits.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 31 Dec 2019 13:04:13 +0200
parents 8165d0b9892f
children 8f015ef431a3
files tools/gfxconv.c
diffstat 1 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/tools/gfxconv.c	Thu Dec 05 18:26:01 2019 +0200
+++ b/tools/gfxconv.c	Tue Dec 31 13:04:13 2019 +0200
@@ -983,15 +983,14 @@
 }
 
 
-void dmPrintByte(FILE *out, int byte, int format, BOOL multicolor)
+void dmPrintByte(FILE *out, const Uint8 byte, const int format, const BOOL multicolor, const BOOL dir)
 {
-    int i;
-
     if (multicolor)
     {
-        for (i = DM_ASC_NBITS; i; i -= 2)
+        for (int i = 0; i < DM_ASC_NBITS; i += 2)
         {
-            int val = (byte & (3ULL << (i - 2))) >> (i - 2);
+            int k = dir ? i : (DM_ASC_NBITS - i - 1);
+            Uint8 val = (byte & (3ULL << k)) >> k;
             char ch;
             switch (format)
             {
@@ -1008,9 +1007,10 @@
     }
     else
     {
-        for (i = DM_ASC_NBITS; i; i--)
+        for (int i = 0; i < DM_ASC_NBITS; i++)
         {
-            int val = (byte & (1ULL << (i - 1))) >> (i - 1);
+            int k = dir ? i : (DM_ASC_NBITS - i - 1);
+            Uint8 val = (byte & (1ULL << k)) >> k;
             switch (format)
             {
                 case FFMT_ASCII:
@@ -1031,7 +1031,7 @@
     for (size_t yc = 0; yc < D64_CHR_HEIGHT_UT; yc++)
     {
         fprintf(outFile, "%04" DM_PRIx_SIZE_T " : ", offs + yc);
-        dmPrintByte(outFile, buf[yc], fmt, multicolor);
+        dmPrintByte(outFile, buf[yc], fmt, multicolor, FALSE);
         fprintf(outFile, "\n");
     }
 }
@@ -1046,7 +1046,7 @@
         fprintf(outFile, "%04" DM_PRIx_SIZE_T " ", offs + bufOffs);
         for (xc = 0; xc < D64_SPR_WIDTH_UT; xc++)
         {
-            dmPrintByte(outFile, buf[bufOffs], fmt, multicolor);
+            dmPrintByte(outFile, buf[bufOffs], fmt, multicolor, FALSE);
             fprintf(outFile, " ");
             bufOffs++;
         }