void display_reset();
void display_update();
-void set_msg(char* newmsg) {
+void set_msg(char* newmsg, u8 wrap) {
char* dest = current_message;
/* equivalent of a string copy */
/* while (dest++ = newmsg++); */
dest++;
newmsg++;
}
+ wrap_mode = wrap;
scroll_point = 0;
display_update();
}
-inline void set_wrap_mode(u8 new_wrap_mode) {
- /* in theory it should be inlined anyway? */
- wrap_mode = new_wrap_mode;
+void set_char(char c, u8 pos) {
+ /* sets a single character */
+ display_buffer[pos] = c;
+ display_update();
}
void display_send_byte(char c) {
#define DISPLAY_DELAY 100 /* ms to delay between ops - could be tweaked */
void display_reset() {
/* lower the reset line for a while */
- _io_ports[M6811_PORTA] &= ~PORTA_DISP_RESET;
+ bclr((void*)&_io_ports[M6811_PORTA], PORTA_DISP_RESET);
delay(DISPLAY_DELAY);
- _io_ports[M6811_PORTA] |= PORTA_DISP_RESET;
+ bset((void*)&_io_ports[M6811_PORTA], PORTA_DISP_RESET);
spi_enable();
delay(DISPLAY_DELAY);
}
void display_update() {
- int i;
+ u8 i;
display_reset();
for (i=0; i < 10; i++) {