66 lines
1.4 KiB
C
66 lines
1.4 KiB
C
#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);
|
|
}
|
|
}
|