Y'think? Here's the ENDOOM thing:
START.C
void exit(char code)
{
int i;
Handle hB800;
volatile char far* vidya = (volatile char far*)0xB8000000;
char far* b800;
for (i = exitIndex - 1; i >= 0; i--)
exitProcs[i]();
if (panicStr)
WriteString(panicStr);
else
{
if (ResCheck(RES_VOCAB, 0xB8))
{
hB800 = ResLoad(RES_VOCAB, 0xB8);
b800 = (char far*)*hB800;
for (i = 0; i < 80*25*2; i++)
*vidya++ = *b800++;
gotoxy(23, 0);
//Consideration: add four bytes to the end of the picture
//data with the quitStr and prompt coordinates.
}
else if (quitStr)
WriteString(quitStr);
}
ExitFromC(code);
}
STARTASM.S
gotoxy proc row: byte, col: byte
mov ah, 2
xor bh, bh
mov dh, row
xor dl, col
int 10h
ret
gotoxy endp
START.H
void gotoxy(char, char);
And then you just drop your standard textmode screen dump, 4000 bytes plus an 86 00 resource cookie in the front, in your game as 184.VOC and quit the game. And then you realize DOSBox is set up to quit afterwards and you slap yourself on the forehead.