#include "boot.h" #define VID_CMD 0x80 #define VID_DAT 0x81 #define VID_CMD_SET_TEXT_MODE 0 #define VID_CMD_SET_PIXEL_MODE 1 #define VID_CMD_CLR 2 #define VID_CMD_TEXT_POS_X 3 #define VID_CMD_TEXT_POS_Y 5 #define VID_CMD_PIXEL_POS_X 4 #define VID_CMD_PIXEL_POS_Y 6 void putc(char c){ io_out(VID_DAT, c); } void puts(char * s){ while(*s){ putc(*s); s++; } } void main(void) { delay_ms(100); for(;;){ io_out(VID_CMD, VID_CMD_TEXT_POS_X); io_out(VID_DAT, 0); io_out(VID_CMD, VID_CMD_TEXT_POS_Y); io_out(VID_DAT, 0); io_out(VID_CMD, VID_CMD_SET_TEXT_MODE); io_out(VID_CMD, VID_CMD_CLR); for(uint8_t i=0; i<18; i++){ putc('0'+i); puts("\r\n"); } delay_ms(2000); io_out(VID_CMD, VID_CMD_SET_PIXEL_MODE); io_out(VID_CMD, VID_CMD_CLR); for(uint8_t y=0; y<255; y++){ uint16_t py = 160 + y; uint16_t px = 256; io_out(VID_CMD, VID_CMD_PIXEL_POS_X); io_out(VID_DAT, px&0xff); io_out(VID_DAT, px>>8); io_out(VID_CMD, VID_CMD_PIXEL_POS_Y); io_out(VID_DAT, py&0xff); io_out(VID_DAT, py>>8); io_out(VID_CMD, VID_CMD_SET_PIXEL_MODE); for(uint8_t x=0; x<32; x++) io_out(VID_DAT, 0xff); } delay_ms(2000); } }