]> 4ch.mooo.com Git - 16.git/blobdiff - src/fontgfx.c
dang it./wbuild.sh
[16.git] / src / fontgfx.c
index 1fb477df64548eb74d6e8a57a94a4cd0faba7425..112aaaa0cc155ab12299c06e9ded7887e115f399 100755 (executable)
 //#include "lib/16text.h"\r
 #include "lib/modex16.h"\r
 \r
+#include <hw/cpu/cpu.h>\r
+#include <hw/dos/dos.h>\r
+#include <hw/vga/vga.h>\r
+#include <hw/vga/vgatty.h>\r
+\r
 global_game_variables_t gvar;\r
 \r
 void main(int argc, char near *argv[])\r
@@ -61,9 +66,36 @@ IIIIIII  BBBBBBBBB    MMMM    M    MMMM\n\
 ,'___...---~~~\n\\r
 ";\r
 //     static byte *rosa;\r
-       static word chx;//, chy, colpee;\r
+//     static word chx;//, chy, colpee;\r
+       static word z;\r
 //     textInit();\r
+\r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
        VGAmodeX(1, 1, &gvar);\r
+//     __asm{\r
+//             mov     ax,1112h                ; load 8x8 character set into RAM\r
+//             mov     bl,0\r
+//             int     10h\r
+//     }\r
        /* setup camera and screen~ */\r
        gvar.video.page[0] = modexDefaultPage(&gvar.video.page[0]);\r
        //gvar.video.page[0].width += (16*2);\r
@@ -71,26 +103,29 @@ IIIIIII  BBBBBBBBB    MMMM    M    MMMM\n\
 //++++ modexShowPage(&gvar.video.page[0]);\r
        //modexprint(16, 16, 1, 15, "wwww");\r
        //getch();\r
-       chx=0;\r
+//     chx=0;\r
 //     chy=0;\r
 //     colpee=32;\r
+       bios_cls();\r
        /* position the cursor to home */\r
        vga_moveto(0,0);\r
        vga_sync_bios_cursor();\r
-       for(e=0x00; e<=0xFE; e++)\r
+       for(e=0x00, z=0; e<=0xFE; e++, z++)\r
        {\r
-               if(chx+8>(gvar.video.page[0].width/2))\r
+               //if(chx+8>(gvar.video.page[0].width/2))\r
+               if((z)+1>16)\r
                {\r
-                       chx=0;\r
-                       printf("\n");\r
+//                     chx=0;\r
 //                     chy+=8;\r
 //                     sprintf(pee,"%u", colpee);\r
 //                     modexprint(&gvar.video.page[0], 200, 200, 1, 47, 0, &pee, 1);\r
+                       z=0;\r
+                       printf("\n");\r
                        //getch();\r
                }\r
-               printf("%c", e);\r
+               //printf("%zc", e);\r
 //             modexprint(&gvar.video.page[0], chx, chy, 1, 0, colpee, &e, 1);\r
-               chx+=9;\r
+//             chx+=9;\r
 //             colpee++;\r
 //             if(colpee>=32+24) colpee=32;\r
        }\r