added doc files, test for display
[dcpu16] / docs / keyboard.txt
diff --git a/docs/keyboard.txt b/docs/keyboard.txt
new file mode 100644 (file)
index 0000000..afa4482
--- /dev/null
@@ -0,0 +1,31 @@
+Name: Generic Keyboard (compatible)\r
+ID: 0x30cf7406\r
+Version: 1\r
+\r
+Interrupts do different things depending on contents of the A register:\r
+\r
+ A | BEHAVIOR\r
+---+----------------------------------------------------------------------------\r
+ 0 | Clear keyboard buffer\r
+ 1 | Store next key typed in C register, or 0 if the buffer is empty\r
+ 2 | Set C register to 1 if the key specified by the B register is pressed, or\r
+   | 0 if it's not pressed\r
+ 3 | If register B is non-zero, turn on interrupts with message B. If B is zero,\r
+   | disable interrupts\r
+---+----------------------------------------------------------------------------\r
+\r
+When interrupts are enabled, the keyboard will trigger an interrupt when one or\r
+more keys have been pressed, released, or typed.\r
+\r
+Key numbers are:\r
+       0x10: Backspace\r
+       0x11: Return\r
+       0x12: Insert\r
+       0x13: Delete\r
+       0x20-0x7f: ASCII characters\r
+       0x80: Arrow up\r
+       0x81: Arrow down\r
+       0x82: Arrow left\r
+       0x83: Arrow right\r
+       0x90: Shift\r
+       0x91: Control\r