HF> display ansis' in the .BIN file format directly to memory
hf>.....
This is fairly simple, involving only moving the data to the
screen memory en masse.
// ANS_BIN.CPP PUBLIC DOMAIN by Kurt Kuzba. (4/29/1997)
// Demonstration of using binary ANSI images in C++ programs.
// No warrantee or guarantee is given or implied.
#include
#include // needed for memmove()
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)
// Default image size is 80x25 for full screen images
{
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)
{
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;
}
---
> ] Sorry. I left my taglines in my other offline reader.......
---
---------------
* Origin: *YOPS ]I[* 3.1 GIG * RA/FD/FE RADist * Milwaukee, WI (1:154/750)
|