A project to implement a console using the Mbed using VGA for video output and a PS/2 keyboard for the input. The eventual goal is to also include tools for managing SD cards, and a semi-self-hosting programming environment.

Dependencies:   PS2_MbedConsole fastlib SDFileSystem vga640x480g_mbedconsole lightvm mbed

MbedConsole is a cool little project to have a self-contained computer all on an Mbed. So far it has VGA and PS/2 support and can stand alone without a computer powering it. Next planned features are SD card support and a lightweight programmable VM complete with a file editor and self-hosted assembler.

You can view additional details about it at http://earlz.net/tags/mbedconsole

Revision:
12:3ee3062cc11c
Parent:
11:fede136943a9
Child:
16:370b9e559f92
--- a/keyboard.cpp	Fri Sep 28 04:03:54 2012 +0000
+++ b/keyboard.cpp	Fri Sep 28 04:35:00 2012 +0000
@@ -1,41 +1,8 @@
 #include "mbedconsole.h"
+#include "keyboard.h"
 /**This is basically a straight rip off of my x86 OS project AlloyOS. I just ported the keyboard driver from it cause it always treated me well**/
 
 
-#define KEYBOARD_DATAPIN p11
-#define KEYBOARD_CLOCKPIN p12
-
-//how many keys the buffer can hold
-#define KBD_BUFFER_SIZE 128 
-
-//key defines
-#define LSHIFT_KEY 0x12
-#define RSHIFT_KEY 0x59
-
-#define CTRL_KEY 0xF3
-#define ALT_KEY 0xF4
-#define CAPS_KEY 0x58
-#define NUM_KEY 0x77
-#define SCROLL_KEY 0xF7
-//#define F_BASE_KEY 0xFF //59 is F1, 60 is F2, and so on until F10
-#define HOME_KEY 0xFF
-#define UP_KEY 0xFF
-#define PAGE_UP_KEY 0xFF
-#define LEFT_KEY 0xFF
-#define RIGHT_KEY 0xFF
-#define END_KEY 0xFF
-#define DOWN_KEY 0xFF
-#define PAGE_DOWN_KEY 0xFF
-#define INSERT_KEY 0xFF
-#define DEL_KEY 0xFF
-#define F11_KEY 0xFF
-#define F12_KEY 0xFF
-
-#define SCROLL_LED 1
-#define NUM_LED 2
-#define CAPS_LED 4
-
-
 const char kbdus[0x84] =
 {
     0, 
@@ -189,26 +156,6 @@
     0, //83 F7
 };
 
-
-typedef struct {
-    unsigned char caps;
-    unsigned char shift;
-    unsigned char scroll;
-    unsigned char num;
-    unsigned char ctrl;
-    unsigned char alt;
-}
-shift_locks; /*for simplicity and speed*/
-
-extern volatile shift_locks kbd_shifts;
-
-
-typedef struct {
-    uint16_t scancode;
-    uint8_t asci;
-}kbd_key;
-
-
 PS2KB_INIT *ps2_kb_init;
 PS2KB *ps2_kb;
 
@@ -218,8 +165,6 @@
 volatile char pending_key=0;
 volatile uint8_t led_status=0;
 
-void keyboard_callback(PS2KB kb, uint8_t val);
-
 void keyboard_init()
 {
     keys=(kbd_key*)malloc(256*sizeof(kbd_key));