TETMAK10.C
C source for Tetrisk, 77 lines. Raw file
// Theres A Popular Misconception Says We Havent Seen Anything Yet.
// makes file TETRISK.V10
#include <dos.h>
#include <stdio.h>
struct pal
{
char r, g, b;
} p[256];
unsigned char far *screen = MK_FP(0xA000, 0);
union REGS regs;
void main(void)
{
unsigned int i, r, g, b, x, y;
FILE *in;
FILE *out;
in = fopen("tetriskw.bmp", "rb");
out = fopen("tetrisk.v10", "wb");
regs.x.ax = 0x13;
int86(0x10, ®s, ®s);
fputs("TR", out); // Magic 'TR'.
fputc(0x01, out); // Major ver num.
fputc(0x00, out); // Minor ver num.
fputs("............", out);
fseek(in, 0x36, SEEK_SET);
for(i = 0; i < 256; i ++)
{
p[i].b = fgetc(in)/4;
p[i].g = fgetc(in)/4;
p[i].r = fgetc(in)/4;
fgetc(in);
fputc(p[i].r, out);
fputc(p[i].g, out);
fputc(p[i].b, out);
};
regs.x.ax = 0x1012;
regs.x.bx = 0;
regs.x.cx = 256;
regs.x.dx = FP_OFF(p);
_ES = FP_SEG(p);
int86(0x10, ®s, ®s);
for(y = 0; y < 200; y ++)
for(x = 0; x < 320; x ++)
{
screen[y*320+x] = fgetc(in);
fputc(screen[y*320+x], out);
};
fclose(in);
in = fopen("tetriskc.bmp", "rb");
fseek(in, 0x436, SEEK_SET);
for(y = 0; y < 200; y ++)
for(x = 0; x < 320; x ++)
{
screen[y*320+x] = fgetc(in);
fputc(screen[y*320+x], out);
};
fclose(in);
fclose(out);
};