initial 32x tests
[megadrive.git] / testpico / sh2_main.c
CommitLineData
9d39a80e 1#include "common.h"
2
3void spin(int loops);
4
5void main_c(u32 is_slave)
6{
7 u16 v, *r = (u16 *)0x20004000;
8
9 for (;;)
10 {
11 u16 cmd;
12
13 mem_barrier();
14 cmd = read16(&r[0x20/2]);
15 if ((cmd & 0x8000) ^ (is_slave << 15)) {
16 spin(64);
17 continue;
18 }
19 cmd &= 0x7fff;
20 switch (cmd)
21 {
22 case 0:
23 case 0x4d5f: // 'M_' from BIOS
24 case 0x535f: // 'S_' from BIOS
25 spin(64);
26 continue;
27 case CMD_ECHO:
28 v = read16(&r[0x22/2]) ^ (is_slave << 15);
29 write16(&r[0x24/2], v);
30 break;
31 }
32 write16(&r[0x20/2], 0);
33 }
34}
35
36// vim:ts=4:sw=4:expandtab