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
Diff: main.cpp
- Revision:
- 1:eb209f0468de
- Parent:
- 0:6906dbde03da
- Child:
- 9:4211d638b2e9
diff -r 6906dbde03da -r eb209f0468de main.cpp --- a/main.cpp Mon Sep 17 03:25:23 2012 +0000 +++ b/main.cpp Mon Sep 17 04:41:37 2012 +0000 @@ -1,82 +1,24 @@ -#include "mbed.h" -#include "vga640x480g.h" +#include "mbedconsole.h" -#define FONTHEIGHT 16 -#define FONTWIDTH 8 -int console_x=0, console_y=0; -int console_color=WHITE; //text color DigitalOut myled(LED1); -Serial serial(USBTX,USBRX); + +Serial serial(USBTX, USBRX); -void rawputc(char c) -{ - //fuck that shitv - if(console_x>80) - { - return; - } - //shift left for fast multiply - vga_putchar(console_x<<3, console_y<<4, c, console_color); -} -void putc(char c) -{ - //shift left for fast multiply - if(console_x>=79) - { - console_x=0; - console_y++; - } - switch(c){ - case '\n': - case '\r': - console_y++; - console_x=0; - break; - case '\b': - rawputc(' '); - if(console_x>0) - { - console_x--; - } - rawputc(' '); - break; - case '\t': - for(int i=0;i<4;i++) - { - console_x++; - rawputc(' '); - } - default: - vga_putchar(console_x<<3, console_y<<4, c, console_color); - console_x++; - } -} -/*void puts(char *s){ - while(*s!=0){ - char c=*s; - switch(c) - case '\n': - case '\r': - console_x=0; - vga_putchar(console_x,console_y,*s,console_color); - } -*/ + int main() { init_vga(); - serial.baud(115200); vga_cls(); while(1) { - if(serial.readable()){ - putc(serial.getc()); - } + vputs("mbedConsole by Jordan Earls\n"); + shell_begin(); } }