31 fd = open(name, OREAD);
36 case 0x800: mask = 0x7ff;
38 case 0x3000: bnk[6] = 2<<12;
39 case 0x2000: bnk[5] = 1<<12; break;
40 case 0x4000: for(i=1; i<4; bnk[i+2] = i<<12, i++); break;
41 case 0x8000: for(i=1; i<8; bnk[i] = i<<12, i++); break;
42 default: sysfatal("unsupported ROM size");
46 sysfatal("malloc: %r");
48 pread(fd, rom, sz, 0);
53 threadmain(int argc, char **argv)
64 fprint(2, "usage: %s [ -23a ] rom\n", argv0);
68 initemu(PICW, PICH, 4, XRGB32, 1, nil);
69 regkey("a", ' ', 1<<4);
70 regkey("start", 'q', 1<<5);
71 regkey("control", 'w', 1<<6);
72 regkey("up", Kup, 1<<0);
73 regkey("down", Kdown, 1<<1);
74 regkey("left", Kleft, 1<<2);
75 regkey("right", Kright, 1<<3);
76 regkeyfn('e', togdifc);
79 pc = memread(0xFFFC) | memread(0xFFFD) << 8;