int main(int argc, char **argv) { int iResult = 0; int memfd; memfd = open("/dev/mem", O_RDWR); g_pRegs32 = (unsigned int *) mmap(0, 0x10000, PROT_READ|PROT_WRITE, MAP_SHARED, memfd, 0xc0000000); g_pRegs16 = (unsigned short *) g_pRegs32; g_p32Blitter = (unsigned int *) mmap(0, 0x100, PROT_READ|PROT_WRITE, MAP_SHARED, memfd, 0xE0020000); g_pMem = (unsigned char*)mmap(0, 0x2000000, PROT_READ | PROT_WRITE, MAP_SHARED, memfd, 0x2000000); //mmap the upper 32MB. // enable all video and graphic devices g_pRegs16[0x090a >> 1] = 0xFFFF; // enable fastio g_pRegs16[0x0904 >> 1] |= (1 << 10); blit_test(); munmap(g_pMem, 0x2000000); munmap(g_p32Blitter, 0x100); munmap(g_pRegs32, 0x10000); return iResult; }
static Errcode test_draw(Rcel *dcel) /* Draw various shapes in response to abuser input */ { int scancode; /* keyboard scancode */ char asckey; /* ascii representation of keyboard scan code */ for (;;) { asckey = scancode = pj_key_in(); /* Hey dos, what did they hit? */ #define ESCKEY 0x1b switch (asckey) /* Quit program on any * escape looking key */ { case ESCKEY: case 'q': case 'Q': case 'x': case 'X': goto done_drawing; case '0': pj_set_rast(dcel,0); break; case '1': line_test(dcel); break; case '2': circle_test(dcel); break; case '3': box_test(dcel); break; #ifdef SOON case '4': blit_test(dcel); break; #endif /* SOON */ } } done_drawing: return(Success); }