]> git.sesse.net Git - pistorm/blobdiff - platforms/amiga/pistorm-dev/pistorm_dev_amiga/pistorm_dev.c
Add not-so-simple config switching from Amiga side
[pistorm] / platforms / amiga / pistorm-dev / pistorm_dev_amiga / pistorm_dev.c
index cd3b311ef13e221a7695f5a875bf7f49e32cd78f..a0ec0ede9633c5908611aab528becab8ee645100 100644 (file)
 #include <proto/disk.h>
 #include <proto/expansion.h>
 
+#ifdef HAS_STDLIB
 #include <stdio.h>
+#endif
 
 unsigned int pistorm_base_addr = 0xFFFFFFFF;
 
 #define WRITESHORT(cmd, val) *(unsigned short *)((unsigned int)(pistorm_base_addr+cmd)) = val;
 #define WRITELONG(cmd, val) *(unsigned int *)((unsigned int)(pistorm_base_addr+cmd)) = val;
-#define WRITEBYTE(cmd, val) *(unsigned char *)((unsigned int)(pistorm_base_addrT+cmd)) = val;
+#define WRITEBYTE(cmd, val) *(unsigned char *)((unsigned int)(pistorm_base_addr+cmd)) = val;
 
 #define READSHORT(cmd, var) var = *(volatile unsigned short *)(pistorm_base_addr + cmd);
 #define READLONG(cmd, var) var = *(volatile unsigned int *)(pistorm_base_addr + cmd);
@@ -60,6 +62,13 @@ void pi_reset_amiga(unsigned short reset_code) {
     WRITESHORT(PI_CMD_RESET, reset_code);
 }
 
+void pi_handle_config(unsigned char cmd, char *str) {
+       if (cmd == PICFG_LOAD) {
+               WRITELONG(PI_STR1, (unsigned int)str);
+       }
+       WRITESHORT(PI_CMD_SWITCHCONFIG, cmd);
+}
+
 #define SIMPLEREAD_SHORT(a, b) \
     unsigned short a() { READSHORT(b, short_val); return short_val; }