+}\r
+\r
+//===========================================================================\r
+\r
+////////////////////////////////////////////////////////////////////\r
+//\r
+// HANDLE INTRO SCREEN (SYSTEM CONFIG)\r
+//\r
+////////////////////////////////////////////////////////////////////\r
+void MU_IntroScreen(global_game_variables_t *gvar)\r
+{\r
+#define MAINCOLOR 0x6c\r
+#define EMSCOLOR 0x6c\r
+#define XMSCOLOR 0x6c\r
+\r
+#define FILLCOLOR 14\r
+\r
+ long memory,emshere,xmshere;\r
+ int i,num,ems[10]={100,200,300,400,500,600,700,800,900,1000},\r
+ xms[10]={100,200,300,400,500,600,700,800,900,1000},\r
+ main[10]={32,64,96,128,160,192,224,256,288,320};\r
+\r
+ gvar->video.print.t=1;\r
+ gvar->video.print.tlsw=1;\r
+ gvar->video.print.bgcolor=8;\r
+ gvar->video.print.color=5;\r
+\r
+ //\r
+ // DRAW MAIN MEMORY\r
+ //\r
+ num=32;\r
+ gvar->video.print.x=49-32;\r
+\r
+ memory=(1023l+gvar->mmi.nearheap+gvar->mmi.farheap)/1024l;\r
+ for (i=0;i<10;i++)\r
+ if (memory>=main[i])\r
+ {\r
+ gvar->video.print.y=163-8*i;\r
+ sprintf(global_temp_status_text, "% 4u", num); VL_print(global_temp_status_text, 0, gvar);\r
+ VL_Bar(49,163-8*i,6,5,MAINCOLOR-i,gvar);\r
+ num+=32;\r
+ }\r
+ gvar->video.print.y=171;\r
+ VL_print("MAIN", 0, gvar);\r
+\r
+\r
+ //\r
+ // DRAW EMS MEMORY\r
+ //\r
+ if (gvar->pm.emm.EMSPresent)\r
+ {\r
+ num=100;\r
+ gvar->video.print.x=89-32;\r
+\r
+ emshere=4l*gvar->pm.emm.EMSPagesAvail;\r
+ for (i=0;i<10;i++)\r
+ if (emshere>=ems[i])\r
+ {\r
+ gvar->video.print.y=163-8*i;\r
+ sprintf(global_temp_status_text, "% 4u", num); VL_print(global_temp_status_text, 0, gvar);\r
+ VL_Bar(89,163-8*i,6,5,EMSCOLOR-i,gvar);\r
+ num+=100;\r
+ }\r
+ gvar->video.print.y=171;\r
+ VL_print(" EMS", 0, gvar);\r
+ }\r
+\r
+ //\r
+ // DRAW XMS MEMORY\r
+ //\r
+ if (gvar->pm.xmm.XMSPresent)\r
+ {\r
+ num=100;\r
+ gvar->video.print.x=129-32;\r
+\r
+ xmshere=4l*gvar->pm.xmm.XMSPagesAvail;\r
+ for (i=0;i<10;i++)\r
+ if (xmshere>=xms[i])\r
+ {\r
+ gvar->video.print.y=163-8*i;\r
+ sprintf(global_temp_status_text, "% 4u", num); VL_print(global_temp_status_text, 0, gvar);\r
+ VL_Bar(129,163-8*i,6,5,XMSCOLOR-i,gvar);\r
+ num+=100;\r
+ }\r
+ gvar->video.print.y=171;\r
+ VL_print(" XMS", 0, gvar);\r
+ }\r
+\r
+ //\r
+ // FILL BOXES\r
+ //\r
+ if (gvar->in.MousePresent)\r
+ VL_Bar(164,82,12,2,FILLCOLOR,gvar);\r
+\r
+ if (gvar->in.JoysPresent[0] || gvar->in.JoysPresent[1])\r
+ VL_Bar(164,105,12,2,FILLCOLOR,gvar);\r
+\r
+//++++ if (gvar->sd.AdLibPresent)//SB && !SoundBlasterPresent)\r
+//++++ VL_Bar(164,128,12,2,FILLCOLOR,gvar);\r
+\r
+//SB if (SoundBlasterPresent)\r
+//SB VL_Bar(164,151,12,2,FILLCOLOR,gvar);\r
+\r
+//SS if (SoundSourcePresent)\r
+//SS VL_Bar(164,174,12,2,FILLCOLOR,gvar);\r
+ IN_Ack (gvar);\r
+}\r
+\r
+//===========================================================================\r
+\r
+/*\r
+====================\r
+=\r
+= ReadConfig\r
+=\r
+====================\r
+*/\r
+#if 0\r
+void ReadConfig(void)\r
+{\r
+ int file;\r
+// SDMode sd;\r
+// SMMode sm;\r
+// SDSMode sds;\r
+\r
+\r
+ if ( (file = open(CONFIGNAME,O_BINARY | O_RDONLY)) != -1)\r
+ {\r
+ //\r
+ // valid config file\r
+ //\r
+// read(file,Scores,sizeof(HighScore) * MaxScores);\r
+\r
+// read(file,&sd,sizeof(sd));\r
+// read(file,&sm,sizeof(sm));\r
+// read(file,&sds,sizeof(sds));\r
+\r
+ read(file,&mouseenabled,sizeof(mouseenabled));\r
+ read(file,&joystickenabled,sizeof(joystickenabled));\r
+ read(file,&joystickprogressive,sizeof(joystickprogressive));\r
+ read(file,&joystickport,sizeof(joystickport));\r
+\r
+ read(file,&dirscan,sizeof(dirscan));\r
+ read(file,&buttonscan,sizeof(buttonscan));\r
+ read(file,&buttonmouse,sizeof(buttonmouse));\r
+ read(file,&buttonjoy,sizeof(buttonjoy));\r
+\r
+ read(file,&viewsize,sizeof(viewsize));\r
+ read(file,&mouseadjustment,sizeof(mouseadjustment));\r
+\r
+ close(file);\r
+\r
+ /*if (sd == sdm_AdLib && !AdLibPresent && !SoundBlasterPresent)\r
+ {\r
+ sd = sdm_PC;\r
+ sd = smm_Off;\r
+ }\r
+\r
+ if ((sds == sds_SoundBlaster && !SoundBlasterPresent) ||\r
+ (sds == sds_SoundSource && !SoundSourcePresent))\r
+ sds = sds_Off;*/\r
+\r
+ if (!MousePresent)\r
+ mouseenabled = false;\r
+ if (!JoysPresent[joystickport])\r
+ joystickenabled = false;\r
+\r
+ MainMenu[6].active=1;\r
+ MainItems.curpos=0;\r
+ }\r
+ else\r
+ {\r
+ //\r
+ // no config file, so select by hardware\r
+ //\r
+/* if (SoundBlasterPresent || AdLibPresent)\r
+ {\r
+ sd = sdm_AdLib;\r
+ sm = smm_AdLib;\r
+ }\r
+ else\r
+ {\r
+ sd = sdm_PC;\r
+ sm = smm_Off;\r
+ }\r
+\r
+ if (SoundBlasterPresent)\r
+ sds = sds_SoundBlaster;\r
+ else if (SoundSourcePresent)\r
+ sds = sds_SoundSource;\r
+ else\r
+ sds = sds_Off;*/\r
+\r
+ if (MousePresent)\r
+ mouseenabled = true;\r
+\r
+ joystickenabled = false;\r
+ joystickport = 0;\r
+ joystickprogressive = false;\r
+\r
+ viewsize = 15;\r
+ mouseadjustment=5;\r
+ }\r
+\r
+ SD_SetMusicMode (sm);\r
+ SD_SetSoundMode (sd);\r
+ SD_SetDigiDevice (sds);\r
+}\r
+\r
+\r
+/*\r
+====================\r
+=\r
+= WriteConfig\r
+=\r
+====================\r
+*/\r
+\r
+void WriteConfig(void)\r
+{\r
+ int file;\r
+\r
+ file = open(CONFIGNAME,O_CREAT | O_BINARY | O_WRONLY,\r
+ S_IREAD | S_IWRITE | S_IFREG);\r
+\r
+ if (file != -1)\r
+ {\r
+// write(file,Scores,sizeof(HighScore) * MaxScores);\r
+\r
+// write(file,&SoundMode,sizeof(SoundMode));\r
+// write(file,&MusicMode,sizeof(MusicMode));\r
+// write(file,&DigiMode,sizeof(DigiMode));\r
+\r
+ write(file,&mouseenabled,sizeof(mouseenabled));\r
+ write(file,&joystickenabled,sizeof(joystickenabled));\r
+ write(file,&joystickprogressive,sizeof(joystickprogressive));\r
+ write(file,&joystickport,sizeof(joystickport));\r
+\r
+ write(file,&dirscan,sizeof(dirscan));\r
+ write(file,&buttonscan,sizeof(buttonscan));\r
+ write(file,&buttonmouse,sizeof(buttonmouse));\r
+ write(file,&buttonjoy,sizeof(buttonjoy));\r
+\r
+// write(file,&viewsize,sizeof(viewsize));\r
+ write(file,&mouseadjustment,sizeof(mouseadjustment));\r
+\r
+ close(file);\r