X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=main.c;h=dcc2f19b3bdbae5deb1669ecdc9a8e8eb75b6796;hb=9080c140e0aa002f00ce01fc0c5a63783a3b7724;hp=2c1e41ff71a0b63938465d7207815259af95d491;hpb=3a17a5742283d2510b6bdcf42dcb76cdb66d3770;p=ppcskel.git diff --git a/main.c b/main.c index 2c1e41f..dcc2f19 100644 --- a/main.c +++ b/main.c @@ -24,8 +24,10 @@ Copyright (C) 2009 John Kelley #include "video_low.h" #include "input.h" #include "console.h" -#include "ohci.h" #include "irq.h" +#include "usb/core/core.h" +#include "usb/drivers/class/hid.h" +#include "hollywood.h" #define MINIMUM_MINI_VERSION 0x00010001 @@ -84,6 +86,14 @@ int main(void) exception_init(); dsp_reset(); + irq_initialize(); + irq_bw_enable(BW_PI_IRQ_RESET); + irq_bw_enable(BW_PI_IRQ_HW); //hollywood pic + /* external ohci */ + irq_hw_enable(IRQ_OHCI0); + /* internal ohci */ + //irq_hw_enable(IRQ_OHCI1); + ipc_initialize(); ipc_slowping(); @@ -95,13 +105,6 @@ int main(void) VIDEO_SetFrameBuffer(get_xfb()); VISetupEncoder(); - irq_initialize(); - irq_bw_enable(BW_PI_IRQ_RESET); - irq_bw_enable(BW_PI_IRQ_HW); //hollywood pic - irq_hw_enable(IRQ_OHCI0); - - ohci_init(); - u32 version = ipc_getvers(); u16 mini_version_major = version >> 16 & 0xFFFF; u16 mini_version_minor = version & 0xFFFF; @@ -115,17 +118,48 @@ int main(void) ; // better ideas welcome! } - /* - print_str_noscroll(112, 112, "ohai, world!\n"); - testOTP(); - printf("bye, world!\n"); - */ + /* external ohci */ + usb_init(OHCI0_REG_BASE); + + /* internal ohci */ + //usb_init(OHCI1_REG_BASE); + + /* load HID keyboard driver */ + usb_hidkb_init(); + + /* you are welcome to make this nice :) */ + char str[7]; + u16 i, j, y=20, x=20; + struct kbrep *k; while(1) { - // just to get sure we are still in this loop - //_CPU_ISR_Enable() // don't know why this is needed... - //udelay(100000); - //printf("x"); + memset(str, '\0', 8); + j=0; + k = usb_hidkb_getChars(); + for(i=0; k->keys[i]>0; i++) { + if(x>650) { + x = 20; + y += 15; + } + if(y>440) { + y=20; + } + if((k->keys[i] >= 4) && k->keys[i] <= 4+'z'-'a') { + str[j] = k->keys[i] - 4 + 'a'; + } + else if (k->keys[i] == 0x28) { + y += 15; + x = 20; + } + j++; + } + if(j > 0) { + print_str_noscroll(x, y, str); + printf("y: %d\n", y); + } + while(j--) { + x += 13; + } } return 0;