#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;
}