+ if (down) {
+ if ((keyboard->buf_tail + 1) % keyboard->buf_sz == keyboard->buf_head) {
+ hw->vm->warn_cb_("keyboard buffer overflow");
+ return;
+ }
+ keyboard->buf[keyboard->buf_tail] = dcpu_key;
+ keyboard->buf_tail += 1;
+ keyboard->buf_tail %= keyboard->buf_sz;
+ }