X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=main.c;h=a058cfe93d7efd138d2fa467af90e84bdb0372c0;hb=6dfa0a3162536682b5e5aced149b34240d88497b;hp=451b87dba0a95145ca920c0b972d0ba88ca8d9ef;hpb=59cd61cee0ebb13ed425654f9de96652c167c5cd;p=ppcskel.git diff --git a/main.c b/main.c index 451b87d..a058cfe 100644 --- a/main.c +++ b/main.c @@ -123,11 +123,17 @@ int main(void) usb_init(OHCI0_REG_BASE); /* internal ohci */ - //usb_init(OHCI1_REG_BASE); + usb_init(OHCI1_REG_BASE); /* load HID keyboard driver */ usb_hidkb_init(); + /* wait for usb keyboard plugged in */ + if(!usb_hidkb_inuse()) { + print_str("plug in an usb keyboard", 23); + } + while(!usb_hidkb_inuse()); + /* you are welcome to make this nice :) */ char str[7]; u16 i, j, y=20, x=20; @@ -146,8 +152,12 @@ int main(void) y=20; } if((k->keys[i] >= 4) && k->keys[i] <= 4+'z'-'a') { - str[j] = k->keys[i] - 4 + 'a'; - } + str[j] = k->keys[i] - 4 + (k->mod & MOD_lshift || k->mod & MOD_rshift ? 'A' : 'a'); + } else if ((k->keys[i] >= 0x1e) && (k->keys[i] <= 0x26)) { + str[j] = k->keys[i] - 0x1e + '1'; + } else if (k->keys[i] == 0x27) { + str[j] = '0'; + } else if (k->keys[i] == 0x28) { y += 15; x = 20;