diff --git a/include/memory/addresses.h b/include/memory/addresses.h index f5ba23b..08fbde3 100644 --- a/include/memory/addresses.h +++ b/include/memory/addresses.h @@ -34,8 +34,6 @@ // Font area 0x4000 - 0x4fff #define FONT_LOC 0x4000 -#define FONT_WIDTH (FONT_LOC) -#define FONT_HEIGHT (FONT_LOC + 1) // VBE Info Area 0x6000 - 0x6fff #define MODE_INFO_BLOCK_LOC 0x6000 // 512 Bytes diff --git a/include/screen/text.h b/include/screen/text.h index ed10146..e13f44f 100644 --- a/include/screen/text.h +++ b/include/screen/text.h @@ -7,12 +7,20 @@ #include #include +typedef union { + struct { + uint8_t width; + uint8_t height + } __attribute__ ((packed)) info; + uint8_t data[4096]; +} __attribute__ ((packed)) font_t; + // TODO: Reimplement larger text void drawChar(char c, uint32_t x, uint32_t y, uint32_t fgColor, uint32_t bgColor) { // Font info - char* font = (char*)FONT_LOC; - uint8_t charWidth = *(uint8_t*)FONT_WIDTH; - uint8_t charHeight = *(uint8_t*)FONT_HEIGHT; + font_t* font = (font_t*)FONT_LOC; + uint8_t charWidth = font->info.width; + uint8_t charHeight = font->info.height; // uint8_t bitmapRowLen = (charWidth - 1) / 8 + 1; // TODO: Larger font support // Video stuff @@ -20,7 +28,7 @@ void drawChar(char c, uint32_t x, uint32_t y, uint32_t fgColor, uint32_t bgColor uint8_t* vidmem = (uint8_t*)gfxMode->physicalBasePtr; uint32_t offset = (gfxMode->xRes * y * charHeight + x * charWidth) * bytesPerPx; - char* bitmap = &font[((c % 128) - 1) * charHeight]; + char* bitmap = &font.data[(c - 1) * charHeight]; for (uint8_t i = 0; i < charHeight; i++) { // Rows char bitmapRow = bitmap[i]; uint32_t color = convertColor((bitmapRow & 0x80) ? fgColor : bgColor); diff --git a/src/fonts/term16n.asm b/src/fonts/term16n.asm deleted file mode 100644 index 1ec136d..0000000 --- a/src/fonts/term16n.asm +++ /dev/null @@ -1,1547 +0,0 @@ -;;; -;;; font file - 0-127 for ascii, 8x16 pixels each. Stored as 1 byte (8 bits) * 16 = 16 bytes per char, 127*16 = 2048 = 4 512 byte sectors -;;; based on terminus u16n -;;; -;; Font header - width & height -db 8, 16 -times 31*16 - 2 db 0 -;; Space -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 24h,\ - 24h,\ - 24h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 24h,\ - 24h,\ - 24h,\ - 7Eh,\ - 24h,\ - 24h,\ - 7Eh,\ - 24h,\ - 24h,\ - 24h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 10h,\ - 10h,\ - 7Ch,\ - 92h,\ - 90h,\ - 90h,\ - 7Ch,\ - 12h,\ - 12h,\ - 92h,\ - 7Ch,\ - 10h,\ - 10h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 64h,\ - 94h,\ - 68h,\ - 08h,\ - 10h,\ - 10h,\ - 20h,\ - 2Ch,\ - 52h,\ - 4Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 18h,\ - 24h,\ - 24h,\ - 18h,\ - 30h,\ - 4Ah,\ - 44h,\ - 44h,\ - 44h,\ - 3Ah,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 08h,\ - 10h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 10h,\ - 08h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 20h,\ - 10h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 10h,\ - 20h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 24h,\ - 18h,\ - 7Eh,\ - 18h,\ - 24h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 7Ch,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 20h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 04h,\ - 04h,\ - 08h,\ - 08h,\ - 10h,\ - 10h,\ - 20h,\ - 20h,\ - 40h,\ - 40h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 46h,\ - 4Ah,\ - 52h,\ - 62h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 08h,\ - 18h,\ - 28h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 3Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 02h,\ - 04h,\ - 08h,\ - 10h,\ - 20h,\ - 40h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 02h,\ - 1Ch,\ - 02h,\ - 02h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 02h,\ - 06h,\ - 0Ah,\ - 12h,\ - 22h,\ - 42h,\ - 7Eh,\ - 02h,\ - 02h,\ - 02h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Eh,\ - 40h,\ - 40h,\ - 40h,\ - 7Ch,\ - 02h,\ - 02h,\ - 02h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 1Ch,\ - 20h,\ - 40h,\ - 40h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Eh,\ - 02h,\ - 02h,\ - 04h,\ - 04h,\ - 08h,\ - 08h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 02h,\ - 02h,\ - 04h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 10h,\ - 10h,\ - 20h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 04h,\ - 08h,\ - 10h,\ - 20h,\ - 40h,\ - 20h,\ - 10h,\ - 08h,\ - 04h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 7Eh,\ - 00h,\ - 00h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 40h,\ - 20h,\ - 10h,\ - 08h,\ - 04h,\ - 08h,\ - 10h,\ - 20h,\ - 40h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 04h,\ - 08h,\ - 08h,\ - 00h,\ - 08h,\ - 08h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Ch,\ - 82h,\ - 9Eh,\ - 0A2h,\ - 0A2h,\ - 0A2h,\ - 0A6h,\ - 9Ah,\ - 80h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Eh,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 78h,\ - 44h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 44h,\ - 78h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Eh,\ - 40h,\ - 40h,\ - 40h,\ - 78h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Eh,\ - 40h,\ - 40h,\ - 40h,\ - 78h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 40h,\ - 40h,\ - 4Eh,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Eh,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 38h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 0Eh,\ - 04h,\ - 04h,\ - 04h,\ - 04h,\ - 04h,\ - 04h,\ - 44h,\ - 44h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 42h,\ - 44h,\ - 48h,\ - 50h,\ - 60h,\ - 60h,\ - 50h,\ - 48h,\ - 44h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 82h,\ - 0C6h,\ - 0AAh,\ - 92h,\ - 92h,\ - 82h,\ - 82h,\ - 82h,\ - 82h,\ - 82h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 62h,\ - 52h,\ - 4Ah,\ - 46h,\ - 42h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Ch,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 4Ah,\ - 3Ch,\ - 02h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Ch,\ - 50h,\ - 48h,\ - 44h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 40h,\ - 40h,\ - 3Ch,\ - 02h,\ - 02h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 0FEh,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 24h,\ - 24h,\ - 24h,\ - 18h,\ - 18h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 82h,\ - 82h,\ - 82h,\ - 82h,\ - 82h,\ - 92h,\ - 92h,\ - 0AAh,\ - 0C6h,\ - 82h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 42h,\ - 42h,\ - 24h,\ - 24h,\ - 18h,\ - 18h,\ - 24h,\ - 24h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 82h,\ - 82h,\ - 44h,\ - 44h,\ - 28h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 7Eh,\ - 02h,\ - 02h,\ - 04h,\ - 08h,\ - 10h,\ - 20h,\ - 40h,\ - 40h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 38h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 20h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 40h,\ - 40h,\ - 20h,\ - 20h,\ - 10h,\ - 10h,\ - 08h,\ - 08h,\ - 04h,\ - 04h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 38h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 10h,\ - 28h,\ - 44h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 7Eh,\ - 00h,\ - 00h -db 10h,\ - 08h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Ch,\ - 02h,\ - 3Eh,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 40h,\ - 40h,\ - 40h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 40h,\ - 40h,\ - 40h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 02h,\ - 02h,\ - 02h,\ - 3Eh,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 7Eh,\ - 40h,\ - 40h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 0Eh,\ - 10h,\ - 10h,\ - 7Ch,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Eh,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 02h,\ - 02h,\ - 3Ch,\ - 00h -db 00h,\ - 00h,\ - 40h,\ - 40h,\ - 40h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 10h,\ - 10h,\ - 00h,\ - 30h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 04h,\ - 04h,\ - 00h,\ - 0Ch,\ - 04h,\ - 04h,\ - 04h,\ - 04h,\ - 04h,\ - 04h,\ - 44h,\ - 44h,\ - 38h,\ - 00h -db 00h,\ - 00h,\ - 40h,\ - 40h,\ - 40h,\ - 42h,\ - 44h,\ - 48h,\ - 70h,\ - 48h,\ - 44h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 30h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 38h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 0FCh,\ - 92h,\ - 92h,\ - 92h,\ - 92h,\ - 92h,\ - 92h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 7Ch,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 7Ch,\ - 40h,\ - 40h,\ - 40h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Eh,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 02h,\ - 02h,\ - 02h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 5Eh,\ - 60h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 40h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 3Eh,\ - 40h,\ - 40h,\ - 3Ch,\ - 02h,\ - 02h,\ - 7Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 10h,\ - 10h,\ - 10h,\ - 7Ch,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 0Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 24h,\ - 24h,\ - 18h,\ - 18h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 82h,\ - 82h,\ - 92h,\ - 92h,\ - 92h,\ - 92h,\ - 7Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 42h,\ - 42h,\ - 24h,\ - 18h,\ - 24h,\ - 42h,\ - 42h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 42h,\ - 3Eh,\ - 02h,\ - 02h,\ - 3Ch,\ - 00h -db 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 7Eh,\ - 04h,\ - 08h,\ - 10h,\ - 20h,\ - 40h,\ - 7Eh,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 0Ch,\ - 10h,\ - 10h,\ - 10h,\ - 20h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 0Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 10h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 00h,\ - 30h,\ - 08h,\ - 08h,\ - 08h,\ - 04h,\ - 08h,\ - 08h,\ - 08h,\ - 08h,\ - 30h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 00h,\ - 62h,\ - 92h,\ - 8Ch,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h,\ - 00h -db 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF,\ - 0xFF - -;; End of visible ascii characters - times 2048-($-$$) db 0 diff --git a/src/fonts/term16n.fnt b/src/fonts/term16n.fnt index bb89ed4..59e44ca 100644 Binary files a/src/fonts/term16n.fnt and b/src/fonts/term16n.fnt differ diff --git a/src/fonts/testfont.asm b/src/fonts/testfont.asm deleted file mode 100644 index 6b3d4d3..0000000 --- a/src/fonts/testfont.asm +++ /dev/null @@ -1,1652 +0,0 @@ -;;; -;;; .fnt Font file -;;; 8x16 Font, based on GNU Unifont 8x16 -;;; 8 bits per line, 16 lines per character, 128 ASCII Characters (0-127) -;;; 8*16*128 = 2048B (2kB) -;;; Takes up 4 sectors -;;; - -;;; Font header - 16 Bytes -charWidth: db 8 -charHeight: db 16 -reserved: times 14 db 0 - -;;; Bitmap data -;; 1-31 Non printable characters (0 - NULL is in the header, and we can't print it anyway) -times 30*16 db 0 -;; Space ' ' or '_' - starts at ascii 32/20h -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Exclamation mark '!' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Double quotes '"' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01000100b,\ - 01000100b,\ - 01000100b,\ - 01000100b,\ - 01000100b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Octothorpe/pound sign/hash/number/etc. '#' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00100010b,\ - 00100010b,\ - 00100010b,\ - 11111110b,\ - 01000100b,\ - 01000100b,\ - 11111110b,\ - 10001000b,\ - 10001000b,\ - 10001000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Dollar sign '$' - it's the capital S with a line through it -db 00000000b,\ - 00000000b,\ - 00010000b,\ - 01111100b,\ - 10010010b,\ - 10010010b,\ - 10010000b,\ - 01010000b,\ - 00111100b,\ - 00010010b,\ - 10010010b,\ - 10010010b,\ - 01111100b,\ - 00010000b,\ - 00000000b,\ - 00000000b -;; Percent sign '%' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01100010b,\ - 10010100b,\ - 10010100b,\ - 01101000b,\ - 00010000b,\ - 00010000b,\ - 00101100b,\ - 01010010b,\ - 01010010b,\ - 10001100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Ampersand '&' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00111000b,\ - 01000100b,\ - 01000100b,\ - 00101000b,\ - 00110000b,\ - 01010010b,\ - 10001010b,\ - 10000100b,\ - 10001100b,\ - 01110010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Single quote ''' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Open paranthesis '(' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00100000b,\ - 00100000b,\ - 01000000b,\ - 01000000b,\ - 01000000b,\ - 01000000b,\ - 00100000b,\ - 00100000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Close paranthesis ')' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00001000b,\ - 00000100b,\ - 00000100b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000100b,\ - 00000100b,\ - 00001000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Asterisk (and Obelisk) '*' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 10010010b,\ - 01010100b,\ - 00111000b,\ - 01010100b,\ - 10010010b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Plus '+' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 11111110b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Comma ',' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00011000b,\ - 00001000b,\ - 00001000b,\ - 00010000b,\ - 00000000b -;; Hyphen '-' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Period/dot/fullstop '.' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00011000b,\ - 00011000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Divide/forward slash '/' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000010b,\ - 00000100b,\ - 00000100b,\ - 00001000b,\ - 00010000b,\ - 00010000b,\ - 00100000b,\ - 01000000b,\ - 01000000b,\ - 10000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Zero '0' - starts at ascii 48/30h -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00111000b,\ - 01000100b,\ - 10000010b,\ - 10000110b,\ - 10001010b,\ - 10010010b,\ - 10100010b,\ - 11000010b,\ - 01000100b,\ - 00111000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; One '1' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00110000b,\ - 01010000b,\ - 10010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Two '2' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 00000010b,\ - 00001100b,\ - 00010000b,\ - 00100000b,\ - 11000000b,\ - 11000000b,\ - 11111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Three '3' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 00000010b,\ - 00111100b,\ - 00000010b,\ - 00000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Four '4' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00001100b,\ - 00010100b,\ - 00100100b,\ - 01000100b,\ - 10000100b,\ - 10000100b,\ - 11111110b,\ - 00000100b,\ - 00000100b,\ - 00000100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Five '5' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 11111100b,\ - 00000010b,\ - 00000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Six '6' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00111110b,\ - 01000000b,\ - 10000000b,\ - 10000000b,\ - 11111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Seven '7' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 00000010b,\ - 00000010b,\ - 00000100b,\ - 00000100b,\ - 00000100b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Eight '8' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Nine '9' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111110b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000100b,\ - 01111000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Colon ':' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00011000b,\ - 00011000b,\ - 00000000b,\ - 00000000b,\ - 00011000b,\ - 00011000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Semicolon ';' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00011000b,\ - 00011000b,\ - 00000000b,\ - 00000000b,\ - 00011000b,\ - 00001000b,\ - 00001000b,\ - 00010000b,\ - 00000000b -;; Less than '<' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000100b,\ - 00001000b,\ - 00010000b,\ - 00100000b,\ - 01000000b,\ - 00100000b,\ - 00010000b,\ - 00001000b,\ - 00000100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Equal '=' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111110b,\ - 00000000b,\ - 00000000b,\ - 01111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Greater than '>' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00100000b,\ - 00010000b,\ - 00001000b,\ - 00000100b,\ - 00000010b,\ - 00000100b,\ - 00001000b,\ - 00010000b,\ - 00100000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Question mark '?' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 00000010b,\ - 00000100b,\ - 00001000b,\ - 00001000b,\ - 00000000b,\ - 00001000b,\ - 00001000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; At symbol '@' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00111100b,\ - 01000010b,\ - 10001010b,\ - 10010110b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10001110b,\ - 01000000b,\ - 00111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'A' - starts at ascii 65/41h -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00101000b,\ - 01000100b,\ - 10000010b,\ - 10000010b,\ - 11111110b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'B' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'C' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'D' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111000b,\ - 10000100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000100b,\ - 11111000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'E' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 11111100b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 11111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'F' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 11111100b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'G' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000000b,\ - 10000000b,\ - 10011110b,\ - 10000010b,\ - 10000010b,\ - 10000110b,\ - 01111010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'H' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11111110b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'I' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 11111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'J' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00111110b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 10001000b,\ - 10001000b,\ - 01110000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'K' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000100b,\ - 10001000b,\ - 10010000b,\ - 10100000b,\ - 11000000b,\ - 11000000b,\ - 10100000b,\ - 10010000b,\ - 10001000b,\ - 10000100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'L' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 11111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'M' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 11000110b,\ - 11000110b,\ - 10101010b,\ - 10010010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'N' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 11000010b,\ - 11000010b,\ - 10100010b,\ - 10100010b,\ - 10010010b,\ - 10010010b,\ - 10001010b,\ - 10001010b,\ - 10000110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'O' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'P' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11111100b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'Q' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10110010b,\ - 11001010b,\ - 01111100b,\ - 00000110b,\ - 00000000b,\ - 00000000b -;; 'R' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11111100b,\ - 10001000b,\ - 10000100b,\ - 10000100b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'S' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 01000000b,\ - 00110000b,\ - 00001100b,\ - 00000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'T' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'U' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'V' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01000100b,\ - 01000100b,\ - 01000100b,\ - 00101000b,\ - 00101000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'W' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10010010b,\ - 10101010b,\ - 11000110b,\ - 11000110b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'X' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000100b,\ - 10000100b,\ - 01001000b,\ - 01001000b,\ - 00110000b,\ - 00110000b,\ - 01001000b,\ - 01001000b,\ - 10000100b,\ - 10000100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'Y' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 01000100b,\ - 01000100b,\ - 00101000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'Z' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 00000010b,\ - 00000010b,\ - 00000100b,\ - 00001000b,\ - 00010000b,\ - 00100000b,\ - 01000000b,\ - 10000000b,\ - 11111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Open bracket '[' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 11110000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 11110000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Backslash '\' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000000b,\ - 10000000b,\ - 01000000b,\ - 00100000b,\ - 00100000b,\ - 00010000b,\ - 00001000b,\ - 00001000b,\ - 00000100b,\ - 00000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Close bracket ']' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00011110b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 00011110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Caret '^' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00111000b,\ - 01000100b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Underscore '_' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Backtick/grave '`' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00001000b,\ - 00000100b,\ - 00000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'a' - starts at ascii 97/61h -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 00000010b,\ - 01111110b,\ - 10000010b,\ - 10000010b,\ - 10000110b,\ - 01111010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'b' -db 00000000b,\ - 00000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10111100b,\ - 11000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11000010b,\ - 10111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'c' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'd' -db 00000000b,\ - 00000000b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 01111010b,\ - 10000110b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000110b,\ - 01111010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'e' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 11111110b,\ - 10000000b,\ - 10000000b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'f' -db 00000000b,\ - 00000000b,\ - 00001110b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 11111110b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'g' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000010b,\ - 01111100b,\ - 10000100b,\ - 10000100b,\ - 10000100b,\ - 01111000b,\ - 01000000b,\ - 01111100b,\ - 00000010b,\ - 00000010b,\ - 01111100b,\ - 00000000b -;; 'h' -db 00000000b,\ - 00000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10111100b,\ - 11000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'i' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00010000b,\ - 00000000b,\ - 00110000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'j' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00001000b,\ - 00001000b,\ - 00000000b,\ - 00011000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 00001000b,\ - 10010000b,\ - 01100000b,\ - 00000000b -;; 'k' -db 00000000b,\ - 00000000b,\ - 10000000b,\ - 10000000b,\ - 10000100b,\ - 10001000b,\ - 10010000b,\ - 10100000b,\ - 11000000b,\ - 10100000b,\ - 10010000b,\ - 10001000b,\ - 10000100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'l' -db 00000000b,\ - 00000000b,\ - 00110000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'm' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 11101100b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'n' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10111100b,\ - 11000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'o' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'p' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10111100b,\ - 11000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 11000010b,\ - 10111100b,\ - 10000000b,\ - 10000000b,\ - 00000000b -;; 'q' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111010b,\ - 10000110b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000110b,\ - 01111010b,\ - 00000010b,\ - 00000010b,\ - 00000000b -;; 'r' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10111100b,\ - 11000010b,\ - 10000010b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 10000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 's' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01111100b,\ - 10000010b,\ - 10000000b,\ - 01100000b,\ - 00011100b,\ - 00000010b,\ - 10000010b,\ - 01111100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 't' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 01111100b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00001100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'u' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000110b,\ - 01111010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'v' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01000100b,\ - 01000100b,\ - 00101000b,\ - 00111000b,\ - 00010000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'w' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 10010010b,\ - 01101100b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'x' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 01000100b,\ - 01000100b,\ - 00111000b,\ - 01000100b,\ - 10000010b,\ - 10000010b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; 'y' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 10000010b,\ - 01000110b,\ - 00111010b,\ - 00000010b,\ - 00000010b,\ - 00000010b,\ - 01111100b,\ - 00000000b -;; 'z' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b,\ - 00000010b,\ - 00000100b,\ - 00001000b,\ - 00010000b,\ - 00100000b,\ - 01000000b,\ - 11111110b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Open brace '{' -db 00000000b,\ - 00000000b,\ - 00111000b,\ - 01000000b,\ - 01000000b,\ - 00100000b,\ - 00100000b,\ - 01000000b,\ - 10000000b,\ - 01000000b,\ - 00100000b,\ - 00100000b,\ - 01000000b,\ - 01000000b,\ - 00111000b,\ - 00000000b -;; Vertical bar '|' -db 00000000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00010000b,\ - 00000000b -;; Close brace '}' -db 00000000b,\ - 00000000b,\ - 00111000b,\ - 00000100b,\ - 00000100b,\ - 00001000b,\ - 00001000b,\ - 00000100b,\ - 00000010b,\ - 00000100b,\ - 00001000b,\ - 00001000b,\ - 00000100b,\ - 00000100b,\ - 00111000b,\ - 00000000b -;; Tilde '~' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 01100000b,\ - 10010010b,\ - 10010010b,\ - 00001100b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b -;; Extra char for a visible 'cursor' - normally ascii 127 is 'delete' -db 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 00000000b,\ - 11111110b - -;; End of visible ascii characters - times 2048-($-$$) db 0 - diff --git a/src/kernel.c b/src/kernel.c index fe8e4f0..6bd4468 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -93,7 +93,8 @@ void main() { // Run Interactive Shell Program // TODO: Make it in another file while (1) { - printf("\e[6M\x7f\x80\n"); + for (size_t i = 0; i < 0x20; i++) drawChar(0x70+i, i, 0, FG_COLOR, BG_COLOR); + printf("\e[6M\x80"); printf("\e[6M\e[8N%s \e[2M%s \e[8M", cwd, PROMPT); char input[256]; char* inputPtr = input;