Added 0.030 of PicoDrive and moved license files into root
[cyclone68000.git] / PicoDrive / Config.cpp
diff --git a/PicoDrive/Config.cpp b/PicoDrive/Config.cpp
new file mode 100644 (file)
index 0000000..4ab2d57
--- /dev/null
@@ -0,0 +1,86 @@
+\r
+#include "stdafx.h"\r
+\r
+static char *ConfigName="\\PicoConfig.txt";\r
+struct Config Config;\r
+\r
+int ConfigInit()\r
+{\r
+  memset(&Config,0,sizeof(Config));\r
+\r
+  Config.key[0]=VK_UP;\r
+  Config.key[1]=VK_DOWN;\r
+  Config.key[2]=VK_LEFT;\r
+  Config.key[3]=VK_RIGHT;\r
+  Config.key[4]=GXKey.vkC; // A\r
+  Config.key[5]=GXKey.vkA; // B\r
+  Config.key[6]=GXKey.vkB; // C\r
+  Config.key[7]=GXKey.vkStart;\r
+\r
+  return 0;\r
+}\r
+\r
+int ConfigSave()\r
+{\r
+  FILE *f=NULL;\r
+  int i=0,max=0;\r
+\r
+  // Open config file:\r
+  f=fopen(ConfigName,"wt"); if (f==NULL) return 1;\r
+\r
+  fprintf(f,"// PicoDrive Config File\n\n");\r
+\r
+  fprintf(f,"// Keys: Up Down Left Right\n");\r
+  fprintf(f,"// A B C Start\n\n");\r
+\r
+  max=sizeof(Config.key)/sizeof(Config.key[0]);\r
+  for (i=0;i<max;i++)\r
+  {\r
+    fprintf(f,"key,%d,0x%.2x\n",i,Config.key[i]);\r
+  }\r
+\r
+  fclose(f);\r
+\r
+  return 0;\r
+}\r
+\r
+int ConfigLoad()\r
+{\r
+  FILE *f=NULL;\r
+  char line[256];\r
+  int i=0;\r
+\r
+  memset(line,0,sizeof(line));\r
+\r
+  // Open config file:\r
+  f=fopen(ConfigName,"rt"); if (f==NULL) return 1;\r
+\r
+  // Read through each line of the config file\r
+  for (;;)\r
+  {\r
+    char *tok[3]={"","",""};\r
+    if (fgets(line,sizeof(line)-1,f)==NULL) break;\r
+\r
+    // Split line into tokens:\r
+    for (i=0;i<3;i++)\r
+    {\r
+      tok[i]=strtok(i<1?line:NULL, ",\r\n");\r
+      if (tok[i]==NULL) { tok[i]=""; break; }\r
+    }\r
+\r
+    if (_stricmp(tok[0],"key")==0)\r
+    {\r
+      // Key code\r
+      int ta=0,tb=0;\r
+      \r
+      ta=strtol(tok[1],NULL,0);\r
+      tb=strtol(tok[2],NULL,0);\r
+\r
+      Config.key[ta&7]=tb;\r
+    }\r
+  }\r
+\r
+  fclose(f);\r
+\r
+  return 0;\r
+}\r