/* * write function */ void FASTCALL dma_writemem24(DWORD addr, BYTE val) { MemByteAccess = 0; wm_main(addr, val); }
void FASTCALL dma_writemem24_word(DWORD addr, WORD val) { MemByteAccess = 0; if (addr & 1) { BusErrFlag |= 4; return; } wm_main(addr, (val >> 8) & 0xff); wm_main(addr + 1, val & 0xff); }
int main(int argc, char **argv) { wm_t *wm = NULL; int i; wm = wm_create(NULL); wm_set_log_level(wm, LOG_INFO); container_context = XUniqueContext(); client_container_context = XUniqueContext(); wm_log(wm, LOG_INFO, "== num screens: %d", wm->num_screens); for (i = 0; i < wm->num_screens; i++) { XWindowAttributes attr; Window root = wm->screens[i]->root;; container_t *root_container; XGetWindowAttributes(wm->dpy, root, &attr); root_container = container_new(wm, root, attr.x, attr.y, attr.width, attr.height); container_show(root_container); wm_log(wm, LOG_INFO, "Setting current container to %tx", root_container); current_container = root_container; /* Grab keys */ XGrabKey(wm->dpy, XKeysymToKeycode(wm->dpy, XK_j), Mod1Mask, root, False, GrabModeAsync, GrabModeAsync); XGrabKey(wm->dpy, XKeysymToKeycode(wm->dpy, XK_h), Mod1Mask, root, False, GrabModeAsync, GrabModeAsync); } container_focus(current_container); wm_listener_add(wm, WM_EVENT_MAPREQUEST, addwin); wm_listener_add(wm, WM_EVENT_MAPNOTIFY, addwin); wm_listener_add(wm, WM_EVENT_UNMAPNOTIFY, unmap); wm_listener_add(wm, WM_EVENT_ENTERNOTIFY, focus_container); wm_listener_add(wm, WM_EVENT_EXPOSE, expose_container); wm_listener_add(wm, WM_EVENT_KEYDOWN, keydown); wm_listener_add(wm, WM_EVENT_KEYUP, keyup); /* Start main loop. At this point, our code will only execute when events * happen */ XSync(wm->dpy, False); wm_main(wm); return 0; }
void FASTCALL cpu_writemem24_word(DWORD addr, WORD val) { MemByteAccess = 0; if (addr & 1) { AdrError(addr, val); return; } BusErrFlag = 0; wm_cnt(addr, (val >> 8) & 0xff); wm_main(addr + 1, val & 0xff); if (BusErrFlag & 2) { Memory_ErrTrace(); BusError(addr, val); } }