TIP: Click on subject to list as thread! ANSI
echo: c_plusplus
to: JO GERAERTS
from: KURT KUZBA
date: 1998-04-02 05:51:00
subject: Ansi files

JG>   How can I use ANSi files in C++.
JG>   They 've got to be linked into the executable.
   If they are going to be text format, then they will need to
   be put into a function which returns the pointer to the
   string literal, which must be coded into the function.
   They may then be displayed via stdout() assuming ANSI.SYS
   is loaded, or interpreted to the proper color, cursor, and
   character commands for display.
   If they are stored as binary data, try this.
/*_|_|   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)
{
   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;
}
> ] What do you mean, "There is more to life than computers."?..
---
---------------
* Origin: *YOPS ]I[* 8.4 GIG * RA/FD/FE * Milwaukee, WI (1:154/750)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.