+#if defined(__z80) || defined(__gbz80) || defined(__hc08)
+
+typedef unsigned char * va_list;
+#define va_start(list, last) list = (unsigned char *)&last + sizeof(last)
+#define va_arg(list, type) *((type *)((list += sizeof(type)) - sizeof(type)))
+
+#elif defined(__ds390) || defined(__ds400)