+/* text.c
+ * Text console checksum and rendering functions
+ * NetWatch system management mode administration console
+ *
+ * Copyright (c) 2008 Jacob Potter and Joshua Wise. All rights reserved.
+ * This program is free software; you can redistribute and/or modify it under
+ * the terms found in the file LICENSE in the root of this source tree.
+ *
+ */
+
#include <io.h>
#include <text.h>
#include <paging.h>
unsigned int cx, cy;
unsigned char ch, at, font;
smram_state_t old_state = smram_save_state();
-
+/*
outputf("text_render: (%d,%d),(%d,%d)", x, y, w, h);
-
+*/
smram_aseg_set_state(SMRAM_ASEG_SMMCODE);
for (cy = y; cy < (y + h); cy++)
{
font = _font[ch * 32 + cy % 16];
for (cx = x; cx < (x + w); cx++)
{
- unsigned int pos = cx % 9;
+ unsigned int pos = cx % 8;
if (pos == 0)
{
- textx = cx / 9;
+ textx = cx / 8;
ch = video[texty * 160 + textx * 2];
at = video[texty * 160 + textx * 2 + 1];
font = _font[ch * 32 + cy % 16];
uint32_t text_checksum(int x, int y, int w, int h)
{
unsigned char *video = (unsigned char *)vga_base();
- unsigned int textx = x / 9;
+ unsigned int textx = x / 8;
unsigned int texty = y / 16;
int cx, cy;
uint32_t cksm = 0;
{
cx = x;
texty = cy / 16;
- textx = cx / 9;
- cksm = crc32(video + texty * 160 + textx * 2, (w / 9) * 2 + 2, cksm); /* Err on the side of 'too many'. */
+ textx = cx / 8;
+ cksm = crc32(video + texty * 160 + textx * 2, (w / 8) * 2 + 2, cksm); /* Err on the side of 'too many'. */
}
smram_restore_state(old_state);