/* Project 16 Source Code~\r
- * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123\r
+ * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
*\r
* This file is part of Project 16.\r
*\r
*/\r
#include <stdio.h>\r
#include <conio.h>\r
-#include "lib/types.h"\r
+#include "src/lib/16_t.h"\r
//#include "lib/16text.h"\r
-#include "lib/modex16.h"\r
+#include "src/lib/16_vl.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
{\r
- struct vga_mode_params cm;\r
+ static global_game_variables_t gvar;\r
//JMOJI\r
static byte e;\r
//word ri;\r
,'___...---~~~\n\\r
";\r
// static byte *rosa;\r
- static word chx, chy, colpee;\r
- static word z;\r
+ static word chx, chy, colpee, addr;\r
textInit();\r
\r
// DOSLIB: check our environment\r
return;\r
}\r
VGAmodeX(1, 1, &gvar);\r
-// __asm{\r
-// mov AH,12H\r
-// mov BL,30h\r
-// mov AL,04h\r
-// int 10\r
-// mov ax,1123h\r
-// int 10h\r
-// ;mov ax,1112h ; load 8x8 character set into RAM\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
gvar.video.page[0].height += (16*2);\r
modexShowPage(&gvar.video.page[0]);\r
- vga_read_crtc_mode(&cm);\r
// NTS: We're in Mode-X now. printf() is useless. Do not use printf(). Or INT 10h text printing. Or DOS console output.\r
//modexprint(16, 16, 1, 15, "wwww");\r
//getch();\r
chx=0;\r
chy=0;\r
-// colpee=32;\r
-// bios_cls();\r
+ colpee=32;\r
/* position the cursor to home */\r
// vga_moveto(0,0);\r
// vga_sync_bios_cursor();\r
- for(e=0x00, z=0; e<=0xFE; e++, z++)\r
+ for(e=0x00; e<=0xFE; e++)\r
{\r
- //if(chx+8>(gvar.video.page[0].width/2))\r
- if((z)+1>16)\r
+ if(chx+8>(gvar.video.page[0].width/2))\r
{\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
+ modexprint(&gvar.video.page[0], 200, 200, 1, 47, 0, &pee);\r
//getch();\r
}\r
sprintf(pee, "%zc", e);\r
- modexprint(&gvar.video.page[0], chx, chy, 1, 0, colpee, &e, 1);\r
- chx+=9;\r
+ modexprint(&gvar.video.page[0], chx, chy, 1, 0, colpee, &e);\r
+ chx+=8;\r
colpee++;\r
-// if(colpee>=32+24) colpee=32;\r
+ if(colpee>=32+24) colpee=32;\r
}\r
getch();\r
+ modexprint(&gvar.video.page[0], gvar.video.page[0].width - (8*16)/*HACK: The rose ASCII is too wide for 320x240 so offset it to make sure the petals are visible*/, 8, 1, 45, 0, &rose);\r
+ getch();\r
//modexprint(100, 100, 1, 47, 0, "wwww");\r
// modexprint(0, 0, 1, 0, colpee, &rose);\r
//++++ modexprint(&gvar.video.page[0], 0, 0, 0, 0, colpee, &ibmlogo);\r
// modexprint(0, 0, 1, 0, colpee, ROSE);\r
//++++ getch();\r
VGAmodeX(0, 1, &gvar);\r
-// rosa=malloc(sizeof(ROSE));\r
-// (*rosa)=(byte)ROSE;\r
printf("\n%s\n", rose);\r
//printf("\nh=%d\n", '8');\r
// printf("\n%c\n", e);\r
- printf("cm.offset=%d\n", cm.offset);\r
- printf("vga_state.vga_stride=%d\n", vga_state.vga_stride);\r
}\r