]> 4ch.mooo.com Git - 16.git/blobdiff - src/fonttes0.c
refresh wwww
[16.git] / src / fonttes0.c
diff --git a/src/fonttes0.c b/src/fonttes0.c
new file mode 100755 (executable)
index 0000000..30229da
--- /dev/null
@@ -0,0 +1,213 @@
+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123\r
+ *\r
+ * This file is part of Project 16.\r
+ *\r
+ * Project 16 is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Project 16 is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>, or\r
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
+ * Fifth Floor, Boston, MA 02110-1301 USA.\r
+ *\r
+ */\r
+#include <stdio.h>\r
+#include <conio.h>\r
+#include "lib/types.h"\r
+#include "lib/16text.h"\r
+#include "lib/modex16.h"\r
+\r
+global_game_variables_t gvar;\r
+\r
+void main(int argc, char near *argv[])\r
+{\r
+    int i, xp;\r
+    int j;\r
+       char l[16];\r
+    char c,ct;\r
+    word s, o, t, w;\r
+    word addr = (word) l;\r
+    //byte *pal, *pal2, fond;\r
+       //bitmap_t fontdata;\r
+       page_t page;\r
+    textInit();\r
+\r
+    //print the addresses of the fonts\r
+    printf("ROM FONT Addresses\n");\r
+    for(i=0; i<4; i++) {\r
+       printf("%d: %x:%x\n", i, romFonts[i].seg, romFonts[i].off);\r
+    }\r
+\r
+//     printf("*argv[1]=%d\n", *argv[1]);\r
+\r
+       printf("Font type: ");\r
+       gets(&ct);\r
+\r
+       printf("Character: ");\r
+       gets(&c);\r
+\r
+       if(ct!=1)\r
+       switch(ct)\r
+       {\r
+               case 48:\r
+                       printf("type 0\n");\r
+                       t=0;\r
+                       w=14;\r
+               break;\r
+               case 49:\r
+                       printf("type 1\n");\r
+                       t=1;\r
+                       w=8;\r
+               break;\r
+               case 50:\r
+                       printf("type 2\n");\r
+                       t=2;\r
+                       w=8;\r
+               break;\r
+               case 51:\r
+                       printf("type 3\n");\r
+                       t=3;\r
+                       w=16;\r
+               break;\r
+               default:\r
+                       printf("type 3\n");\r
+                       t=3;\r
+                       w=16;\r
+               break;\r
+       }\r
+       else\r
+       {\r
+               printf("type 3\n");\r
+               t=3;\r
+               w=16;\r
+       }\r
+\r
+\r
+    s=romFonts[t].seg;\r
+    o=romFonts[t].off;\r
+\r
+    //load the letter 'A'\r
+    __asm {\r
+               MOV DI, addr\r
+               MOV SI, o\r
+               MOV ES, s\r
+               SUB AH, AH\r
+               MOV AL, c       ; the letter\r
+               MOV CX, w\r
+               MUL CX\r
+               ADD SI, AX      ;the address of charcter\r
+       L1:     MOV AX, ES:SI\r
+               MOV DS:DI, AX\r
+               INC SI\r
+               INC DI\r
+               DEC CX\r
+               JNZ L1\r
+    }\r
+\r
+    //load our palette\r
+    //modexLoadPalFile("data/default.pal", &pal2);\r
+\r
+       /*fontdata.width=8;\r
+       fontdata.height=w;\r
+       fontdata.palette=pal2;\r
+\r
+       fontdata.data=malloc(256);\r
+\r
+       for(i=0; i<w; i++)\r
+       {\r
+               j=1<<8;\r
+               while(j)\r
+               {\r
+                       fond=(byte)l[i] & j ? '1':'0';\r
+                       fontdata.data=&(fond);\r
+                       printf("%02x ", *(fontdata.data));\r
+                       j>>=1;\r
+               }\r
+               printf("\n");\r
+       }\r
+\r
+       printf("\n\nok hit a key~\n");\r
+       while(!getch())\r
+       {\r
+               //DrawPBuf(&page, 0, 0, p, 0);\r
+       }*/\r
+\r
+    // save the palette\r
+    /*pal  = modexNewPal();\r
+    modexPalSave(pal);\r
+    modexFadeOff(4, pal);\r
+    modexPalBlack();\r
+*/\r
+    VGAmodeX(1, &gvar);\r
+/*    modexPalBlack();*/\r
+\r
+    // set up the page, but with 16 pixels on all borders in offscreen mem\r
+    page=modexDefaultPage();\r
+    //page.width += 32;\r
+    //page.height += 32;\r
+       modexShowPage(&page);\r
+       modexClearRegion(&page, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 1);\r
+       // fade in\r
+       //modexFadeOn(4, pal2);\r
+\r
+       //render the letter in ascii art\r
+       for(i=0; i<w; i++)\r
+       {\r
+               j=1<<8;\r
+               xp=0;\r
+               while(j)\r
+               {\r
+                       //printf("j=%d\n", j);\r
+                       //printf("%c", l[i] & j ? '*':' ');\r
+                       //====printf("%02x ", l[i] & j);\r
+                       //printf("l[i]=%d       ", l[i]);\r
+                       //printf("j=%d  ", j);\r
+                       //printf("%02x\n", l[i] & j);\r
+                               //modexPutPixel(xp, i, l[i] & j ? 15:0);\r
+                               //modexpixelwr(xp, i, 0, l[i] & j ? 15:0);\r
+                               modexputPixel(&page, xp, i, l[i] & j ? 15:0);\r
+                               //modexClearRegion(&page, xp*4, i*4, 4, 4, l[i] & j ? 15:0);\r
+//while(!getch());\r
+                       xp++;\r
+                       j>>=1;\r
+               }\r
+               //====\r
+               //printf("\n");\r
+       }\r
+       //modexDrawSprite(&page, 0, 0, &fontdata);\r
+       while(!getch())\r
+       {\r
+               //DrawPBuf(&page, 0, 0, p, 0);\r
+       }\r
+\r
+       // fade back to text mode\r
+       /*modexFadeOff(4, pal2);\r
+       modexPalBlack();*/\r
+       VGAmodeX(0, &gvar);\r
+       /*modexPalBlack();\r
+       modexFadeOn(4, pal);*/\r
+       //render the letter in ascii art\r
+       for(i=0; i<w; i++)\r
+       {\r
+               j=1<<8;\r
+               while(j)\r
+               {\r
+                       printf("%c", l[i] & j ? '*':' ');\r
+                       //====printf("%02x ", l[i] & j);\r
+//while(!getch());\r
+               j>>=1;\r
+               }\r
+               printf("\n");\r
+       }\r
+       printf("\ni=%d\n", i);\r
+       printf("j=%d\n", j);\r
+\r
+}\r