copy to ram and initialze sprite from c
[swan-dev] / src / main.c
index 375b587..3763f3c 100644 (file)
@@ -13,14 +13,89 @@ void outport(c)
 #endasm
 }
 
-int main()
+static unsigned char data[] = {
+0x65, 0x06, 0x67, 0x06, 0x79, 0x07, 0x8c, 0x08, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f,
+0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f
+};
+
+static unsigned char data2[] = {
+0x65, 0x06, 0x67, 0x06, 0x79, 0x07, 0x8c, 0x08, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f,
+0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f
+};
+
+static unsigned char data3[] = {
+0x65, 0x06, 0x67, 0x06, 0x79, 0x07, 0x8c, 0x08, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f,
+0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f
+};
+       
+
+
+unsigned short *memcpy(dest, src, cnt)
+       unsigned short *dest;
+       unsigned short *src;
+       int cnt;
 {
-       while(1) {
-               /* outport(0x15EE); */
-               unsigned reg = 0x15;
-               unsigned val = 0xEE;
-               outport((reg << 8) | val);
 
+       int i;
+#asm
+       ;push ds
+       ;push es
+       mov ax, 0x0
+       mov ds, ax
+       xor ax, ax
+       mov es, ax
+#endasm
+       for (i = 0; i < cnt; ++i) {
+               *dest++ = *src++;
+               //*dest++ = 0x66;
        }
+#asm   
+       ;pop es
+       ;pop ds
+       mov ds, 0xF000
+#endasm
+       return dest;
+}
+
+void test_copy()
+{
+#asm 
+       ;mov ds, 0
+#endasm
+      
+//     unsigned short dest = 0xFE00;
+//     unsigned * ptr = dest;
+//     *ptr++ = 0xDEAD;
+//     *ptr++ = 0xAAAA;
+//     *ptr++ = 0xDEAD;
+       memcpy(0xFE00, 0x1000, 16);
+#asm 
+       ;mov ds, 0xF000
+#endasm
+       //wmemcpy(WSC_PALETTES, 0x2F000, 32);
+       return;
+}
+
+int main()
+{
+       unsigned short data_seg = 0xF000;
+       unsigned short data_ram = 0x1000;
+       unsigned short rel_ram = data_seg - data_ram;
+
+       /* dummy */
+       memcpy(0x0, 0x0, 0);
+
+       memcpy(0xFE00, data - rel_ram, 16);
+       //memcpy(0xFE00, data_seg + data, 16);
+       
+       //while(1) {
+       //      /* outport(0x15EE); */
+       //      unsigned reg = 0x15;
+       //      unsigned val = 0xEE;
+       //      outport((reg << 8) | val);
+
+       //}
+
+
        return 0;
 }