AW> How exactly would I load an ANSI Screen?
If you save it as a C style .H file from something like
TheDraw, what you get is a string of the screen attributes
for display of the file. You can then place this data'
directly in your video memory quite easily.
/*_|_| ANSBIN.CPP
_|_|_| A simple C++ class for handling ANSI picture data.
_|_|_| No warrantee or guarantee given or implied.
_|_|_| PUBLIC DOMAIN by Kurt Kuzba. (6/29/1997)*/
#include
#include
class AnsiImage {
public:
AnsiImage(char*, int, int);
void display(int, int);
private:
char *pic;
int high, wide;
};
AnsiImage::AnsiImage(char *image, int h = 25, int w = 80)
{
pic = image;
high = h;
wide = w;
}
void AnsiImage::display(int left, int top)
{
short *Dst = (short*)0xb8000000l;
short *Src = (short*)pic;
int Ln, bytewidth = wide << 1, incD = 80;
Dst += ((80 * (--top)) + (--left));
for(Ln = 0; Ln < high; Ln++)
memmove(Dst, Src, bytewidth), Dst += incD, Src += wide;
}
char *Sttng(void) // data may also be loaded from disk
{
unsigned char *STTNG = {
" \x0F \x0F.\x0E \x0Fú\x04 \x0F \x0F \x0F.\x0E \x0F \x0F \x0F \x0F"
"ú\x02 \x0F \x0F \x0F \x0F \x0F \x0Fß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
"ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70 \x0F \x0Fú\x0E \x0F"
" \x0F \x0F \x0F \x0F \x0F \x0F \x0F \x0F \x0F.\x0E \x0F \x0F \x0F"
" \x0Fú\x0D \x0Fú\x04 \x0F \x0Fß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
" \x70ú\x7E \x70 \x70 \x70ú\x7E \x70 \x70 \x70 \x70ú\x7E \x70 \x70"
" \x70ú\x7E \x70 \x70ú\x7E \x70ú\x7Eú\x7E \x70 \x70 \x70:\x7E \x70"
" \x70 \x70ú\x7Eú\x7E \x70 \x70 \x70 \x70 \x70 \x70ú\x7Eß\x70ß\x70"
"ß\x70ß\x70ß\x70ß\x70ß\x70 \x0F \x0F \x0FÜ\x70Ü\x70Ü\x70Ü\x70Ü\x70"
"Ü\x70ú\x7E \x70 \x70ú\x7E \x70ú\x7E:\x7E \x70ú\x7Eú\x7E \x70 \x70"
" \x70 \x70 \x70á\x73ç\x73à\x73s\x73s\x73:\x7E \x70ú\x7E \x70 \x70"
"ú\x7Eú\x7E \x70 \x70 \x70 \x70ú\x7E \x70 \x70:\x7E \x70ú\x7Eú\x7E"
"ú\x7E \x70 \x70 \x70ú\x7EÜ\x70Ü\x70Ü\x70Ü\x70Ü\x70Ü\x70 \x0F \x0F"
".\x0E \x0F \x0Fú\x0C \x0F \x0F \x0F \x0Fß\x70Ä\x70Ä\x70Ä\x70Ä\x70"
"Ä\x70Ä\x70¿\x70 \x70ú\x7E \x70:\x7E \x70ú\x7Eé\x73ç\x73‡\x73h\x73"
"\x73ë\x73 \x70 \x70ú\x7E \x70ú\x7Eú\x7E \x70:\x7E \x70Ú\x70Ä\x70"
"Ä\x70Ä\x70Ä\x70Ä\x70Ä\x70ß\x70 \x0F \x0F \x0F \x0F \x0F \x0Fú\x0C"
" \x0F \x0Fú\x0Eú\x04 \x0F \x0F \x0F \x0F \x0F.\x0A \x0F \x0FÛ\x09"
"Û\x09Û\x09Û\x09Û\x09Û\x09Û\x09Þ\x70Ü\x70Ü\x70Ü\x70 \x70:\x7E \x70"
"ú\x7Eú\x7Eú\x7Eú\x7E \x70 \x70ú\x7Eú\x7Eú\x7Eú\x7E \x70 \x70Ü\x70"
"Ü\x70Ü\x70Ý\x70Û\x09Û\x09Û\x09Û\x09Û\x09Û\x09Û\x09 \x0F \x0F \x0F"
"ú\x03 \x0F \x0F \x0F.\x01 \x0F \x0Fú\x0E \x0F \x0Fú\x0D \x0F \x0F"
" \x0F.\x0E \x0FÜ\x70Ü\x70Ü\x70Ü\x70Ü\x70Ü\x70 \x70Þ\x70ú\x0C \x0F"
"ú\x03 \x0F.\x0DÜ\x70Ü\x70 \x70ú\x7E \x70ú\x7E \x70 \x70ú\x7EÜ\x70"
"Ü\x70 \x0F.\x01 \x0Fú\x03 \x0FÝ\x70 \x70Ü\x70Ü\x70Ü\x70Ü\x70Ü\x70"
"Ü\x70ú\x0C \x0F \x0F \x0F \x0Fú\x0C \x0F \x0Fú\x0E \x0F \x0F \x0F"
"ú\x03 \x0F.\x01 \x0F \x0F \x0F \x0F \x0Fú\x0E \x0F \x0Fú\x03 \x0F"
"Ý\x70 \x70 \x0F.\x0E \x0Fú\x04 \x0F.\x01 \x0FÝ\x70Ü\x7CÜ\x7CÜ\x7C"
"Ü\x7CÜ\x7CÞ\x70ú\x0E.\x0D \x0F \x0Fú\x0C \x0F \x0F \x70Þ\x70 \x0F"
" \x0Fú\x03 \x0F \x0F \x0F.\x0D \x0Fú\x0E \x0F \x0F \x0F \x0F.\x0E"
" \x0Fú\x0D \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C"
" \x0C \x0F \x0Fú\x04 \x0FÜ\x70 \x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
" \x70 \x70 \x70 \x70 \x70 \x70 \x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
" \x70Ü\x70 \x0F \x0F.\x01 \x0F \x0F.\x0E \x0F \x0F \x0F \x0Fú\x04"
" \x0F \x0F.\x03 \x0F \x0F \x0F"};
return (char*)STTNG;
}
int main(void)
{
char a;
AnsiImage MyPic(Sttng(), 8, 56);
MyPic.display(10, 3);
cin >> a;
return 0;
}
> ] OOPS! I guess they DO fall off the edge of the world........
---
---------------
* Origin: *YOPS ]I[* 3.1 GIG * RA/FD/FE RADist * Milwaukee, WI (1:154/750)
|