]> 4ch.mooo.com Git - 16.git/blobdiff - 16/scrasm/GENSQ.C
modified: 16/DOS_GFX.EXE
[16.git] / 16 / scrasm / GENSQ.C
diff --git a/16/scrasm/GENSQ.C b/16/scrasm/GENSQ.C
new file mode 100644 (file)
index 0000000..402853f
--- /dev/null
@@ -0,0 +1,102 @@
+#include <stdio.h>\r
+#include <string.h>\r
+#include <memory.h>\r
+#include <stdlib.h>\r
+\r
+#define WIDTH   256\r
+\r
+#define FILENAME "DIAGONAL.TIL"\r
+char    fn[100] = FILENAME;\r
+typedef unsigned char BYTE;\r
+typedef BYTE    ROW[16];\r
+typedef ROW     BITMAP[16];\r
+\r
+BITMAP  b;\r
+BITMAP  c;\r
+\r
+BITMAP  pattern={{1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},\r
+                 {1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},\r
+                 {1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0},\r
+                 {1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0},\r
+                 {1,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0},\r
+                 {0,0,1,0,0,1,1,0,1,1,0,0,2,0,0,0},\r
+                 {0,0,1,0,0,1,2,0,1,2,0,0,2,0,0,0},\r
+                 {0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0},\r
+                 {0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0},\r
+                 {0,1,0,0,1,2,0,0,0,1,2,0,0,2,0,0},\r
+                 {0,0,1,0,1,2,1,1,1,1,2,0,2,0,0,0},\r
+                 {0,0,1,0,0,2,2,2,2,2,0,0,2,0,0,2},\r
+                 {0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2},\r
+                 {0,0,0,0,2,2,0,0,0,2,2,0,0,0,0,2},\r
+                 {0,0,0,0,0,0,2,2,2,0,0,0,0,0,2,2},\r
+                 {0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2}};\r
+\r
+void copy_pattern(BITMAP b,BITMAP patt, BYTE l, BYTE m, BYTE h)\r
+        {\r
+        int     x,y;\r
+\r
+        for (y=0; y<16; y++) {\r
+                for (x=0; x<16; x++) {\r
+                        switch (patt[y][x]) {\r
+                                case 0:\r
+                                        b[y][x] = m;\r
+                                        break;\r
+                                case 1:\r
+                                        b[y][x] = l;\r
+                                        break;\r
+                                case 2:\r
+                                        b[y][x] = h;\r
+                                        break;\r
+                                }\r
+                        }\r
+                }\r
+        }\r
+\r
+/* Transforms linear to planar */\r
+void transform(BITMAP b,BITMAP c)\r
+        {\r
+        int     x,y,p;\r
+        BYTE    *pb = (BYTE *)c;\r
+\r
+        for (p=0; p<4; p++) {\r
+                for (y=0; y<16; y++) {\r
+                        for (x=0; x<16; x+=4) {\r
+                                *(pb++) = b[y][x+p];\r
+                                }\r
+                        }\r
+                }\r
+        }\r
+\r
+void main(int argc,char *argv[])\r
+        {\r
+        FILE    *fp;\r
+        int     i;\r
+        int     width = WIDTH;\r
+\r
+        fp = fopen(fn,"wb");\r
+        if (!fp) {\r
+                printf("Couldn't open %s for write.\n",fn);\r
+                exit(1);\r
+                }\r
+        if (argc > 1) {\r
+                width = atoi(argv[1]);\r
+                if (width > WIDTH)\r
+                        width = WIDTH;\r
+                printf("Width = %d\n",width);\r
+                }\r
+\r
+        for (i = 0; i< width; i++) {\r
+                BYTE    less,more;\r
+\r
+                less = (BYTE)((i + width - 1) % width);\r
+                more = (BYTE)((i + 1) % width);\r
+                copy_pattern(b, pattern, less, (BYTE)i, more);\r
+                transform(b,c);\r
+                fwrite(c, 16,16, fp);\r
+                printf("Square %d\r",i);\r
+                }\r
+        fclose(fp);\r
+        printf("All done!     \n");\r
+        exit(0);\r
+        }\r
+\1a
\ No newline at end of file