vesacon_touch(0, 0, __vesacon_text_rows, TEXT_PIXEL_COLS/FONT_WIDTH);
}
-/* Draw text at a specific area of the screen */
-void __vesacon_write_at(int x, int y, const char *str,
- uint8_t attr, int rev)
-{
- int n = 0;
- struct vesa_char *ptr = &__vesacon_text_display
- [(y+1)*(TEXT_PIXEL_COLS/FONT_WIDTH+2)+(x+1)];
-
- while (*str) {
- ptr->ch = *str;
- ptr->attr = attr;
- ptr->sha = rev;
-
- n++;
- str++;
- ptr++;
- }
-
- vesacon_touch(y, x, 1, n);
-}
-
/* Draw one character text at a specific area of the screen */
void __vesacon_write_char(int x, int y, uint8_t ch, uint8_t attr, int rev)
{
.SUFFIXES: .lss .c .o .elf .c32 .lnx
-all: hello.c32 cat.c32 resolv.c32 vesa.c32 \
+all: hello.c32 cat.c32 resolv.c32 \
fancyhello.c32 fancyhello.lnx \
keytest.c32 keytest.lnx \
+++ /dev/null
-#include <stdio.h>
-#include <inttypes.h>
-#include "../lib/sys/vesa/video.h"
-
-int __vesacon_init(void);
-void vesacon_write_at(int row, int col, const char *str, uint8_t attr, int rev);
-
-int main(void)
-{
- int row, col;
- int attr;
- char attr_buf[16];
-
- __vesacon_init();
- vesacon_load_background("stacy.png");
-
- row = col = 0;
-
- for (attr = 0; attr < 256; attr++) {
- snprintf(attr_buf, sizeof attr_buf, " [%02X] ", attr);
- __vesacon_write_at(row, col, attr_buf, attr, attr & 3);
- row++;
- if (row >= 29) {
- row = 0;
- col += 8;
- }
- }
-
- while (1)
- asm volatile("hlt");
-}