\r
void VL_LoadPalFile(const char *filename, byte *palette)\r
{\r
- VL_LoadPalFilewithoffset(filename, palette, 0);\r
+ int fd;\r
+\r
+ fd = open(filename,O_RDONLY|O_BINARY);\r
+ if (fd >= 0) {\r
+ word i;\r
+\r
+ read(fd,palette, PAL_SIZE);\r
+ close(fd);\r
+\r
+ vga_palette_lseek(0);\r
+ for (i=0;i < 256;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
+ }\r
}\r
\r
void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o)\r
\r
fd = open(filename,O_RDONLY|O_BINARY);\r
if (fd >= 0) {\r
+ word i;\r
+\r
read(fd,palette, PAL_SIZE);\r
close(fd);\r
\r
- VL_UpdatePaletteWrite(palette, o);\r
+ vga_palette_lseek(o);\r
+ for (i=o;i < 256-o;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
}\r
}\r
\r
-void VL_UpdatePaletteWrite(byte *palette, word o)\r
-{\r
- word i;\r
- vga_palette_lseek(/*1+*/o);\r
- for (i=o;i < 256-o;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
-}\r
\r
void\r
modexSavePalFile(char *filename, byte *pal) {\r
}\r
}\r
\r
-void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, const byte *str)\r
+void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
{\r
word s, o, w;\r
- word x_draw;\r
+ word x_draw = x;\r
//word addr = (word) romFontsData.l;\r
- word addrq;\r
- word addrr;\r
+ word addrq = (page->stridew) * y + (x / 4) + ((word)page->data);\r
+ word addrr = addrq;\r
byte c;\r
\r
- x-=page->tlx; y-=page->tly;\r
- x_draw = x/4;\r
- addrq = (page->stridew) * y + (word)(x_draw) +\r
- ((word)page->data);\r
- addrr = addrq;\r
s=romFonts[t].seg;\r
o=romFonts[t].off;\r
w=romFonts[t].charSize;\r
\r
for(; *str != '\0'; str++)\r
{\r
- c = (*str);\r
- if(c=='\n')\r
- {\r
- x = x_draw;\r
- romFontsData.chw = 0;\r
- addrq += (page->stridew) * 8;\r
- addrr = addrq;\r
- y += 8;\r
- continue;\r
- }\r
+ c = (*str);\r
+ if(c=='\n')\r
+ {\r
+ x = x_draw;\r
+ romFontsData.chw = 0;\r
+ addrq += (page->stridew) * 8;\r
+ addrr = addrq;\r
+ y += 8;\r
+ continue;\r
+ }\r
\r
// load the character into romFontsData.l\r
// no need for inline assembly!\r
x_draw += 8; /* track X for edge of screen */\r
addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */\r
}\r
- //printf("print xy:%dx%d tlxy:%dx%d\n", x, y, page->tlx, page->tly);\r
}\r
\r
void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
int palq=(mult)*TILEWH;\r
int palcol=0;\r
int palx, paly;\r
- for(paly=TILEWH*8; paly<palq+TILEWH*8; paly+=mult){\r
- for(palx=TILEWH*12; palx<palq+TILEWH*12; palx+=mult){\r
+ for(paly=0; paly<palq; paly+=mult){\r
+ for(palx=0; palx<palq; palx+=mult){\r
modexClearRegion(pee, palx+TILEWH, paly+TILEWH, mult, mult, palcol);\r
palcol++;\r
}\r