[font] VGA font updates

This commit is contained in:
Kevin Lange 2011-04-15 18:42:31 -05:00
parent 7cf04ad13e
commit d9a6c37e17
3 changed files with 419 additions and 3 deletions

View File

@ -2,7 +2,7 @@
void kernel_halt() {
settextcolor(4,15);
kprintf("\n \203 System Halted!\n\n");
kprintf("\n \x13 System Halted!\n\n");
while (1) {
__asm__ __volatile__ ("cli");

View File

@ -6,6 +6,422 @@
#include <system.h>
uint8_t number_font[][12] = {
{ b(00000000),
b(00000000),
b(00000000),
b(00000000), /* 4 */
b(00000000),
b(00000000),
b(00000000),
b(00000000), /* 8 */
b(00000000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(01111110),
b(11000011),
b(10000001), /* 4 */
b(10100101),
b(10000001),
b(10111101),
b(10011001), /* 8 */
b(11000011),
b(01111110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(01111110),
b(11111111),
b(11111111), /* 4 */
b(11011011),
b(11111111),
b(11000011),
b(11100111), /* 8 */
b(11111111),
b(01111110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(01000100),
b(11101110), /* 4 */
b(11111110),
b(11111110),
b(11111110),
b(01111100), /* 8 */
b(00111000),
b(00010000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00010000),
b(00111000),
b(01111100), /* 4 */
b(11111110),
b(11111110),
b(01111100),
b(00111000), /* 8 */
b(00010000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011000),
b(00111100),
b(00111100), /* 4 */
b(11111111),
b(11100111),
b(11100111),
b(00011000), /* 8 */
b(00011000),
b(01111110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011000),
b(00111100),
b(01111110), /* 4 */
b(11111111),
b(11111111),
b(01111110),
b(00011000), /* 8 */
b(00011000),
b(01111110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),
b(00000000), /* 4 */
b(00111100),
b(01111110),
b(01111110),
b(00111100), /* 8 */
b(00000000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(11111111),
b(11111111),
b(11111111),
b(11111111), /* 4 */
b(11000011),
b(10000001),
b(10000001),
b(11000011), /* 8 */
b(11111111),
b(11111111),
b(11111111),
b(11111111) /* 01 */
},
{ b(00000000),
b(00000000),
b(00111100),
b(01111110), /* 4 */
b(01100110),
b(01000010),
b(01000010),
b(01100110), /* 8 */
b(01111110),
b(00111100),
b(00000000),
b(00000000) /* 12 */
},
{ b(11111111),
b(11111111),
b(11000011),
b(10000001), /* 4 */
b(10011001),
b(10111101),
b(10111101),
b(10011001), /* 8 */
b(10000001),
b(11000011),
b(11111111),
b(11111111) /* 01 */
},
{ b(00000000),
b(00111110),
b(00001110),
b(00111010), /* 4 */
b(01110010),
b(11111000),
b(11001100),
b(11001100), /* 8 */
b(11001100),
b(01111000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00111100),
b(01100110),
b(01100110), /* 4 */
b(01100110),
b(00111100),
b(00011000),
b(01111110), /* 8 */
b(00011000),
b(00011000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011111),
b(00011001),
b(00011001), /* 4 */
b(00011111),
b(00011000),
b(00011000),
b(01111000), /* 8 */
b(11111000),
b(01110000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(01111111),
b(01100011),
b(01111111), /* 4 */
b(01100011),
b(01100011),
b(01100011),
b(01100111), /* 8 */
b(11100111),
b(11100110),
b(11000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00011000),
b(11011011), /* 4 */
b(01111110),
b(11100111),
b(11100111),
b(01111110), /* 8 */
b(11011011),
b(00011000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(10000000),
b(11000000),
b(11100000), /* 4 */
b(11111000),
b(11111110),
b(11111000),
b(11100000), /* 8 */
b(11000000),
b(10000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000010),
b(00000110),
b(00001110), /* 4 */
b(00111110),
b(11111110),
b(00111110),
b(00001110), /* 8 */
b(00000110),
b(00000010),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011000),
b(00111100),
b(01111110), /* 4 */
b(00011000),
b(00011000),
b(00011000),
b(01111110), /* 8 */
b(00111100),
b(00011000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(01100110),
b(01100110),
b(01100110), /* 4 */
b(01100110),
b(01100110),
b(00000000),
b(00000000), /* 8 */
b(01100110),
b(01100110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(01111111),
b(11011011),
b(11011011), /* 4 */
b(11011011),
b(01111011),
b(00011011),
b(00011011), /* 8 */
b(00011011),
b(00011011),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(01111110),
b(01100011),
b(00110000), /* 4 */
b(00111100),
b(01100110),
b(01100110),
b(00111100), /* 8 */
b(00001100),
b(11000110),
b(01111110),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),
b(00000000), /* 4 */
b(00000000),
b(00000000),
b(00000000),
b(11111110), /* 8 */
b(11111110),
b(11111110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011000),
b(00111100),
b(01111110), /* 4 */
b(00011000),
b(00011000),
b(00011000),
b(01111110), /* 8 */
b(00111100),
b(00011000),
b(01111110),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011000),
b(00111100),
b(01111110), /* 4 */
b(00011000),
b(00011000),
b(00011000),
b(00011000), /* 8 */
b(00011000),
b(00011000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00011000),
b(00011000),
b(00011000), /* 4 */
b(00011000),
b(00011000),
b(00011000),
b(01111110), /* 8 */
b(00111100),
b(00011000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),
b(00011000), /* 4 */
b(00001100),
b(11111110),
b(00001100),
b(00011000), /* 8 */
b(00000000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),
b(00110000), /* 4 */
b(01100000),
b(11111110),
b(01100000),
b(00110000), /* 8 */
b(00000000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),
b(00000000), /* 4 */
b(11000000),
b(11000000),
b(11111110),
b(00000000), /* 8 */
b(00000000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),
b(00100100), /* 4 */
b(01100110),
b(11111111),
b(01100110),
b(00100100), /* 8 */
b(00000000),
b(00000000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00010000),
b(00010000), /* 4 */
b(00111000),
b(00111000),
b(01111100),
b(01111100), /* 8 */
b(11111110),
b(11111110),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(11111110),
b(11111110), /* 4 */
b(01111100),
b(01111100),
b(00111000),
b(00111000), /* 8 */
b(00010000),
b(00010000),
b(00000000),
b(00000000) /* 12 */
},
{ b(00000000),
b(00000000),
b(00000000),

View File

@ -192,10 +192,10 @@ bochs_write_char(
uint32_t fg,
uint32_t bg
) {
if (val < 0x20 || val > 131) {
if (val > 131) {
val = ' ';
}
uint8_t * c = number_font[val - 0x20];
uint8_t * c = number_font[val];
for (uint8_t i = 0; i < 12; ++i) {
if (c[i] & 0x80) { bochs_set_point(x,y+i,fg); } else { bochs_set_point(x,y+i,bg); }
if (c[i] & 0x40) { bochs_set_point(x+1,y+i,fg); } else { bochs_set_point(x+1,y+i,bg); }