Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

progress with LINUX c vga.h

0 views
Skip to first unread message

ericmatteson...@hotmail.com

unread,
Sep 5, 2006, 7:01:25 PM9/5/06
to
Long before XWindows was invented
LINUX invented vga.h simple graphics pixel
interface.
vga.h is both very simple and very powerful
and draws graphics pixels without needing
the complexity of XWindows or Windows
programming.
vga.h functions including vga_getkey()
are called by the user application program because
LINUX simple vga.h does not require
callbacks and is not event driven.
the three most important vga.h functions are
..
int vga_getkey()
returns 0 if no key has been pressed
scince last call. If a key has been pressed it will
return its ascii value for most normal keys.
Special keys like arrows return three nonzero numbers
in a row and home and end and keys like them return
four non-zero values in a row.
returns 0 again after finished returning all of that key.
most normal keys return one non-zero number.
May be anded with 255 to control range of result.
..
..
void vga_setcolor(int atmost15);
sets the internal color variable to the
argument. Argument should be between 0 and 15 for
standard G640x480x16 screen.
(Just 0 or 1 for G640x480x2 high speed monochrome screen.)
..
void vga_drawpixel(int x,int y);
sets the screen point (x,y) to the
color in the internal color variable that was
previously set by vga_setcolor(
0 <= x <= 639
0 <= y <= 479
the example program below is intended to test vga.h
through a simple interemediate header called zackvga.h
and uses zackmain instead of main.
the simplest version of zackvga.h
is used to connect to vga.h
and a much more complex version
of zackvga.h has to be used to
provide vga.h services when using XWindows.
programming example is next */
// this is the first line of programming
// this is zackvga.h for real vga.h
// zackvga.hga on floppy or zackvga.h on hard drive
// zackvga.h is to include the next three includes for real vga.h
// #include<vga.h>
// #include<stdio.h>
// #include <dirent.h>
// int zackmain(int argd,char** argsa);
// int main(int argdz,char** argsaz)
// {
// int kdoc965;
// kdoc965 = zackmain(argdz,argsaz);
// return kdoc965;
// }
// end of zackvga.h for real vga.h
// .
// .
// .
// .
// vgview05.c is used to view plain uncompressed
// dib bitmap files *.bmp
// beginning of vgview05.c
#include "zackvga.h"
// vgview05.c uses zackmain instead of main
// vgview05.c uses zackvga.h instead of direct vga.h
// gcc -Wall vgview05.c -lvga -o vgview05.out
// for real vga.h
// gcc -Wall vgview05.c -L/usr/X11R6/lib -lX11 -o vgview05.out
// if xwindows version of zackvga.h is used
// ./vgview05.out
// after compiling
// Copyright C 2006 by Eric Matteson
// permission is granted to copy
// this SOURCE CODE vgview05.c
// and to publish it on the Internet.
// This material may be used at
// least for non profit use.
// This program is not valid without source code.
// Computer users can enforce the open source requirement
// by refusing to use any program that does not have
// source code distributed with it.
// The reccommended proceedure is to distribute this
// program in source code form only and seperately
// compile it on each
// computer that it is to run on.
// ---------------------
// nzlibkey = 0 for doskey 1 for XLookupString
const int nzlibkey = 0;
// xlxs 02 one next
// const int xlxsdim = 15;
// -----------------------
const int xxsv = 50;
const int xsv = 62;
const int thdimtran = 13;
const int shrinkth[] = { 14,80,140,276,564,662 };
const int bigthre[] = { 10,40,60,75,120,180,
250,360,450,550,650,740 };
const int thbigtran[] = {0,1,4,2,5,3,9,
12,10,14,13,11,15 };
const int rgbeight[] = { 55,60,45,70,180,192,160,208 };
const int thsixsev[] = { 0,2,3,7,10,11,15 };
const int sevbig[] = { 0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,
0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,
1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,
1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1 };
const int wporand[] = { 128,64,32,16,8,4,2,1,
1,2,4,8,16,32,64,128,
127,191,223,239,247,251,253,254,
254,253,251,247,239,223,191,127 };
// size of bab[] needs to be same as value of bigbuffsize
const int bigbuffsize = 262144;
char bab[262144];
// ---------------------------------------
int jxwkeyhold[512];
int iiac[80];
int saveapal[8];
char* caap[4];
char cdraw0[65536];
char cdraw1[65536];
char cdraw2[65536];
char cdraw3[65536];
char bar[92160];
char caf[4096];
char can[200];
// ---------------------------------------------
// char xlxsbuff[16384];
char prebug[180];
char prebud[180];
char diagaap[16384];
int itarget,prevmode,jkeyctr,djkey,rjkey;
int cbmask,scrdepth;
int scnum,cwid,cght,sud,ckey,xolop,xilop,xchoose;
int lmoux,lmouy,fourdirpen,seadirallow,seadirlimit;
int xlkount;
int aprevmode,runmode,falkenx,falkeny;
char sdirch;
// ---------------------
DIR* xfourdp;
struct dirent *xfourep;
// ---------------------
// Display* lpdis;
// Window wix;
// XEvent report;
// GC agc,wgc,bgc,xgc,ygc,zgc;
// XSizeHints* rsizehints;
// XWMHints* rwmhints;
// XClassHint* rclasshints;
// Pixmap tempmap0;
// Pixmap tempmap1;
// Pixmap tempmap2;
// Pixmap tempmap3;
// Pixmap rempmap;
// xlxs 03 five next
// KeySym xlxsks;
// XComposeStatus xlxscomp;
// ------------------------ begin declarations
// int XLookupString(XKeyEvent* ,char* ,int,KeySym* ,
// XComposeStatus* );
// ---------------------------------------------
int divmodi(int inumer,int idenom,int nzirem);
int onexwchr(int xwcpos,char xwclist[]);
void chrfroms(int chfstart,int chfsize,char xvclist[],
const char* xvslist);
int onexwdig(int xwdpos,char xwdlist[]);
int ixreada(int iarpos,int iarwid,int iarbase,
int nziarnext,char iarlist[]);
int revercram(int rcstart,int rcmany,char revdat[]);
void linuwrn(int lwrnpos,int lwrnwid,int lwrnbase,
char lwrt[],int lwrf);
void uncram(int ucstart,int ucmany,char ucdat[],
int ucfrom);
int ombrlen(int ombrloffset,int ombmaxlen,
char ombuksize[]);
int nzlinedone(int lkbc[],char reekline[]);
int redcst(int llrs,int llrw,int llrbase,
const char* llccs);
// void bitpoke(char btt[],int hds,int twi,int bx,
// int by,int pznorm,int bvbw);
void bitwrt(char bde[],int ski,int wwi,int wx,int wy,
int zltr,int wwvb);
void printstr(char psb[],int psw,int pst,char psf[],
int pstrw,char pstr[]);
int lscale(int lscabc[]);
int lredoffs(int lrosbc[]);
int lctsize(int lctsbc[]);
int lpixperb(int lpixprbc[]);
int lbytespr(int lbprbc[],int nzlbprem);
int lbreadf(int lbreadbc[],char lbrecord[],int lbreadw,
FILE* lbreadh);
int nzreadmbhdr(int nzrhbc[],char nzrhrecord[],
char rhctble[],FILE* nzrhh);
int xwtscroll(int xscbc[],char xscsingle[],
char xscgroup[]);
void zackreadbw(int rpbc[],char rprec[],
char rpct[],char rpbig[],FILE* rph);
void getpine(int gpbc[],char gprec[],char gpct[],
char gpbig[],FILE* gph);
int nonbambi(char** iibplane,int nbbc[],char nbbig[]);
int putpine(char** iirplane,int irplane[],
int vpthresh[],char vpbig[]);
int onebumpw(char** ijplane,int onbbc[],
char ombrecord[],char ombgbig[]);
int twobumpw(char** tjple,int tmbc[],char tmbr[],
char tbig[],char tbf[]);
int twobuz(char** zpl,int zbc[],char zrc[],char zb[],
char zf[],char zn[]);
int fourbump(char** aap,int ac[],char ar[],char ab[],
char af[],char an[]);
char twofromten(int rawenine);
void fonthfill(char fhf[]);
// ----------------------------------------------------
void ilinemake(int* iixt,char* xxdd);
void iktmany(int* imxt);
int nzextcmp(char* uncfn,char* ecright);
int iidoskey(int kkll,int kshiftb,int ixkeyhold[],
const char* klinuxcm);
// --------------------------------------------------
void zvgbine(int zvgbase,int zvgbwid,char** zvgc);
void zgapage(int zmgbw,int zmgh,char** zgslater);
int gagetch(int nzwait);
// ----------------------------------------------------
// int gcbw(int gcdepth,int gca);
// void getgc(Window wigc,GC* wrgc,int gsdepth,int zbnzw);
// *wrgc will have to be freed later
// Window makexw(XSizeHints* sizehints,XWMHints* wmhints,
// XClassHint* classhints);
// ----------------------------------------------------
int zackmain(int argd,char** argsa)
{
int zandtogm;
char* argufn;
char* adn = NULL;
argufn = NULL;
lmoux=131071;
lmouy=131071;
fourdirpen=0;
sud=0;
while(sud < 200)
{
can[sud]='\40';
sud=sud+1;
}
// reclear depth = 1
sud=(int)argufn;
linuwrn(2,8,16,can,sud);
can[53]='\15';
can[54]='\12';
// 155 terminal diagnostic 156
// fwrite(can,1,80,stdout);
caap[0] = &cdraw0[0];
caap[1] = &cdraw1[0];
caap[2] = &cdraw2[0];
caap[3] = &cdraw3[0];
sud=(int)(caap[0]);
linuwrn(2,8,16,can,sud);
sud=(int)(caap[1]);
linuwrn(12,8,16,can,sud);
sud=(int)(caap[2]);
linuwrn(22,8,16,can,sud);
sud=(int)(caap[3]);
linuwrn(32,8,16,can,sud);
can[53]='\15';
can[54]='\12';
// 171 terminal diagnostic 172 exit 173
// fwrite(can,1,80,stdout);
sud=0;
while(sud < 200)
{
can[sud]='\40';
sud=sud+1;
}
// reclear depth = 1
sud=41;
while(sud < 46)
{
iiac[sud]=0;
sud=sud+1;
}
if(argd == 2)
{
argufn = *(argsa + 1);
xilop=0;
sud=ombrlen(0,0,argufn);
if((sud > 4)&&(sud < 40))
{
while(xilop < sud)
{
can[160+xilop] = *(argufn + xilop);
can[120+xilop] = *(argufn + xilop);
// depth = 4
can[80+xilop] = *(argufn + xilop);
can[40+xilop] = *(argufn + xilop);
can[xilop] = *(argufn + xilop);
xilop=xilop+1;
}
iiac[45]=1;
iiac[44]=1;
}
}
scrdepth=24;
// cut depth = 1
// lpdis = XOpenDisplay(adn);
// scnum=DefaultScreen(lpdis);
// scrdepth=DefaultDepth(lpdis,scnum);
iiac[6]=2;
iiac[7]=608;
iiac[29]=378;
vga_init();
aprevmode=vga_getcurrentmode();
runmode=G640x480x16;
if(vga_hasmode(runmode) != 0)
{
vga_setmode(runmode);
// line 265 need pallette
saveapal[6]=0;
saveapal[7]=42;
saveapal[2]=21;
saveapal[3]=63;
// vga_getpalette(2,saveapal+4,saveapal+7,saveapal+6);
// vga_getpalette(9,saveapal+5,saveapal+2,saveapal+3);
saveapal[0]=(saveapal[6]+saveapal[2]) >> 1;
saveapal[1]=(saveapal[7]+saveapal[3]) >> 1;
// vga_setpalette(0,*(saveapal+0),*(saveapal+0),*(saveapal+0));
// vga_setpalette(1,*(saveapal+0),*(saveapal+0),*(saveapal+1));
// vga_setpalette(2,*(saveapal+0),*(saveapal+1),*(saveapal+0));
// vga_setpalette(3,*(saveapal+0),*(saveapal+1),*(saveapal+1));
// vga_setpalette(4,*(saveapal+1),*(saveapal+0),*(saveapal+0));
// vga_setpalette(5,*(saveapal+1),*(saveapal+0),*(saveapal+1));
// vga_setpalette(6,*(saveapal+1),*(saveapal+1),*(saveapal+0));
// vga_setpalette(7,*(saveapal+1),*(saveapal+1),*(saveapal+1));
// vga_setpalette(8,*(saveapal+2),*(saveapal+2),*(saveapal+2));
// vga_setpalette(9,*(saveapal+2),*(saveapal+2),*(saveapal+3));
// vga_setpalette(10,*(saveapal+2),*(saveapal+3),*(saveapal+2));
// vga_setpalette(11,*(saveapal+2),*(saveapal+3),*(saveapal+3));
// vga_setpalette(12,*(saveapal+3),*(saveapal+2),*(saveapal+2));
// vga_setpalette(13,*(saveapal+3),*(saveapal+2),*(saveapal+3));
// vga_setpalette(14,*(saveapal+3),*(saveapal+3),*(saveapal+2));
// vga_setpalette(15,*(saveapal+3),*(saveapal+3),*(saveapal+3));
// line 290 end palette
// *** ERROR *** unable to fix palette on fixed pallette cards
iiac[7]=((vga_getxdim() + 7) >> 3) * 8;
iiac[29]=vga_getydim();
falkenx=iiac[7];
falkeny=iiac[29];
iiac[30]=11829;
iiac[25]=0;
iiac[28]=5;
iiac[34]=160;
iiac[32]=scrdepth;
sud=0;
iktmany(jxwkeyhold);
xilop=fourbump(caap,iiac,bar,bab,caf,can);
zgapage((iiac[7]),(iiac[29]),caap);
// ----------------------------------------------
// wix = makexw(rsizehints,rwmhints,rclasshints);
// ----------------------------------------
// XSetWMProperties(lpdis,wix,0,0,argsa,argd,rsizehints,
// rwmhints,rclasshints);
// ----------------------------------------------------
// getgc(wix,&bgc,scrdepth,0);
// getgc(wix,&wgc,scrdepth,1);
// getgc(wix,&xgc,scrdepth,17);
// getgc(wix,&ygc,scrdepth,18);
// getgc(wix,&zgc,scrdepth,19);
// getgc(wix,&agc,scrdepth,20);
// XMapWindow(lpdis,wix);
// cut cut
// loop is next depth = 1
xolop=0;
while(xolop == 0)
{
ckey=gagetch(1);
// XNextEvent(lpdis,&report);
// depth = 3
// if((report.type == KeyRelease)&&(nzlibkey == 0))
// {
// if((int)report.xkey.keycode==xxsv)sud=0;
// if((int)report.xkey.keycode==xsv)sud=0;
// }
// if(report.type == KeyPress)
// {
// zandtogm=1;
// if((int)report.xkey.keycode==xxsv)zandtogm=0;
// if((int)report.xkey.keycode==xsv)zandtogm=0;
// if(nzlibkey > 0)zandtogm=1;
// if(zandtogm == 0)sud=1;
// if(zandtogm == 1)
// {
// xilop == 0 for normal
xilop=0;
// infinite loop with no key ckey=1048576;
rjkey=1048576;
// xlkount=0-1;
// if(nzlibkey == 0)
// {
// ckey=report.xkey.keycode;
rjkey=iidoskey(ckey,sud,jxwkeyhold,"v");
iiac[26]=rjkey;
iiac[27]=ckey;
iiac[7]=((vga_getxdim() + 7) >> 3) * 8;
iiac[29]=vga_getydim();
if(((iiac[7]) < falkenx)||((iiac[29]) < falkeny))
{
falkeny=0;
while(falkeny < 480)
{
falkenx=0;
while(falkenx < 640)
{
vga_setcolor(12);
vga_drawpixel(falkenx,falkeny);
falkenx=falkenx+1;
}
falkeny=falkeny+1;
}
}
falkenx=iiac[7];
falkeny=iiac[29];
if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
zgapage((iiac[7]),(iiac[29]),caap);
// high speed print to screen top monochrome high speed 2
// rempmap = XCreatePixmap(lpdis,wix,(iiac[7]),(iiac[29]),
// scrdepth);
// tempmap3 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw3,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,0),scrdepth);
// fix top
// if((iiac[6]) > 1)
// {
// XCopyArea(lpdis,tempmap3,rempmap,agc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// }
// if((iiac[6]) <= 1)
// {
// XCopyArea(lpdis,tempmap3,rempmap,bgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// }
// fix bottom
// if((iiac[6]) > 1)
// {
// tempmap2 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw2,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,12),scrdepth);
// XCopyArea(lpdis,tempmap2,rempmap,xgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// tempmap1 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw1,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,12),scrdepth);
// XCopyArea(lpdis,tempmap1,rempmap,ygc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// tempmap0 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw0,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,12),scrdepth);
// XCopyArea(lpdis,tempmap0,rempmap,zgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// }
// XCopyArea(lpdis,rempmap,wix,wgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// if((iiac[6]) > 1)
// {
// XFreePixmap(lpdis,tempmap0);
// XFreePixmap(lpdis,tempmap1);
// XFreePixmap(lpdis,tempmap2);
// }
// XFreePixmap(lpdis,tempmap3);
// XFreePixmap(lpdis,rempmap);
// print page to screen bottom high speed
if((iiac[30]) == 11832)xolop = 1;
// }
}
// end of keypress or while depth=2
}
// depth = 1
// cut starting 379 583-379
vga_setmode(aprevmode);
return 0;
}
// depth = 0
// end of main
// -------------- 583
// -------------------------------485 load gcbw here
// ----------------------------------------------486
int gcbw(int gcdepth,int gca)
{
int gcbr;
// gca is 0 12 14 15
// colors black darkgrey grey white
// gca is 4 2 1 R B G
// large plane masks 16 allplanes
gcbr=0;
if(gcdepth == 2)
{
if(gca == 0)gcbr=0;
if(gca == 1)gcbr=1;
if(gca == 2)gcbr=1;
if(gca == 4)gcbr=1;
if(gca == 12)gcbr=0;
if(gca == 14)gcbr=1;
if(gca == 15)gcbr=1;
if(gca == 16)gcbr=1;
}
if(gcdepth == 4)
{
if(gca == 0)gcbr=0;
if(gca == 1)gcbr=1;
if(gca == 2)gcbr=2;
if(gca == 4)gcbr=4;
if(gca == 12)gcbr=0;
if(gca == 14)gcbr=7;
if(gca == 15)gcbr=15;
if(gca == 16)gcbr=16;
}
if(gcdepth == 8)
{
if(gca == 0)gcbr=0;
if(gca == 1)gcbr=2;
if(gca == 2)gcbr=20;
if(gca == 4)gcbr=160;
if(gca == 12)gcbr=0;
if(gca == 14)gcbr=73;
if(gca == 15)gcbr=255;
if(gca == 16)gcbr=255;
}
if(gcdepth == 24)
{
if((gca >= 1)&&(gca <= 4))
{
gcbr=65793*redcst(1,8,2,"00111100");
}
if(gca == 1)gcbr=gcbr+redcst(1,8,2,"01000010");
if(gca == 2)gcbr=gcbr+(256 * redcst(1,8,2,"01000010"));
if(gca == 4)gcbr=gcbr+(65536*redcst(1,8,2,"01000010"));
if(gca == 0)gcbr=0;
// if(gca == 12)gcbr=4144959;
// if(gca == 12)gcbr=3947580;
if(gca == 12)gcbr=0;
// if(gca == 14)gcbr=8355711;
// 14 to 65793 * (127 or 126)
if(gca == 14)gcbr=65793 * redcst(1,8,2,"10000001");
if(gca == 15)gcbr=16777215;
if(gca == 16)gcbr=16777215;
}
if(gcdepth == 32)
{
gcbr=0;
if((gca >= 1)&&(gca <= 4))
{
gcbr=2097152+1024;
gcbr=gcbr*redcst(1,11,2,"00111111100");
gcbr=gcbr+redcst(1,10,2,"0011111100");
}
if(gca == 1)gcbr=gcbr+redcst(1,10,2,"0100000010");
if(gca == 2)gcbr=gcbr+(1024 * redcst(1,11,2,
"01000000010"));
if(gca == 4)gcbr=gcbr+(2097152 * redcst(1,11,2,
"01000000010"));
if(gca == 0)gcbr=0;
if(gca == 12)gcbr=0;
if(gca == 14)
{
gcbr=2097152+1024;
gcbr=gcbr*redcst(1,11,2,"10000000001");
gcbr=gcbr+redcst(1,10,2,"1000000001");
}
if(gca == 15)gcbr=0-1;
if(gca == 16)gcbr=0-1;
}
return gcbr;
}
// void getgc(Window wigc,GC* wrgc,int gsdepth,int azbnzw)
// {
// unsigned long vgcmask=0;
// XGCValues vgcvalues;
// int zbnzw;
// unsigned int gclw=1;
// int linestyle=LineSolid;
// int capstyle=CapRound;
// int joinstyle=JoinRound;
// int fillstyle=FillSolid;
// zbnzw=65;
// if(azbnzw == 1)zbnzw=1;
// if(azbnzw == 0)zbnzw=0;
// if(azbnzw == 17)zbnzw=17;
// if(azbnzw == 18)zbnzw=18;
// if(azbnzw == 19)zbnzw=19;
// if(azbnzw == 20)zbnzw=20;
// *wrgc=XCreateGC(lpdis,wigc,vgcmask,&vgcvalues);
// XSetLineAttributes(lpdis,*wrgc,gclw,linestyle,capstyle,
// joinstyle);
// XSetBackground(lpdis,*wrgc,WhitePixel(lpdis,scnum));
// XSetFillStyle(lpdis,*wrgc,fillstyle);
// if(zbnzw == 0)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 0)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,15));
// if(zbnzw == 1)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,15));
// if(zbnzw == 1)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 17)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 17)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,4+12));
// if(zbnzw == 18)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 18)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,2+14));
// if(zbnzw == 19)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 19)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,1+15));
// if(zbnzw == 20)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 20)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,14+2));
// if(zbnzw == 0)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,16));
// if(zbnzw == 1)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,16));
// if(zbnzw == 17)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,4));
// if(zbnzw == 18)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,2));
// if(zbnzw == 19)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,1));
// if(zbnzw == 20)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,14));
// }
// end of getgc(Window,GC*,int);
// Window makexw(XSizeHints* sizehints,XWMHints* wmhints,
// XClassHint* classhints)
// {
// int sbmask;
// Window trix;
// trix=XCreateSimpleWindow(lpdis,RootWindow(lpdis,scnum),
// 0,0,608,378,4,
// BlackPixel(lpdis,scnum),WhitePixel(lpdis,scnum));
// sud=0;
// sizehints = XAllocSizeHints();
// wmhints = XAllocWMHints();
// classhints = XAllocClassHint();
// (*(wmhints)).initial_state=NormalState;
// (*(wmhints)).input = True;
// (*(wmhints)).icon_pixmap = 0;
// (*(wmhints)).flags = StateHint | InputHint ;
// (*(classhints)).res_name = 0;
// (*(classhints)).res_class = "Basicwin";
// (*(sizehints)).flags = PPosition | PSize | PMinSize ;
// (*(sizehints)).min_width = 592;
// (*(sizehints)).min_height = 334;
// sbmask = 0;
// sbmask = sbmask | KeyPressMask;
// sbmask = sbmask | KeyReleaseMask;
// sbmask = sbmask | ExposureMask;
// sbmask = sbmask | StructureNotifyMask;
// sbmask = sbmask | ButtonPressMask;
// XSelectInput(lpdis,trix,sbmask);
// return trix;
// }
// ------------- bottom of windowmake
void ilinemake(int* iixt,char* xxdd)
{
int xsspos,xssmany,xssbase,xssctr,xsssub,xsstw;
int xssterm,xtssub;
// xsspos 999 xssbase-1 F xssmany 99 xsstw 9
// 9 f 5
xsspos=redcst(1,3,10,xxdd);
xssbase=redcst(4,1,16,xxdd);
xssmany=redcst(5,2,10,xxdd);
xssctr=0;
if((xssbase == 9)||(xssbase == 15))
{
xsstw = redcst(7,1,16,xxdd);
while(xssctr < xssmany)
{
xsssub = (xssctr * xsstw) + 8;
xtssub = xssctr + xsspos;
xssterm = redcst(xsssub,xsstw,(xssbase + 1),xxdd);
*(iixt + xtssub) = xssterm;
xssctr=xssctr+1;
}
}
if(xssbase == 5)
{
while(xssctr < xssmany)
{
xsssub = xssctr + 6;
xtssub = xssctr + xsspos;
xssterm = (int)(*(xxdd + xsssub));
*(iixt + xtssub)=xssterm;
xssctr = xssctr+1;
}
}
}
void iktmany(int* imxt)
{
int iktmanyctr;
iktmanyctr=0;
while(iktmanyctr < 512)
{
*(imxt + iktmanyctr)=131065;
iktmanyctr=iktmanyctr+1;
}
// -------------------------------------------
ilinemake(imxt,"079F0423738392D");
ilinemake(imxt,"083F0423435362B");
ilinemake(imxt,"087F052313233302E");
ilinemake(imxt,"097F04324724824924B");
ilinemake(imxt,"102F06324D24F250251252253");
// -------------------------------------------
ilinemake(imxt,"063F0122A");
ilinemake(imxt,"112F0122F");
ilinemake(imxt,"050F01210");
ilinemake(imxt,"062901216");
ilinemake(imxt,"022F01208");
ilinemake(imxt,"009F0121B");
ilinemake(imxt,"023F01209");
// --
ilinemake(imxt,"0105101234567890");
ilinemake(imxt,"024510qwertyuiop");
ilinemake(imxt,"038509asdfghjkl");
ilinemake(imxt,"052507zxcvbnm");
// --
ilinemake(imxt,"0369013013");
ilinemake(imxt,"108F0120D");
ilinemake(imxt,"0659013032");
ilinemake(imxt,"020F0222D3D");
ilinemake(imxt,"051F0125C");
ilinemake(imxt,"034F0225B5D");
ilinemake(imxt,"047F0223B27");
ilinemake(imxt,"059F0322C2E2F");
ilinemake(imxt,"049F01260");
// ----------------------------------------------------
ilinemake(imxt,"305F0127E");
ilinemake(imxt,"2669103033064035036037094038042040041");
ilinemake(imxt,"280510QWERTYUIOP");
ilinemake(imxt,"294509ASDFGHJKL");
ilinemake(imxt,"308507ZXCVBNM");
// -------------
ilinemake(imxt,"276F0225F2B");
ilinemake(imxt,"307F0127C");
ilinemake(imxt,"290F0227B7D");
ilinemake(imxt,"303F0223A22");
ilinemake(imxt,"315F0323C3E3F");
// --
}
// LINUX KEYBOARD TRANSLATOR TOP
// lreadc redcst
// need xxkeyhold next
int iidoskey(int kkll,int kshiftb,int ixkeyhold[],
const char* klinuxcm)
{
int klinuxmm,zandtogi;
int lidoskrs,lidoslr;
int wasdkeyused;
// x=120 v=118
char clinuxcm;
clinuxcm = *klinuxcm;
klinuxmm = (int)clinuxcm;
lidoskrs=131072;
wasdkeyused=0;
if(klinuxmm == 120)
{
lidoslr = kkll;
if((lidoslr >= 0)&&(lidoslr < 256))
{
if(kshiftb == 1)lidoslr=kkll+256;
lidoskrs = ixkeyhold[lidoslr];
wasdkeyused=1;
}
}
if(klinuxmm == 118)
{
// klinuxcm == "v" for int vga_getkey() within <vga.h>
zandtogi=1;
if(kkll < redcst(1,2,16,"00"))zandtogi=0;
if(kkll > redcst(1,2,16,"7E"))zandtogi=0;
if(zandtogi == 1)
{
lidoskrs=kkll;
}
if(kkll == redcst(1,2,16,"7F"))lidoskrs=8;
// -----------------------------------------------------
if(kkll == redcst(1,8,16,"1B5B317E"))lidoskrs=512+71;
if(kkll == redcst(1,8,16,"001B5B41"))lidoskrs=512+72;
if(kkll == redcst(1,8,16,"1B5B357E"))lidoskrs=512+73;
if(kkll == redcst(1,8,16,"001B5B44"))lidoskrs=512+75;
if(kkll == redcst(1,8,16,"001B5B43"))lidoskrs=512+77;
if(kkll == redcst(1,8,16,"1B5B347E"))lidoskrs=512+79;
if(kkll == redcst(1,8,16,"001B5B42"))lidoskrs=512+80;
if(kkll == redcst(1,8,16,"1B5B367E"))lidoskrs=512+81;
if(kkll == redcst(1,8,16,"1B5B327E"))lidoskrs=512+82;
if(kkll == redcst(1,8,16,"1B5B337E"))lidoskrs=512+83;
// -----------------------------------------------------
wasdkeyused=1;
}
if(wasdkeyused == 0)lidoskrs=klinuxmm;
return lidoskrs;
}
// end of int iidoskey(int,int,int[],const char*)
// ------------------------------------------------------
void zvgbine(int zvgbase,int zvgbwid,char** zvgc)
{
int zvgbol,zvgbil,zvgbub,zvgbud;
int zvgbr[4];
int zvgbterm[4];
int zvgbhold[8];
char zvgbaline[1920];
int zvgbii;
// depth = 1
int zvgtr;
int zvgorder[] = { 3,2,1,0 };
char* zvac;
zvgbol=0;
while(zvgbol < zvgbwid)
{
zvgbub=(zvgbase * zvgbwid)+zvgbol;
zvgbii=0;
while(zvgbii < 4)
{
zvac = *(zvgc + zvgbii);
zvgbterm[zvgbii]=(int)(*(zvac + zvgbub));
// zvgbterm[zvgbii]=(int)(*(zvgc[zvgbii] + zvgbub));
// depth = 3
if(zvgbterm[zvgbii] < 0)zvgbterm[zvgbii]=zvgbterm[zvgbii]+256;
zvgbii=zvgbii+1;
}
zvgbil=8;
while(zvgbil > 0)
{
zvgbud=(zvgbol * 8)+zvgbil-1;
zvgbr[0]=0;
zvgbr[1]=0;
zvgbr[2]=0;
zvgbr[3]=0;
zvgbii=0;
zvgdac: zvgbterm[zvgbii]=zvgbterm[zvgbii]+zvgbterm[zvgbii];
if(zvgbterm[zvgbii] <= 255)goto zvhdac;
// depth = 3
zvgbterm[zvgbii]=zvgbterm[zvgbii] - 256;
zvgbr[zvgbii]=1;
zvhdac: zvgbii=zvgbii+1;
if(zvgbii < 4)goto zvgdac;
zvgtr=0;
zvgbii=0;
while(zvgbii < 4)
{
zvgtr=zvgtr+zvgtr;
zvgtr=zvgtr+zvgbr[(zvgorder[zvgbii])];
zvgbii=zvgbii+1;
}
// vga_setcolor(zvgtr);
// depth = 3
// vga_drawpixel(zvgbud,zvgbase);
zvgbhold[zvgbil - 1]=zvgtr;
zvgbil=zvgbil-1;
}
zvgbud = zvgbol * 8;
zvgbub = 0;
while(zvgbub < 8)
{
zvgtr=zvgbhold[zvgbub];
if(zvgtr > 127)zvgtr=zvgtr-256;
zvgbaline[zvgbud + zvgbub] = (char)zvgtr;
zvgbub=zvgbub+1;
}
zvgbol=zvgbol+1;
}
vga_drawscansegment(zvgbaline,0,zvgbase,(zvgbwid*8));
// depth = 1
}
// bottom of zvgpine
void zgapage(int zmgbw,int zmgh,char** zgslater)
{
int zghctr,zmgbv,zgyoo;
// char* zgpslater;
zmgbv = (zmgbw + 7) >> 3;
zgyoo=(480 - zmgh) >> 1;
zghctr=0;
while(zghctr < zmgh)
{
// zgpslater = zgslater + (zghctr * zmgbv);
// vga_drawscansegment((char*)NULL,0,(zghctr+zgyoo),zmgbv);
zvgbine(zghctr,zmgbv,zgslater);
zghctr=zghctr+1;
}
}
// bottom of zgapage
int gagetch(int nzwait)
{
int gares,gaterm;
gares=0;
gaterm=0;
if(nzwait == 0)goto zeekeep;
zeukeep: gaterm=(vga_getkey() & 255);
if(gaterm == 0)goto zeekeep;
if(gaterm != 0)goto zeukeep;
zeekeep: gaterm=(vga_getkey() & 255);
if(nzwait == 0)gares=gaterm;
if(nzwait == 0)goto zeekbot;
if(gaterm == 0)goto zeekeep;
zeenext: gares = gares * 256;
gares = gares + gaterm;
gaterm=(vga_getkey() & 255);
if(gaterm == 0)goto zeekbot;
goto zeenext;
zeekbot: gaterm=gares;
return gaterm;
}
// bottom of gagetch
// system dependent above this line ----------------------
// --------------------------------- proposed declarations
// int divmodi(int inumer,int idenom,int nzirem);
// int onexwchr(int xwcpos,char xwclist[]);
// void chrfroms(int chfstart,int chfsize,char xvclist[],
// const char* xvslist);
// int onexwdig(int xwdpos,char xwdlist[]);
// int ixreada(int iarpos,int iarwid,int iarbase,
// int nziarnext,char iarlist[]);
// int revercram(int rcstart,int rcmany,char revdat[]);
// void linuwrn(int lwrnpos,int lwrnwid,int lwrnbase,
// char lwrt[],int lwrf);
// void uncram(int ucstart,int ucmany,char ucdat[],
// int ucfrom);
// int ombrlen(int ombrloffset,int ombmaxlen,
// char ombuksize[]);
// int nzlinedone(int lkbc[],char reekline[]);
// int redcst(int llrs,int llrw,int llrbase,
// const char* llccs);
// ----------------------------------------------------
// -- void bitpoke(char btt[],int hds,int twi,int bx,
// -- int by,int pznorm,int bvbw);
// void bitwrt(char bde[],int ski,int wwi,int wx,int wy,
// int zltr,int wwvb);
// void printstr(char psb[],int psw,int pst,char psf[],
// int pstrw,char pstr[]);
// int lscale(int lscabc[]);
// int lredoffs(int lrosbc[]);
// int lctsize(int lctsbc[]);
// int lpixperb(int lpixprbc[]);
// int lbytespr(int lbprbc[],int nzlbprem);
// int lbreadf(int lbreadbc[],char lbrecord[],
// int lbreadw,FILE* lbreadh);
// int nzreadmbhdr(int nzrhbc[],char nzrhrecord[],
// char rhctble[],FILE* nzrhh);
// int xwtscroll(int xscbc[],char xscsingle[],
// char xscgroup[]);
// void zackreadbw(int rpbc[],char rprec[],char rpct[],
// char rpbig[],FILE* rph);
// void getpine(int gpbc[],char gprec[],char gpct[],
// char gpbig[],FILE* gph);
// int nonbambi(char** iibplane,int nbbc[],char nbbig[]);
// int putpine(char** iirplane,int irplane[],
// int vpthresh[],char vpbig[]);
// int onebumpw(char** ijplane,int onbbc[],
// char ombrecord[],char ombgbig[]);
// int twobumpw(char** tjple,int tmbc[],char tmbr[],
// char tbig[],char tbf[]);
// int twobuz(char** zpl,int zbc[],char zrc[],
// char zb[],char zf[],char zn[]);
// int fourbump(char** aap,int ac[],
// char ar[],char ab[],char af[],
// char an[]);
// void fonthfill(char fhf[]);
// int nzextcmp(char* uncfn,char* ecright);
// -------------------
// 32 bit integer subroutines for Linux
int divmodi(int inumer,int idenom,int nzirem)
{
int idmres,ifrac,irem,iprod;
irem=0-2;
ifrac=inumer / idenom;
while(irem < 0)
{
iprod=ifrac * idenom;
irem = inumer - iprod;
if(irem < 0)ifrac=ifrac-1;
}
idmres=ifrac;
if(nzirem > 0)idmres=irem;
return idmres;
}
int onexwchr(int xwcpos,char xwclist[])
{
int onexwres;
char onexwtcr;
onexwtcr = xwclist[xwcpos];
onexwres = (int)onexwtcr;
if(onexwres < 0)onexwres = onexwres + 256;
return onexwres;
}
void chrfroms(int chfstart,int chfsize,char xvclist[],
const char* xvslist)
{
int chfctr,chfallow;
char chftcr;
chfctr=0;
chfallow=1;
while(chfallow > 0)
{
chftcr = *(xvslist + chfctr);
if(chftcr == '!')chfallow = 0;
if(chftcr == '$')chfallow = 0;
if(chfctr >= chfsize)chfallow = 0;
if(chfallow > 0)
{
xvclist[chfstart + chfctr]=chftcr;
chfctr=chfctr+1;
}
}
// depth = 1
chftcr = '\40';
chfallow = 0;
if(chfctr < chfsize)
{
chfallow = 1;
while(chfallow > 0)
{
if(chfctr >= chfsize)chfallow=0;
if(chfallow > 0)
{
xvclist[chfstart + chfctr]=chftcr;
// depth = 4
chfctr=chfctr+1;
}
}
}
}
// end of chrfroms;
int onexwdig(int xwdpos,char xwdlist[])
{
int xwdires,xwdicmp;
xwdires=127;
xwdicmp = onexwchr(xwdpos,xwdlist);
if((xwdicmp>=97)&&(xwdicmp<=102))xwdires=xwdicmp-87;
if((xwdicmp>=65)&&(xwdicmp<=70))xwdires=xwdicmp-55;
if((xwdicmp>=48)&&(xwdicmp<=57))xwdires=xwdicmp-48;
return xwdires;
}
int ixreada(int iarpos,int iarwid,int iarbase,
int nziarnext,char iarlist[])
{
int iarctr,iarallow,iarsub,ixreadr,ixreadt;
iarctr=0;
iarallow = 1;
ixreadr=0;
while(iarallow > 0)
{
iarsub = iarpos + iarctr - 1;
ixreadt = onexwdig(iarsub,iarlist);
if(ixreadt < iarbase)iarallow=0;
if(iarallow > 0)
{
iarctr = iarctr + 1;
if(iarctr >= iarwid)iarallow = 0;
}
}
// depth = 1
iarallow = 0;
if(iarctr < iarwid)
{
iarallow = 1;
while(iarallow > 0)
{
iarsub=iarpos+iarctr-1;
ixreadt = onexwdig(iarsub,iarlist);
if(ixreadt >= iarbase)iarallow=0;
if(iarallow > 0)
{
ixreadr=ixreadr*iarbase;
ixreadr=ixreadr+ixreadt;
iarctr=iarctr+1;
if(iarctr >= iarwid)iarallow=0;
}
}
}
// depth = 1
if(nziarnext > 0)ixreadr=iarpos+iarctr;
return ixreadr;
}
int revercram(int rcstart,int rcmany,char revdat[])
{
int revnegind,crammedres,cramctr,cramsub;
int cramterm;
cramsub=rcstart+rcmany-1;
revnegind=0;
cramterm=onexwchr(cramsub,revdat);
crammedres=0;
if((cramterm > 127)&&(rcmany > 3))revnegind=1;
cramctr=rcmany;
while(cramctr > 0)
{
cramsub = rcstart + cramctr -1;
cramterm=onexwchr(cramsub,revdat);
if(revnegind==1)cramterm=255-onexwchr(cramsub,revdat);
crammedres=crammedres*256;
crammedres=crammedres+cramterm;
cramctr=cramctr - 1;
}
if(revnegind == 1)crammedres=(0-1)-crammedres;
return crammedres;
}
void linuwrn(int lwrnpos,int lwrnwid,int lwrnbase,
char lwrt[],int lwrf)
{
int lwrnsub;
int lwrneg,lwrnterm,lwrnctr,lwrntop;
lwrneg=0;
lwrntop=lwrf;
if(lwrf < 0)lwrneg=1;
if(lwrneg == 1)lwrntop=0-(lwrf+1);
lwrnctr=lwrnwid-1;
while(lwrnctr >= 0)
{
lwrnsub=lwrnctr+lwrnpos-1;
lwrnterm=divmodi(lwrntop,lwrnbase,1);
lwrntop=divmodi(lwrntop,lwrnbase,0);
if(lwrneg == 1)lwrnterm=(lwrnbase-1)-lwrnterm;
lwrnterm=lwrnterm+48;
if(lwrnterm > 57)lwrnterm=lwrnterm+39;
lwrt[lwrnsub]=(char)lwrnterm;
lwrnctr=lwrnctr+1;
// *** ERROR *** incrementing instead of needed
// decrementing above
// *** ERROR *** above mistke was hidden
// and hard to find
// attempting fix below
lwrnctr=lwrnctr-2;
}
}
void uncram(int ucstart,int ucmany,char ucdat[],
int ucfrom)
{
int ctruc,uctop,ucneg,ucsub,uccdig;
ucneg=0;
uctop=ucfrom;
if(ucfrom < 0)
{
uctop = 0 - (ucfrom + 1);
ucneg = 1;
}
ctruc = 0;
while(ctruc < ucmany)
{
uccdig=divmodi(uctop,256,1);
uctop=divmodi(uctop,256,0);
ucsub=ctruc+ucstart;
if(ucneg == 1)uccdig=255-uccdig;
if(uccdig > 127)uccdig = uccdig - 256;
ucdat[ucsub]=(char)uccdig;
ctruc=ctruc + 1;
}
}
int ombrlen(int ombrloffset,int ombmaxlen,
char ombuksize[])
{
int ombclen,omblelow,omblent,nextlelow;
ombclen=ombmaxlen;
omblelow=1;
if(ombmaxlen > 0)
{
while(omblelow > 0)
{
omblent=onexwchr((ombrloffset+ombclen-1),ombuksize);
nextlelow=0;
if(omblent == 0)nextlelow=1;
if(omblent == 32)nextlelow=1;
if(nextlelow == 0)omblelow=0;
if(omblelow > 0)
{
ombclen=ombclen-1;
if(ombclen < 1)omblelow=0;
}
}
}
if(ombmaxlen == 0)
{
ombclen=0;
while(omblelow > 0)
{
omblent=onexwchr((ombrloffset + ombclen),ombuksize);
nextlelow=1;
if(omblent == 0)nextlelow=0;
if(omblent == 32)nextlelow=0;
if(omblent == 33)nextlelow=0;
if(nextlelow == 0)omblelow=0;
if(nextlelow > 0)ombclen=ombclen+1;
if(ombclen > 71)omblelow=0;
}
}
return ombclen;
}
// end of ombrlen
int nzlinedone(int lkbc[],char reekline[])
{
int nzlineres,nzlinectr,nzldcmp,nzlinebase;
nzlinebase=lkbc[34];
nzlinectr=lkbc[25];
nzlineres=0;
if(nzlinectr == 0)
{
while(nzlineres < 40)
{
reekline[nzlineres+nzlinebase]='\040';
nzlineres=nzlineres+1;
}
}
nzlineres=0;
nzldcmp=lkbc[26];
if((nzldcmp == 8)&&(nzlinectr>0))nzlinectr=nzlinectr-1;
if((nzldcmp > 31)&&(nzldcmp < 126))
{
reekline[nzlinectr+nzlinebase]=(char)nzldcmp;
nzlinectr=nzlinectr+1;
}
if((nzldcmp == 10)||(nzldcmp == 13))nzlineres=1;
lkbc[25]=nzlinectr;
if(nzlinectr > 38)nzlineres=1;
return nzlineres;
}
// end of nzlinedone
int redcst(int llrs,int llrw,int llrbase,
const char* llccs)
{
int yellowcst;
char redcharb[80];
chrfroms(0,(llrw+llrs-1),redcharb,llccs);
yellowcst = ixreada(llrs,llrw,llrbase,0,redcharb);
return yellowcst;
}
// end of redcst
// end of Linux integer char subroutines
// bitmap using subroutines
// .................................................
// Applications programs that are written for Linux
// use the following
// simplified bitmap header for device independent bitmaps
// location length
// 000 00 02 cstMBcmp value 19778 M=77 B=66 2
// 002 02 16 skipped
// 018 12 04 biwidth in pixels 4
// 022 16 04 biheight in pixels 4
// 026 1A 02 skip was biplanes set to 0001
// 028 1C 02 bibitcount = { 1,4,8,24 } 2
// 030 1E 04 Zero if no compression. 4
// 034 22 12 skipper
// 046 2E 04 biclrused number of colors if > 0 4
// && [1C]==8 x
// 050 32 04 skippable
// 054 36 ((2^[1C])*4)(or 0 for [1C]==24) colortable
// with bgr0 entries
// if([1C]==1)len=8
// if([1C]==4)len=64
// 062 3E start of monochrome bitmap
// 118 76 start of VGA 4 bit color bitmap
// lines of pixels are left to right but upside down
// an extra skippable is added to end of each line to
// make each file line a multiple of four bytes
// ...................................................
// bitmap context integer array for
// some applications programs written for Linux
// requested output characteristics
// 00 destwid
// 01 desthgt
// 02 destx
// 03 desty
// 04 scale set to 0 then let bitmap compute it later
// 05 readmode 0=file 1=memory
// 06 colormode 1=decreaseincreasewithsyncedlimits
// 07 planewidth
// . . . . . . . . . . . . . . . . . .
// input characteristics from incoming bitmap
// 08 biwidth18
// 09 biheight22
// 10 bibitcount28
// 11 ifzerook30
// 12 biclrused46
// 13 isit19778
// ..
// 14 colortablesize
// 15 vfilepointer
// 16 bytesperrecord
// 17 skippedbytes
// 18 prinwid
// 19 prinleft
// 20 prinudy
// 21 prinhgt
// 22
// 23 prinprvpix
// 24 nzfilenamefinished
// 25 keyctr
// 26 keychar
// 27 rawkey
// 28 pagetofive
// 29 planehgt
// 30 dagrajumpnow
// 31 freddyisnext
// 32 screenDEPTH
// 33
// 34 curscrkeyoff
// 35 curscreenwrt
// 36
// 37
// 38
// 39 nzallfour
// 40
// 41 nzfn01
// 42 nzfn02
// 43 nzfn03
// 44 nzfn04
// 45 nzfn05
// 46
// 47
// 48
// 49
// 50
// 51 scrollctr
// 52 scrolllimit
// 53 scrollallow
// 54 scrolldir
// 55
// 56 picturesreadcounterlastdigit
// 57 previousscreen
// 58 th0
// 59 th1
// 60 th2
// 61 th3
// 62 th4
// 63 th5
// 64 th6
// 65 th7
// 66 th8
// 67 th9
// 68 th10
// 69 th11
// 70 th12
// 71 th13
// 72 th14
// 73 th15
// 74
// 75
// 76
// 77
// 78
// 79
// ------------------------------------------------------
// ----------------------------------------------------
// void bitpoke(char btt[],int hds,int twi,int bx,int by,
// int pznorm,int bvbw)
// {
// btt is destination monochrome bitmap
// or plane
// twi must be a
// multiple of 8
// hds is header size of 62
// when writing to bitmap
// bx and by are
// logical pixel coordinates
// twi is target width
// in pixels
// nonzero for backwards bits in target byte pznorm
// zero for dark pixel bvbw
// const int bporand[] = { 128,64,32,16,8,4,2,1,
// 1,2,4,8,16,32,64,128,
// 127,191,223,239,247,251,253,254,
// 254,253,251,247,239,223,191,127 };
// int iporand,dyrem,dyfrac,dyprod,tsub,tvalue;
// dyprod = (twi * by) + bx + (hds * 8);
// dyfrac = divmodi(dyprod,8,0);
// dyrem = divmodi(dyprod,8,1);
// tvalue = onexwchr(dyfrac,btt);
// if((bvbw == 0)&&(pznorm == 0))tsub=dyrem+16;
// if((bvbw == 0)&&(pznorm != 0))tsub=dyrem+24;
// if((bvbw != 0)&&(pznorm == 0))tsub=dyrem;
// if((bvbw != 0)&&(pznorm != 0))tsub=dyrem+8;
// iporand=bporand[tsub];
// if(bvbw == 0)tvalue = tvalue & iporand;
// if(bvbw != 0)tvalue = tvalue | iporand;
// if(tvalue > 127)tvalue = tvalue - 256;
// btt[dyfrac]=(char)tvalue;
// }
void bitwrt(char bde[],int ski,int wwi,int wx,int wy,
int zltr,int wwvb)
{
int wyprod,wyfrac,wyrem,wvalue;
// needs const int wporand[] = {128,64 ...
// bitwrt is supposed to be faster than bitpoke.
wyprod=(wwi * wy)+(ski << 3)+wx;
wyrem = wyprod & 7;
wyfrac = wyprod >> 3;
wvalue = onexwchr(wyfrac,bde);
if(wwvb == 0)
{
if(zltr == 0)wvalue=wvalue & wporand[wyrem + 16];
if(zltr != 0)wvalue=wvalue & wporand[wyrem + 24];
}
if(wwvb != 0)
{
if(zltr == 0)wvalue=wvalue | wporand[wyrem];
if(zltr != 0)wvalue=wvalue | wporand[wyrem + 8];
}
if(wvalue > 127)wvalue = wvalue - 256;
bde[wyfrac]=(char)wvalue;
}
// bottom of bitwrt
void printstr(char psb[],int psw,int pst,char psf[],
int pstrw,char pstr[])
{
int pswrrem,pswpx,pswcx,pswy,psevenctr,psfsub;
int pstrelem,pswright,pswline;
int pswpix,ponxsft,ponwid,ponysft,pondhgt,ponbhgt;
int ponahgt,ponaleft,ponbig;
int rponcurse,tinypst;
int psj,psuy;
const int pondspec[] = { 0,0,0,0,0,0,0,0,
1,7,2,13,14,16,7,0 };
if((pst >= 1000)&&(pst <= 1999))
{
rponcurse = divmodi(pst,1000,1)-1;
tinypst = divmodi(pst,1000,0)*8;
ponxsft = pondspec[tinypst];
ponwid = pondspec[tinypst + 1];
ponysft = pondspec[tinypst + 2];
pondhgt = pondspec[tinypst + 3];
ponbhgt = pondspec[tinypst + 4];
ponahgt = pondspec[tinypst + 5];
ponaleft = pondspec[tinypst + 6];
// depth = 2
ponbig = 1;
pswy = ponxsft + ponaleft;
pswcx=0;
while(pswcx < pswy)
{
ponbig=ponbig+ponbig;
pswcx=pswcx+1;
}
pswright=pstrw*ponwid;
// *** ERROR *** forgot to widen bitmap to next higher
// multiple of 32 pixels
// *** ERROR *** above error was hidden.
// making new variable psj with wider width below
psj = divmodi((psw+31),32,0)*32;
// -------------------------------
pswrrem=psj-pswright;
if(pswrrem > 0)
{
uncram(0,2,psb,19778);
uncram(18,4,psb,psw);
uncram(22,4,psb,ponbhgt);
uncram(28,2,psb,1);
uncram(30,4,psb,0);
uncram(46,4,psb,0);
uncram(54,4,psb,0);
uncram(58,4,psb,16777215);
// depth = 3
pswcx=0;
while(pswcx < pstrw)
{
pstrelem=onexwchr(pswcx,pstr);
pswy=0;
while(pswy < ponbhgt)
{
psevenctr=0;
psfsub = pswy + (ponahgt * pstrelem) + ponysft;
psuy=(ponbhgt - 1) - pswy;
pswline = (int)psf[psfsub];
while(psevenctr < ponwid)
{
pswpix=1;
pswline=pswline+pswline;
if(pswline >= ponbig)
{
pswline = pswline - ponbig;
pswpix=0;
}
pswpx=(pswcx * ponwid) + psevenctr;
// depth = 6
bitwrt(psb,62,psj,pswpx,psuy,0,pswpix);
psevenctr=psevenctr+1;
}
pswy=pswy+1;
}
if((ponxsft > 0)&&(pswcx == rponcurse))
{
pswy=0;
pswpix=1;
pswpx = pswcx * ponwid;
while(pswy < ponbhgt)
{
bitwrt(psb,62,psj,pswpx,((ponbhgt-1)-pswy),0,pswpix);
pswpix=1-pswpix;
pswy=pswy+1;
}
}
pswcx=pswcx+1;
}
// depth = 3
pswy=0;
while(pswy < ponbhgt)
{
pswpx=0;
pswpix=1;
psuy=(ponbhgt - 1)-pswy;
while(pswpx < pswrrem)
{
pswcx = pswpx + pswright;
bitwrt(psb,62,psj,pswcx,psuy,0,pswpix);
if(pswpx > 16)pswpix=0;
pswpx=pswpx+1;
}
pswy=pswy+1;
}
// depth = 3
}
}
}
// end of printstr
int lscale(int lscabc[])
{
int lscares,lscallow,lscawchk,lscahchk;
int zandtogl;
lscares=1;
lscallow=1;
while(lscallow > 0)
{
lscawchk = lscabc[0] * lscares;
lscahchk = lscabc[1] * lscares;
zandtogl = 1;
if(lscawchk < lscabc[8])zandtogl=0;
if(lscahchk < lscabc[9])zandtogl=0;
if(zandtogl == 1)lscallow=0;
if(lscallow > 0)
{
lscares=lscares+1;
if(lscares > 16383)lscallow=0;
}
}
return lscares;
// lscale returns factor by which to shrink picture
}
int lredoffs(int lrosbc[])
{
int lredoffr;
lredoffr=0;
if(lrosbc[5] > 0)lredoffr=lrosbc[15];
return lredoffr;
// lredoffs returns 0 for file read or
// virtualfilepointer value for memory read
}
int lctsize(int lctsbc[])
{
int lctsres,lctsterm,lctstrrm;
lctsres=0;
lctsterm=lctsbc[10];
lctstrrm=lctsbc[12];
if(lctsterm == 1)lctsres=2;
if(lctsterm == 4)lctsres=16;
if((lctsterm == 8)&&(lctstrrm == 0))lctsres=256;
if((lctsterm == 8)&&(lctstrrm > 0))lctsres=lctstrrm;
return lctsres;
// lctsize returns colortable size in
// four byte doublewords
}
int lpixperb(int lpixprbc[])
{
int lpixperes,lpixpercmp;
lpixpercmp = lpixprbc[10];
lpixperes=0;
if(lpixpercmp == 1)lpixperes=8;
if(lpixpercmp == 4)lpixperes=2;
if(lpixpercmp == 8)lpixperes=1;
return lpixperes;
// lpixperb returns pixels per byte if > 0 xor 3 bytes
// per pixel if return zero
}
int lbytespr(int lbprbc[],int nzlbprem)
{
int lbypres,lbyperb,lbyrnumer;
lbyperb=lpixperb(lbprbc);
if(lbyperb > 0)
{
lbyrnumer=lbprbc[8]+lbyperb-1;
lbypres=divmodi(lbyrnumer,lbyperb,0);
}
if(lbyperb == 0)lbypres = 3 * lbprbc[8];
if(nzlbprem > 0)
{
lbyrnumer=lbypres-(divmodi(lbypres,4,0)*4);
lbypres=0;
if(lbyrnumer > 0)lbypres=4-lbyrnumer;
}
return lbypres;
// returns lbypres bytes per record to make
// (one input line of pixels) if nzlbprem==0
// returns lbypres is number of skippable bytes
// after each line if arg 2 > 0
}
int lbreadf(int lbreadbc[],char lbrecord[],int lbreadw,
FILE* lbreadh)
{
int actreadwid,lbreadres;
if(lbreadw == 0)actreadwid=lbreadbc[16]+lbreadbc[17];
if(lbreadw > 0)actreadwid=lbreadw;
lbreadres=lbreadbc[15];
if(lbreadbc[5] == 0)
{
// read from a file
fread(lbrecord,actreadwid,1,lbreadh);
}
lbreadres=lbreadres+actreadwid;
// lbreadres is next value to put in [15]
// after call to lredoffs
return lbreadres;
}
int nzreadmbhdr(int nzrhbc[],char nzrhrecord[],
char rhctble[],FILE* nzrhh)
{
int nzrnext,nzrhres,nzrholop,nzrhilop,nzrhctsub;
int nzrhrase,nzrhcolsub;
int nzrhnext;
nzrnext=0;
nzrhbc[15]=nzrnext;
nzrhres=nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,2,nzrhh);
nzrhbc[13]=revercram(lredoffs(nzrhbc),2,nzrhrecord);
nzrhbc[15] = nzrnext;
if(nzrhbc[13] == 19778)
{
nzrhres=1;
// depth = 2
nzrnext=lbreadf(nzrhbc,nzrhrecord,16,nzrhh);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[8] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext = lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[9] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,2,nzrhh);
nzrhbc[15] = nzrnext;
// ------------------------------------------------
nzrnext=lbreadf(nzrhbc,nzrhrecord,2,nzrhh);
nzrhbc[10] = revercram(lredoffs(nzrhbc),2,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[11] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
if(nzrhbc[11] != 0)nzrhres=0;
nzrnext=lbreadf(nzrhbc,nzrhrecord,12,nzrhh);
nzrhbc[15]=nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[12] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[15] = nzrnext;
if(nzrhbc[4] == 0)nzrhbc[4]=lscale(nzrhbc);
nzrhbc[14]=lctsize(nzrhbc);
nzrhbc[16]=lbytespr(nzrhbc,0);
nzrhbc[17]=lbytespr(nzrhbc,1);
// depth = 2
nzrhbc[18]=divmodi(nzrhbc[8],nzrhbc[4],0);
nzrhbc[21]=divmodi(nzrhbc[9],nzrhbc[4],0);
nzrhbc[20]=nzrhbc[21]-1;
nzrhbc[19]=nzrhbc[0]-nzrhbc[18];
nzrholop=0;
while(nzrholop < nzrhbc[14])
{
nzrhnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhrase=lredoffs(nzrhbc);
// depth = 3
nzrhbc[15] = nzrhnext;
nzrhilop=0;
while(nzrhilop < 4)
{
nzrhctsub=(nzrholop * 4) + nzrhilop;
nzrhcolsub = nzrhrase + nzrhilop;
rhctble[nzrhctsub] = nzrhrecord[nzrhcolsub];
// depth = 4
nzrhilop=nzrhilop+1;
}
nzrholop=nzrholop+1;
// depth = 3
}
// depth = 2
if((nzrhbc[8]*nzrhbc[4]*3)>=bigbuffsize)nzrhres=0;
}
// depth = 1
return nzrhres;
}
// end of nzreadmbhdr
int xwtscroll(int xscbc[],char xscsingle[],
char xscgroup[])
{
int xscres,xscilo,xscbase;
// 51 scrollctr 52 scrolllimit
// 53 scrollallow
// 54 scrolldir 0=save 1=get
xscbase=((xscbc[51]) + 1)*40;
xscres=0;
xscilo=0;
if(((xscbc[54]) == 0)&&((xscbc[51]) < (xscbc[52])))
{
while(xscilo < 40)
{
xscgroup[xscbase + xscilo] = xscsingle[xscilo];
xscilo=xscilo+1;
}
if((xscbc[53]) > 0)xscres=1;
if((xscbc[53]) > 0)xscbc[51]=xscbc[51]+1;
}
if(((xscbc[54]) == 1)&&((xscbc[51]) < (xscbc[52])))
{
while(xscilo < 40)
{
xscsingle[xscilo]=xscgroup[xscbase + xscilo];
xscilo=xscilo+1;
}
if((xscbc[53]) > 0)xscres=1;
if((xscbc[53]) > 0)xscbc[51]=xscbc[51]+1;
}
return xscres;
}
void zackreadbw(int rpbc[],char rprec[],char rpct[],
char rpbig[],FILE* rph)
{
int rpiterm,rbiwidth,rpscalelim,rpscalectr,rpdesrase;
int rbimain,rbirem,rbictr,rboctr,rpinext,rpirase;
char bamb0,bamb1,bamb2,bamw4,bamw5,bamw6;
rbiwidth=rpbc[8];
rpscalelim=rpbc[4];
rpdesrase=0;
bamb0=rpct[0];
bamb1=rpct[1];
bamb2=rpct[2];
bamw4=rpct[4];
bamw5=rpct[5];
bamw6=rpct[6];
rbimain=divmodi(rbiwidth,8,0);
rbirem=divmodi(rbiwidth,8,1);
rpscalectr=0;
while(rpscalectr < rpscalelim)
{
rpinext=lbreadf(rpbc,rprec,0,rph);
rpirase=lredoffs(rpbc);
rpbc[15]=rpinext;
rboctr=0;
while(rboctr < rbimain)
{
rpiterm=onexwchr((rpirase+rboctr),rprec);
// depth = 3
rbictr=0;
while(rbictr < 8)
{
rpiterm=rpiterm+rpiterm;
if(rpiterm <= 255)
{
rpbig[rpdesrase]=bamb0;
rpbig[rpdesrase+1]=bamb1;
rpbig[rpdesrase+2]=bamb2;
}
if(rpiterm > 255)
{
rpbig[rpdesrase]=bamw4;
rpbig[rpdesrase+1]=bamw5;
rpbig[rpdesrase+2]=bamw6;
rpiterm=rpiterm-256;
}
rpdesrase=rpdesrase+3;
rbictr=rbictr+1;
}
// depth = 3
rboctr=rboctr+1;
}
// depth = 2
rpiterm=onexwchr((rpirase+rbimain),rprec);
rbictr=0;
while(rbictr < rbirem)
{
// depth = 3
rpiterm=rpiterm+rpiterm;
if(rpiterm <= 255)
{
rpbig[rpdesrase]=bamb0;
rpbig[rpdesrase+1]=bamb1;
rpbig[rpdesrase+2]=bamb2;
}
if(rpiterm > 255)
{
rpbig[rpdesrase]=bamw4;
rpbig[rpdesrase+1]=bamw5;
rpbig[rpdesrase+2]=bamw6;
rpiterm=rpiterm-256;
}
rpdesrase=rpdesrase+3;
rbictr=rbictr+1;
}
// depth = 2
rpscalectr=rpscalectr+1;
}
}
// bottom of zackreadbw
void getpine(int gpbc[],char gprec[],char gpct[],
char gpbig[],FILE* gph)
{
int gbibitcount,hpixb,gpixctr,gbytectr;
int gbiwidth,ghmbytes,gpirase,gpinext;
int gpdesrase,gpeallow,gpscalelim,gpscalectr;
int gpctrase,gpilopctr,gpiterm,gpidenom,gpilopsub;
int gpints[8];
gbibitcount=gpbc[10];
hpixb=lpixperb(gpbc);
gbiwidth=gpbc[8];
ghmbytes=gpbc[16];
gpscalelim=gpbc[4];
gpdesrase=0;
gpscalectr=0;
// depth = 1
while(gpscalectr < gpscalelim)
{
gpinext=lbreadf(gpbc,gprec,0,gph);
// depth = 2
gpirase=lredoffs(gpbc);
gpbc[15]=gpinext;
gpixctr=0;
gbytectr=0;
gpeallow=1;
while(gpeallow > 0)
{
gpiterm=onexwchr((gpirase+gbytectr),gprec);
// depth = 3
if(gbibitcount < 9)
{
gpilopctr=hpixb;
if(gbibitcount == 1)gpidenom=2;
if(gbibitcount == 4)gpidenom=16;
if(gbibitcount == 8)gpidenom=256;
while(gpilopctr > 0)
{
gpilopsub=gpilopctr-1;
gpints[gpilopsub]=divmodi(gpiterm,gpidenom,1);
gpiterm=divmodi(gpiterm,gpidenom,0);
// depth = 5
gpilopctr=gpilopsub;
}
gpilopctr=0;
// depth = 4
while(gpilopctr < hpixb)
{
if(gpeallow > 0)
{
gpctrase=gpints[gpilopctr]*4;
gpbig[gpdesrase]=gpct[gpctrase];
// depth = 6
gpbig[gpdesrase+1]=gpct[gpctrase+1];
gpbig[gpdesrase+2]=gpct[gpctrase+2];
gpdesrase=gpdesrase+3;
gpixctr=gpixctr+1;
if(gpixctr >= gbiwidth)gpeallow=0;
}
// *** ERROR *** initial paperwork forgot to increment
// gpilopctr like next
gpilopctr=gpilopctr+1;
}
gbytectr=gbytectr+1;
}
// depth = 3
if((gbibitcount == 24)&&(gpeallow > 0))
{
gpbig[gpdesrase]=gprec[gpirase+gbytectr];
gpbig[gpdesrase+1]=gprec[gpirase+gbytectr+1];
// depth = 4
gpbig[gpdesrase+2]=gprec[gpirase+gbytectr+2];
gpdesrase=gpdesrase+3;
gpixctr=gpixctr+1;
if(gpixctr >= gbiwidth)gpeallow=0;
gbytectr=gbytectr+3;
}
if(gbytectr >= ghmbytes)gpeallow=0;
}
// depth = 2
gpscalectr=gpscalectr+1;
}
}
// end of getpine
int nonbambi(char** iibplane,int nbbc[],char nbbig[])
{
// need new char* nbplane
int putbambi,bamby,bambx,bambwid,bambplat,bambictr;
int bambilimit;
char* nbplane0;
char* nbplane1;
char* nbplane2;
char* nbplane3;
char bambk,bamwh;
nbplane0 = *(iibplane + 0);
nbplane1 = *(iibplane + 1);
nbplane2 = *(iibplane + 2);
nbplane3 = *(iibplane + 3);
// 1538 indirects at 1534 thru 1537
putbambi=0-1;
bamwh=(char)putbambi;
bambk='\0';
if(((nbbc[20]) >= 0)&&((nbbc[20]) < (nbbc[21])))
{
putbambi=nbbc[20]-1;
bambilimit=(nbbc[18])*3;
bamby=nbbc[20]+nbbc[3];
bambx=nbbc[2]-1;
bambwid=nbbc[7];
bambictr=0;
while(bambictr < bambilimit)
{
bambx=bambx+1;
if((nbbig[bambictr + 1]) == bambk)
{
bitwrt(nbplane3,0,bambwid,bambx,bamby,1,0);
if((nbbc[6]) > 1)
{
bitwrt(nbplane2,0,bambwid,bambx,bamby,1,0);
bitwrt(nbplane1,0,bambwid,bambx,bamby,1,0);
bitwrt(nbplane0,0,bambwid,bambx,bamby,1,0);
}
}
if((nbbig[bambictr + 1]) == bamwh)
{
bitwrt(nbplane3,0,bambwid,bambx,bamby,1,1);
if((nbbc[6]) > 1)
{
bitwrt(nbplane2,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane1,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane0,0,bambwid,bambx,bamby,1,1);
}
}
bambictr=bambictr+3;
}
bambplat=bambx+1;
bambilimit=nbbc[18]-bambplat;
bambictr=0;
while(bambictr < bambilimit)
{
bambx=bambplat+bambictr;
bitwrt(nbplane3,0,bambwid,bambx,bamby,1,1);
if((nbbc[6]) > 1)
{
bitwrt(nbplane2,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane1,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane0,0,bambwid,bambx,bamby,1,1);
}
bambictr=bambictr+1;
}
}
return putbambi;
}
// bottom of nonbambi
int putpine(char** iirplane,int irplane[],
int vpthresh[],char vpbig[])
{
int putriny,putxvctr,putxoctr,putxictr,putxoisub;
int putbigcmp,putsmallpix;
int putbigcmr,putbigcmg,putbigcmb;
int putpilowcap,putpibigcap,putjshifx,putjshify;
char* jrplane0;
char* jrplane1;
char* jrplane2;
char* jrplane3;
jrplane0 = *(iirplane + 0);
jrplane1 = *(iirplane + 1);
jrplane2 = *(iirplane + 2);
jrplane3 = *(iirplane + 3);
// depth = 1 1608 indirects 1604 thru 1607
putpilowcap = irplane[4] * irplane[4] * 3;
putpibigcap = irplane[4] * irplane[4] * 254 * 3;
putxvctr=0;
putriny=irplane[20]+1;
if(irplane[13]==19778)putriny=irplane[20]-1;
if((irplane[20] >= 0)&&(irplane[20] < irplane[21]))
{
irplane[23]=0;
while(putxvctr < irplane[18])
{
putxoctr=0;
// putbigcmr needs to be zeroed HERE 1909
putbigcmr = 0;
putbigcmg = 0;
putbigcmb = 0;
while(putxoctr < irplane[4])
{
putxictr = 0;
while(putxictr < irplane[4])
{
// putxoisub=(putxoctr*irplane[8]*3)+(putxictr * 3);
// *** ERROR *** above calulation of
// putxoisub is incorrect
putxoisub=((irplane[8])*putxoctr)+putxictr;
putxoisub=putxoisub+(putxvctr*(irplane[4]));
putxoisub=putxoisub*3;
// depth = 5
// ***ERROR*** hidden mistake of zeroing at wrong place
// putbigcmp=0; here only works when irplane[4]==1
// *** ERROR *** initial paperwork tried to add char
// directly to int next.
putbigcmb=putbigcmb+onexwchr(putxoisub,vpbig);
putbigcmg=putbigcmg+onexwchr((putxoisub + 1),vpbig);
putbigcmr=putbigcmr+onexwchr((putxoisub + 2),vpbig);
putxictr=putxictr+1;
}
putxoctr=putxoctr+1;
}
// depth = 3
putbigcmp = putbigcmr + putbigcmg + putbigcmb;
if((irplane[6] >= 0)&&(irplane[6] <= 1))
{
putsmallpix=0;
if(putbigcmp > irplane[23])putsmallpix=1;
if(putsmallpix == 1)irplane[23]=putbigcmp+1;
if(putsmallpix == 0)irplane[23]=putbigcmp-1;
if(irplane[6] == 1)
{
if(putbigcmp < putpilowcap)putsmallpix=0;
// depth = 5
if(putbigcmp > putpibigcap)putsmallpix=1;
}
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,putsmallpix);
}
// cut here depth = 3 ------------ 1871 twotop
if((irplane[6]) == 2)
{
putsmallpix=0;
putxoctr=0;
putxictr=1;
while(putxictr > 0)
{
if(putbigcmp < (irplane[58+putxoctr]))putxictr=0;
if(putxictr > 0)putxoctr=putxoctr+1;
if(putxoctr > 5)putxictr=0;
}
putxictr=thsixsev[putxoctr];
putxoctr=putxictr+putxictr;
putxictr=putxoctr+putxoctr;
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// two bottom 1897
if((irplane[6]) == 3)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=divmodi(putjshifx,2,1);
putsmallpix=divmodi(putjshify,2,1);
putxoctr=putsmallpix+putsmallpix+putxictr;
putsmallpix=0;
if(putbigcmr > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 48;
}
if(putbigcmg > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 40;
}
if(putbigcmb > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 36;
}
if(putsmallpix == 0)
{
if(putbigcmr > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 16;
}
if(putbigcmg > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 8;
}
if(putbigcmb > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 4;
}
}
putxictr=putsmallpix;
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// threebottom 2026
// cut here depth = 3 ------------
if((irplane[6]) == 4)
{
putsmallpix=0;
putxoctr=0;
putxictr=1;
while(putxictr > 0)
{
if(putbigcmp < (irplane[58+putxoctr]))putxictr=0;
if(putxictr > 0)putxoctr=putxoctr+1;
if(putxoctr > (thdimtran-2))putxictr=0;
}
putxictr=thbigtran[putxoctr];
putxoctr=putxictr+putxictr;
putxictr=putxoctr+putxoctr;
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// four bottom 2062
// end of colored adapter
putxvctr=putxvctr+1;
}
// depth = 2
putxvctr=0;
while(putxvctr < irplane[19])
{
putsmallpix=1;
putxictr=putxvctr+irplane[18];
putjshifx=putxictr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,putsmallpix);
if((irplane[6]) > 1)
{
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,putsmallpix);
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,putsmallpix);
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,putsmallpix);
}
putxvctr=putxvctr+1;
}
// depth = 2
}
return putriny;
}
// end of putpine
int onebumpw(char** ijplane,int onbbc[],
char ombrecord[],char ombgbig[])
{
FILE* ombfh;
int ombctr,fnlen,fdlen,omballow,oneedclose,ombresu;
char ombcolort[1024];
int ombthresh[16];
char ombfns[90];
// SEEK_SET SEEK_CUR SEEK_END
ombfns[0]='\0';
oneedclose=0;
ombresu=0;
omballow=1;
if(onbbc[5] == 0)
{
fnlen = ombrlen(0,40,ombrecord);
ombctr=0;
while(ombctr < fnlen)
{
ombfns[ombctr]=ombrecord[ombctr];
ombctr=ombctr+1;
}
ombfns[fnlen]='\0';
ombfh = NULL;
if(fnlen > 0)ombfh = fopen(ombfns,"rb");
if(ombfh == NULL)omballow = 0;
// depth = 2
if(omballow > 0)
{
fseek(ombfh,0,SEEK_END);
fdlen=ftell(ombfh);
fseek(ombfh,0,SEEK_SET);
oneedclose=1;
}
// depth = 2
}
// depth = 1;
onbbc[8]=0;
onbbc[9]=0;
onbbc[10]=24;
onbbc[13]=0;
onbbc[15]=0;
if(omballow > 0)
{
omballow=nzreadmbhdr(onbbc,ombrecord,ombcolort,ombfh);
if((onbbc[6]) == 2)
{
ombctr=0;
while(ombctr < 6)
{
onbbc[(58+ombctr)]=shrinkth[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 3)
{
ombctr=0;
while(ombctr < 8)
{
onbbc[(58+ombctr)]=rgbeight[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// colormode == 4
if((onbbc[6]) == 4)
{
ombctr=0;
while(ombctr < (thdimtran - 1))
{
onbbc[(58+ombctr)]=bigthre[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// --
}
if((omballow>0)&&((onbbc[21])>0)&&(oneedclose==1))
{
onbbc[56]=onbbc[56]+1;
}
if((onbbc[56]) > 9)onbbc[56]=0;
if((omballow > 0)&&(onbbc[13] == 19778))
{
if(((onbbc[10]) > 1)||((onbbc[4]) > 1))
{
while(omballow > 0)
{
getpine(onbbc,ombrecord,ombcolort,ombgbig,ombfh);
onbbc[20]=putpine(ijplane,onbbc,ombthresh,ombgbig);
if(onbbc[20] < 0)omballow=0;
ombresu=1;
}
}
if(((onbbc[10]) == 1)&&((onbbc[4]) == 1))
{
// if bibitcount==1 and scale==1 fast version
while(omballow > 0)
{
zackreadbw(onbbc,ombrecord,ombcolort,ombgbig,ombfh);
onbbc[20]=nonbambi(ijplane,onbbc,ombgbig);
if(onbbc[20] < 0)omballow=0;
ombresu=1;
}
}
// ------------
}
if(oneedclose > 0)
{
fclose(ombfh);
}
// depth = 1
// ---------
return ombresu;
}
// end of onebumpw
int twobumpw(char** tjple,int tmbc[],char tmbr[],
char tbjg[],char tbf[])
{
int tmhrrem,tmbdiscard,tmbswitch,tmbresult,tmbtuebot;
char tnutexxt[88];
// (640 * 16 / 8) + 62
char tmogroup[2700];
char tmolinne[2684];
tmbswitch=tmbc[5];
tmbdiscard=0;
while(tmbdiscard < 40)
{
tnutexxt[tmbdiscard]='\40';
tmbdiscard=tmbdiscard+1;
}
if(tmbswitch > 0)
{
tmbresult=onebumpw(tjple,tmbc,tmbr,tbjg);
}
if(tmbswitch == 0)
{
// -------------
tmbdiscard=0;
while(tmbdiscard < 40)
{
tnutexxt[tmbdiscard]=tmbr[tmbdiscard];
tmbdiscard=tmbdiscard+1;
}
// -------------
tmbc[21]=0;
tmbc[4]=0;
tmbresult=0;
if((tmbc[24]) > 0)
{
tmbresult=onebumpw(tjple,tmbc,tmbr,tbjg);
}
tmbtuebot=tmbc[21];
tmhrrem=tmbc[1]-tmbtuebot;
// depth = 2
if((tmbc[0]) < 280)tmhrrem=0;
// ------------------------------------
tmbc[52]=divmodi(tmhrrem,14,0);
// greatest possible tmbc[52] is number of lines of
// text to be written
if((tmbc[52]) > 16)tmbc[52]=16;
if((tmbc[30]) == 11830)tmbc[52]=1;
tmbc[53]=1;
if((tmbc[30]) == 11830)tmbc[53]=1;
tmbc[51]=0;
tmbc[54]=0;
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
// printstr(tmolinne,(tmbc[0]),1000,tbf,40,tnutexxt);
// tmbdiscard=onebumpw(tjple,tmbc,tmolinne,tbjg);
// -------------------------------------
// ------------------------------------
chrfroms(0,40,tnutexxt,"w ---- h ---- s ----- b -- u dos B!");
linuwrn(3,4,10,tnutexxt,(tmbc[8]));
linuwrn(11,4,10,tnutexxt,(tmbc[9]));
linuwrn(19,1,10,tnutexxt,(tmbc[56]));
linuwrn(20,1,10,tnutexxt,(tmbc[35]));
linuwrn(21,1,10,tnutexxt,(tmbc[28]));
linuwrn(22,2,10,tnutexxt,(tmbc[4]));
linuwrn(28,2,10,tnutexxt,(tmbc[10]));
if(((tmbc[12]) > 0)&&((tmbc[10]) == 8))
{
linuwrn(34,3,10,tnutexxt,(tmbc[12]));
}
linuwrn(39,1,16,tnutexxt,((tmbc[6])+10));
if(tmbc[(tmbc[35] + 40)] == 0)
{
chrfroms(0,40,tnutexxt,"No bitmap file is here. !");
// chrfroms(0,40,tnutexxt,"-------- -------- -------- -------- !");
// linuwrn(1,8,16,tnutexxt,(saveapal[0]));
// linuwrn(10,8,16,tnutexxt,(saveapal[1]));
// linuwrn(19,8,16,tnutexxt,(saveapal[2]));
// linuwrn(28,8,16,tnutexxt,(saveapal[3]));
}
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
// --------------------------------------------------------------
chrfroms(0,40,tnutexxt,"w ---- h ---- t --- k --- -------- r!");
linuwrn(3,4,10,tnutexxt,(tmbc[7]));
linuwrn(11,4,10,tnutexxt,(tmbc[29]));
if((tmbc[35]) < 5)
{
linuwrn(3,4,10,tnutexxt,((tmbc[7]) >> 1));
linuwrn(11,4,10,tnutexxt,((tmbc[29]) >> 1));
}
linuwrn(19,3,10,tnutexxt,(tmbc[32]));
if(((tmbc[26]) >= 0)&&((tmbc[26]) < 1000))
{
linuwrn(26,3,10,tnutexxt,(tmbc[26]));
if(nzlibkey == 0)
{
if(((tmbc[26]) >= 32)&&((tmbc[26]) < 127))
{
tnutexxt[23] = (char)(tmbc[26]);
}
if(((tmbc[26]) >= 544)&&((tmbc[26]) < 639))
{
tnutexxt[22] = (char)(tmbc[26]-512);
}
}
// bottom of 0 to 1000 is next
}
linuwrn(30,8,16,tnutexxt,(tmbc[27]));
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"-- Zacks Death Star is helping LINUX. !");
linuwrn(1,2,10,tnutexxt,(tmbc[52]));
if((lmoux < 10000)&&(lmouy < 10000))
{
if((lmoux >= 0)&&(lmouy >= 0))
{
if((tmbc[4]) == 1)
{
chrfroms(0,40,tnutexxt,"-- ---- ---- ------------------------ !");
linuwrn(4,4,10,tnutexxt,lmoux);
linuwrn(9,4,10,tnutexxt,lmouy);
}
}
}
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"Vote for an All Volunteer jury system. !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"This program is not valid without its !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"source code file vgview05.c !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"THE ABILITY TO DESTROY A PLANET IS !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"INSIGNIFICANT NEXT TO THE POWER OF !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"OPEN SOURCE. !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt," o open 1 to 4 small screen q quit!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"5 large screen c colormode r redraw!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
if(fourdirpen == 0)
{
chrfroms(0,40,tnutexxt," ; get current directory filenames !");
}
if(fourdirpen == 1)
{
chrfroms(0,40,tnutexxt," . close dir , next dirfilename !");
}
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"Vote against the U.S. military draft by!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"Voting for an All Volunteer jury system!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"vgview05.c 08/26/06 by Eric Matteson !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
// -------------------------------------------------------------
tmbc[54]=1;
tmbc[51]=0;
tmbc[5]=1;
tmbc[4]=1;
tmbc[3]=tmbc[3]+tmbc[21];
tmbc[21]=14;
tmhrrem=1;
while(tmhrrem > 0)
{
tmhrrem=xwtscroll(tmbc,tnutexxt,tmogroup);
if(tmhrrem > 0)
{
printstr(tmolinne,(tmbc[0]),1000,tbf,40,tnutexxt);
tmbdiscard=onebumpw(tjple,tmbc,tmolinne,tbjg);
tmbc[3]=tmbc[3]+tmbc[21];
}
}
// -------------------------------------
}
// depth = 1
return tmbresult;
}
// end of twobumpw
int twobuz(char** zpl,int zbc[],char zrc[],char zb[],
char zf[],char zn[])
{
// zpl[] is target plane
// zbc[] is bitmap context
// zrc[] is record
// zb[] is big line of 24 bit pixels
// zf[] is font storage
// zn[] is filename
int tbzsel,tbzctr,tbzfnbase,tbzfnlen,tbztzes;
tbztzes=0;
tbzsel = zbc[35];
if((tbzsel >= 1)&&(tbzsel <= 5))
{
if(tbzsel == 5)
{
// zbc[0]=divmodi(((zbc[7])-31),32,0)*32;
// zbc[1]=zbc[29]-28;
zbc[0]=divmodi(((zbc[7])-0),32,0)*32;
zbc[1]=zbc[29]-14;
zbc[2]=0;
zbc[3]=0;
zbc[34]=160;
}
if(tbzsel == 1)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = 0;
zbc[3] = 0;
zbc[34] = 0;
}
if(tbzsel == 2)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = zbc[0];
zbc[3] = 0;
zbc[34] = 40;
}
if(tbzsel == 3)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = 0;
zbc[3] = zbc[1];
zbc[34] = 80;
}
if(tbzsel == 4)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = zbc[0];
zbc[3] = zbc[1];
zbc[34] = 120;
}
zbc[5] = 1-1;
tbzfnbase = zbc[34];
tbzfnlen = ombrlen(tbzfnbase,40,zn);
zbc[24]=0;
if(tbzfnlen < 1)
{
tbzctr=0;
while(tbzctr < 40)
{
zrc[tbzctr] = '\40';
tbzctr=tbzctr+1;
}
}
if(tbzfnlen >= 1)
{
zbc[4]=0;
zbc[5]=0;
tbzctr=0;
while(tbzctr < 40)
{
zrc[tbzctr] = zn[tbzctr + tbzfnbase];
tbzctr = tbzctr + 1;
}
zbc[24] = zbc[tbzsel + 40];
}
tbztzes = twobumpw(zpl,zbc,zrc,zb,zf);
}
return tbztzes;
}
// end of twobuz
int fourbump(char** aap,int ac[],char ar[],char ab[],
char af[],char an[])
{
int fourbres,fourbctr,fourbase,fourkend,fourrd;
int fourbcmp,fourjj,zandtogf;
// ac[7] is planewidth ac[29] is planehgt
// ac[30] is Dagrajumpnow ac[31] is Freddyisnext
// 11829 initialize
// 11830 keys to filename
// 11831 choose screen
// 11832 is quit
fourbres=0;
while(fourbres < 4)
{
fourbcmp=divmodi(((ac[7])*(ac[29])),8,0)+1;
fourbctr=0;
while(fourbctr < fourbcmp)
{
// *** ERROR *** attempting to set indirect indirect
// pointers beyond dimension of array
// aap[fourbctr]='\0';
*(aap[fourbres]+fourbctr)='\0';
fourbctr=fourbctr+1;
}
fourbres=fourbres+1;
}
// --------------------------------------------------
fourbres=0;
fourrd=1;
fourbase=160;
if((ac[28]) == 4)fourbase=120;
if((ac[28]) == 3)fourbase=80;
if((ac[28]) == 2)fourbase=40;
// depth = 1
if((ac[28]) == 1)fourbase=0;
if((ac[30]) == 11829)
{
// fourbctr=41;
// while(fourbctr < 46)
// {
// ac[fourbctr]=0;
// depth = 3
// fourbctr=fourbctr+1;
// }
fonthfill(af);
ac[34]=160;
ac[28]=5;
ac[57]=ac[28];
ac[6]=1;
// depth = 2
ac[31]=11831;
ac[56]=0;
ac[26]=53;
ac[30]=11831;
ac[27]=131000;
fourbctr=ac[28];
}
if((ac[30]) == 11830)
{
// need ac[25] == 0
fourbctr=ac[28];
ac[34]=fourbase;
ac[35]=fourbctr;
fourkend=nzlinedone(ac,an);
fourbres=twobuz(aap,ac,ar,ab,af,an);
ac[31]=11830;
// depth = 2
if(fourkend > 0)ac[31]=11831;
if(fourkend > 0)ac[fourbctr + 40]=1;
if(fourkend > 0)ac[30]=ac[31];
}
if((ac[30]) == 11831)
{
ac[31]=11831;
fourbcmp=ac[26];
zandtogf=0;
if(fourbcmp == 82)zandtogf=1;
if(fourbcmp == 114)zandtogf=1;
if((ac[57])==(ac[28]))zandtogf=0;
if(zandtogf==1)
{
// 82 R 114 R redraw most recent
fourjj=ac[28];
if((ombrlen(fourbase,40,an)<1)&&((ac[fourjj+40])==0))
{
fourjj=0;
while(fourjj < 40)
{
zandtogf=an[(((ac[57])-1)*40)+fourjj];
an[(((ac[28])-1)*40)+fourjj] = zandtogf;
fourjj=fourjj+1;
}
fourjj=ac[28];
if(ombrlen(fourbase,40,an) > 4)ac[fourjj + 40]=1;
}
}
ac[57]=ac[28];
if((fourbcmp == 78)||(fourbcmp == 110))
{
// N 78 110 n new
fourjj=ac[28];
ac[fourjj + 40]=0;
fourjj=0;
while(fourjj < 40)
{
an[fourbase + fourjj]='\40';
fourjj=fourjj+1;
}
}
if((fourbcmp == 79)||(fourbcmp == 111))
{
// O 79 111 o open
fourbctr=ac[28];
fourrd=0;
ac[25]=0;
chrfroms(fourbase,40,an,"Enter Filename !");
// depth = 3
ac[fourbctr + 40]=0;
ac[31]=11830;
}
if((fourbcmp == 59)&&(fourdirpen == 0))
{
// 59 ;
xfourdp=opendir("./");
if(xfourdp != NULL)fourdirpen=1;
}
if((fourbcmp == 46)&&(fourdirpen == 1))
{
// 46 .
// 2609 (void) closedir(xfourdp);
closedir(xfourdp);
fourdirpen=0;
}
if((fourbcmp == 44)&&(fourdirpen == 1))
{
// 44 ,
seadirallow=0;
while(seadirallow < 40)
{
// depth = 4
can[((ac[28]-1)*40)+seadirallow]='\40';
seadirallow=seadirallow+1;
}
seadirallow=ac[28];
ac[seadirallow + 40]=0;
seadirallow=1;
while(seadirallow > 0)
{
xfourep=readdir(xfourdp);
if(xfourep == NULL)
{
fourdirpen=0;
// 2632 (void) closedir(xfourdp);
closedir(xfourdp);
// depth = 5
seadirallow=0;
}
if(seadirallow > 0)
{
if(nzextcmp((char*)(*xfourep).d_name,"2.BMP.bmp")!=0)
{
seadirallow=0;
}
}
}
// depth = 3
if(fourdirpen == 1)
{
seadirlimit=ombrlen(0,0,(*xfourep).d_name);
seadirallow=0;
if(seadirlimit < 40)
{
ac[40+(ac[28])]=1;
while(seadirallow < seadirlimit)
{
sdirch = *((*xfourep).d_name + seadirallow);
can[((ac[28]-1)*40)+seadirallow] = sdirch;
// depth = 6
seadirallow=seadirallow+1;
}
}
}
}
// depth = 2
if((fourbcmp == 81)||(fourbcmp == 113))
{
// 81 Q 113 q quit
if(fourdirpen == 1)
{
// 2669 (void) closedir(xfourdp);
closedir(xfourdp);
}
fourrd=0;
ac[31]=11832;
}
if((fourbcmp == 67)||(fourbcmp == 99))
{
// 67 C 99 c color mode
ac[6]=ac[6]+1;
if((ac[6]) > 4)ac[6]=0;
}
if((fourbcmp >= 49)&&(fourbcmp <= 53))
{
fourbctr=ac[26] - 48;
ac[28]=fourbctr;
}
// N 78 110 n new
if((fourbcmp == 78)||(fourbcmp == 111))
{
fourbctr=ac[26]-48;
ac[40+fourbctr]=0;
}
if(((ac[28]) >= 1)&&((ac[28]) <= 4))
{
fourbctr = 1;
while(fourbctr <= 4)
{
if((fourbctr == (ac[28]))||(fourrd > 0))
{
// depth = 5
ac[35]=fourbctr;
if(fourbctr == 1)ac[34]=0;
if(fourbctr == 2)ac[34]=40;
if(fourbctr == 3)ac[34]=80;
if(fourbctr == 4)ac[34]=120;
fourbres=twobuz(aap,ac,ar,ab,af,an);
}
fourbctr=fourbctr+1;
}
}
// depth = 2
if((ac[28]) == 5)
{
ac[35]=5;
ac[34]=160;
fourbres=twobuz(aap,ac,ar,ab,af,an);
}
}
// depth = 1
ac[30]=ac[31];
return fourbres;
}
// end of fourbump;
int nzextcmp(char* uncfn,char* ecright)
{
int nzrxtcmp,nzeoctr,nzeictr,nzeolim;
int nzebase,uurxtcmp,nzeterm;
nzrxtcmp=0;
nzebase=ombrlen(0,0,uncfn)-4;
nzeolim=ixreada(1,1,16,0,ecright);
if(nzebase >= 1)
{
nzeoctr=0;
while(nzeoctr < nzeolim)
{
// depth=3
nzeictr=0;
uurxtcmp=0;
while(nzeictr < 4)
{
// 2740 replace onexwdig(int,char*) 2741 2742 with onexwchr
nzeterm=onexwchr(((nzeoctr*4)+1+nzeictr),ecright);
if(onexwchr((nzebase+nzeictr),uncfn) != nzeterm)
// *** ERROR *** above mistake was hidden and hard to find.
{
uurxtcmp=1;
// depth = 5
}
nzeictr=nzeictr+1;
}
if(uurxtcmp == 0)nzrxtcmp=1;
nzeoctr=nzeoctr+1;
}
}
return nzrxtcmp;
}
char twofromten(int rawenine)
{
int eightofi[8];
int rtftctr,rfftres,rawentop,rfftrem;
char tfftres;
rtftctr=8;
rawentop=rawenine;
while(rtftctr > 0)
{
rfftrem=divmodi(rawentop,10,1);
rawentop=divmodi(rawentop,10,0);
eightofi[rtftctr-1]=rfftrem;
rtftctr=rtftctr-1;
}
rtftctr=0;
rfftres=0;
while(rtftctr < 8)
{
rfftres=rfftres*2;
rfftres=rfftres+eightofi[rtftctr];
rtftctr=rtftctr+1;
}
if(rfftres > 127)rfftres=rfftres-256;
tfftres = (char)rfftres;
return tfftres;
}
// add font below this line ----------2012
// 4096 = 64 * 64 to 256 * 16
// 64 = 16 * 4
// outer loop 0 to 63 (*64)
// medium loop (medium * 4) + 0 to 3
// medium is 0 to 15
// medium result (0 to 3)*16 + (medium*1)
// inner loop 0 to 3
// -----------------------------------------------
// 20000000-,200000000,20000000-,200000000,
// 201000100,201111100,201111100,201111100,
// 201000100,201111100,201111100,201111100,
// 201000100,201100000,201100000,200001100,
// 201000100,201100000,201100000,200001100,
// 201000100,201100000,201100000,200001100,
// 201000100,201100000,201111100,200001100,
// 20xxxxx0-,20xxxxx0-,-0xxxxx0-,20xxxxx0-,
// 201111100,201111100,201111100,200001100,
// 201111100,201111100,201100100,200001100,
// 200001100,200001100,201100100,200001100,
// 200001100,200001100,201100100,200001100,
// 200001100,201111100,201111100,200001100,
// 200001100,201111100,201111100,200001100,
// 200000000,200000000,200000000,200000000,
// 200000000,200000000,200000000,200000000,
// ,2 , ,2 ,
// Open Source Font Copyright C 2005 by Eric Matteson
// Permission is granted to use this font in
// open source applications programs written for Linux.
// begin open source font ,2 , ,2,
// ); ,2 , ,2,
// -x76543210-x76543210-x76543210-x76543210-
int ifhfg[]={ 200000000,200000000,
200000000,200000000,
200000000,200000000,200000000,200000000,
// -x76543210-x76543210-x76543210-x76543210.
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200011000,200100100,200100100,
200000000,200011000,200100100,200100100,
200000000,200011000,200110100,201111100,
200000000,200011000,200110100,201111100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200000000,200000000,201111100,
200000000,200000000,200000000,201111100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200111100,201110100,200011100,200011000,
200111100,201110100,200011100,200011000,
201001000,201010100,200010100,200001000,
201001000,201010100,200010100,200001000,
201001000,201111100,200111100,200000000,
201001000,201111100,200111100,200000000,
201111100,200101000,201100100,200000000,
201111100,200101000,201100100,200000000,
200001000,201001100,201100100,200000000,
200001100,201001100,201100100,200000000,
201111100,200000000,201111100,200000000,
201111100,200000000,201111100,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200001100,200110000,200010000,200011000,
200001100,200110000,200010000,200011000,
200011000,200011000,201010100,200011000,
200011000,200011000,201010100,200011000,
200110000,200001100,200111000,201111100,
200110000,200001100,200111000,201111100,
200110000,200001100,200111000,201111100,
200110000,200001100,200111000,201111100,
200011000,200011000,201010100,200011000,
200011000,200011000,201010100,200011000,
200001100,200110000,200010000,200011000,
200001100,200110000,200010000,200011000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200001100,
200000000,200000000,200000000,200001100,
200000000,200000000,200000000,200001100,
200000000,200000000,200000000,200001100,
200000000,200111100,200000000,200011000,
200000000,200111100,200000000,200011000,
200000000,200111100,200000000,200011000,
200000000,200111100,200000000,200011000,
200001100,200000000,200000000,200110000,
200001100,200000000,200000000,200110000,
200000100,200000000,200001100,201100000,
200000100,200000000,200001100,201100000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,200001100,201111100,201111100,
201111100,200001100,201111100,201111100,
201000100,200001100,200001100,200001100,
201000100,200001100,200001100,200001100,
201000100,200001100,200001100,201111100,
201000100,200001100,200001100,201111100,
201000100,200001100,201111100,201111100,
201000100,200001100,201111100,201111100,
201000100,200001100,201100000,200001100,
201000100,200001100,201100000,200001100,
201111100,200001100,201111100,201111100,
201111100,200001100,201111100,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,201111100,201111100,201111100,
201000100,201111100,201111100,201111100,
201000100,201100000,201100000,200001100,
201000100,201100000,201100000,200001100,
201000100,201100000,201100000,200001100,
201000100,201100000,201111100,200001100,
201111100,201111100,201111100,200001100,
201111100,201111100,201100100,200001100,
200001100,200001100,201100100,200001100,
200001100,200001100,201100100,200001100,
200001100,201111100,201111100,200001100,
200001100,201111100,201111100,200001100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,201111100,200000000,200000000,
201111100,201111100,200000000,200000000,
201000100,201001100,200000100,200001100,
201000100,201000100,200000100,200001100,
201000100,201000100,200000000,200000000,
201111100,201001100,200000000,200000000,
201111100,201111100,200000000,200000000,
201000100,201111100,200000000,200000000,
201000100,200001100,200000100,200000100,
201000100,200001100,200000100,200000100,
201111100,201111100,200000000,200011000,
201111100,201111100,200000000,200011000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000100,200000000,201100000,200010000,
200000100,200000000,201100000,200111000,
200011000,201111100,200011000,201100100,
200011000,201111100,200011000,201100100,
201100000,200000000,200001100,201000100,
201100000,200000000,200001100,201001000,
200011000,200000000,200011000,200010000,
200011000,200000000,200011000,200010000,
200000100,201111100,201100000,200000000,
200000100,201111100,201100000,200000000,
200000000,200000000,200000000,200010000,
200000000,200000000,200000000,200010000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,201111110,201110000,201111100,
201111100,201111100,201110000,201111100,
201000100,201000100,201001100,201100000,
201000100,201000100,201001100,201100000,
201010100,201000100,201001100,201100000,
201010100,201000100,201001100,201100000,
201010100,201111100,201110000,201100000,
201011100,201111100,201110000,201100000,
201000100,201000100,201001100,201100000,
201110100,201000100,201001100,201100000,
200000000,201000100,201110000,201111100,
200000000,201000100,201110000,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201100000,201111100,201111100,201110000,
201100000,201111100,201111100,201110000,
201011000,201100000,201100000,201001100,
201011000,201100000,201100000,201001100,
201001100,201100000,201100000,201000000,
201001100,201100000,201100000,201000000,
201001100,201111100,201111100,201111100,
201001100,201111100,201111100,201111100,
201011000,201100000,201100000,201001100,
201011000,201100000,201100000,201001100,
201100000,201111100,201100000,201110000,
201100000,201111100,201100000,201110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,200111100,200111100,201001100,
201000100,200111100,200111100,201001100,
201000100,200011000,200011000,201010000,
201000100,200011000,200011000,201010000,
201111100,200011000,200011000,201100000,
201111100,200011000,200011000,201100000,
201111100,200011000,200011000,201010000,
201111100,200011000,200011000,201010000,
201000100,200011000,201001100,201001100,
201000100,200011000,201001100,201001100,
201000100,200111100,201111100,200000000,
201000100,200111100,201111100,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,201111110,201000100,200011100,
201000000,201111110,201000100,200011100,
201000000,201010100,201100100,200100100,
201000000,201010100,201100100,200100100,
201000000,201010100,201100100,201000100,
201000000,201010100,201010100,201000100,
201000000,201010100,201010100,201000100,
201000000,201010100,201010100,201000100,
201000000,201000100,201001100,201001000,
201000000,201000100,201001100,201001000,
201111100,201000100,201000100,201111000,
201111100,201000100,201000100,201111000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,200011100,201111100,201111000,
201111100,200011100,201111100,201111000,
201000100,200100100,201000100,201100000,
201000100,200100100,201000100,201100000,
201000100,201000100,201111100,200110000,
201000100,201000100,201111100,200011000,
201111100,201000100,201100000,200001100,
201111100,201001000,201010000,200001100,
201100000,201011000,201010000,200000100,
201100000,201011000,201001000,200000100,
201100000,201110100,201001000,200011000,
201100000,201110100,201001000,201110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,201000100,201000100,201010100,
201111100,201000100,201000100,201010100,
200011000,201000100,201000100,201010100,
200011000,201000100,201000100,201011100,
200011000,201000100,200101000,201001100,
200011000,201000100,200101000,201101000,
200011000,201000100,200101000,200110000,
200011000,201000100,200101000,200110000,
200011000,201000100,200010000,200100000,
200011000,201000100,200010000,200100000,
200011000,201111100,200000000,200000000,
200011000,201111100,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,201000100,201111100,201110000,
201000100,201000100,201111100,201110000,
200101000,200100100,200001000,201000000,
200101000,200100100,200001000,201000000,
200010000,200011000,200010000,201000000,
200010000,200011000,200010000,201000000,
200101000,200011000,201000000,201000000,
200101000,200011000,201000000,201000000,
201000100,200011000,201111000,201000000,
201000100,200011000,201111000,201000000,
200000000,200000000,200000000,201110000,
200000000,200000000,200000000,201110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,200011100,200011000,200000000,
201000000,200011100,200011000,200000000,
200100000,200000100,200100100,200000000,
200100000,200000100,200100100,200000000,
200010000,200000100,201000100,200000000,
200010000,200000100,201000000,200000000,
200001000,200000100,200000000,200000000,
200001000,200000100,200000000,200000000,
200000100,200000100,200000000,200000000,
200000100,200000100,200000000,200000000,
200000100,200011100,200000000,201111100,
200000000,200011100,200000000,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,200000000,200000000,200000000,
201000000,200000000,200000000,200000000,
201100000,201111100,201000000,200000000,
201100000,201111100,201000000,200000000,
200000000,200000100,201000000,201111100,
200000000,200000100,201000000,201111100,
200000000,201111100,201111100,201100000,
200000000,201111100,201111100,201100000,
200000000,201000100,201000100,201100000,
200000000,201000100,201000100,201100000,
200000000,201111100,201111100,201111100,
200000000,201111100,201111100,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000100,201111100,201111000,201111100,
200000100,201111100,201111000,201111100,
200000100,201000100,201000000,201001000,
200000100,201000100,201000000,201001000,
201111100,201111100,201111100,201110000,
201111100,201111100,201111100,201110000,
201000100,201000000,201000000,200010000,
201000100,201000000,201000000,200010000,
201111100,201111100,201000000,200110000,
201111100,201111100,201000000,200110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,200001000,200001000,200100100,
201000000,200001000,200001000,200100100,
201000000,200000000,200000000,200101000,
201000000,200000000,200000000,200101000,
201111100,200001000,200001000,200110000,
201111100,200001000,200001000,200110000,
201000100,200001000,200001000,200101000,
201000100,200001000,200001000,200101000,
201000100,200001000,200111000,200100100,
201000100,200001000,200111000,200100100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,201100000,201000100,200000000,
200000000,201100000,201000100,200000000,
200010000,201010000,201100100,200111100,
200010000,201010000,201100100,200111100,
200010000,201011100,201010100,200100100,
200010000,201011100,201010100,200100100,
200010000,201010100,201001100,200100100,
200010000,201010100,201001100,200100100,
200011110,201000100,201000100,200111100,
200011110,201000100,201000100,200111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200111100,201111000,200000000,201110000,
200111100,201111000,200000000,201110000,
200100100,201001000,200111100,201000000,
200100100,201001000,200111100,201000000,
200011100,201110000,200100000,201111100,
200011100,201110000,200100000,201111100,
200100000,200010000,200100000,200000100,
200100000,200010000,200100000,200000100,
200100000,200011100,200100000,200011100,
200100000,200011100,200100000,200011100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200100100,
200000000,200000000,200000000,200100100,
200010000,200100100,201000100,200010100,
200010000,200100100,201000100,200010100,
201111100,200100100,200101000,201011100,
201111100,200100100,200101000,201011100,
200010000,200100100,200010000,201010000,
200010000,200100100,200010000,201010000,
200010000,200111100,200000000,200100000,
200010000,200111100,200000000,200100000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,201000100,200111100,200011100,
201000100,201000100,200111100,200011100,
200101000,200101000,200001000,200100000,
200101000,200101000,200001000,200100000,
200010000,200010000,200001000,201100000,
200010000,200010000,200001000,201100000,
200101000,200010000,200010000,200100000,
200101000,200010000,200010000,200100000,
201000100,200010000,200111100,200011100,
201000100,200010000,200111100,200011100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200010000,201110000,201110000,200010000,
200010000,201110000,201110000,200010000,
200010000,200001000,201010100,200101000,
200010000,200001000,201010100,200101000,
200000000,200001100,200011100,201000100,
200000000,200001100,200011100,201000100,
200010000,200001000,200000000,201000100,
200010000,200001000,200000000,201000100,
200010000,201110000,200000000,201111100,
200010000,201110000,200000000,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000};
// -x76543210-x76543210-x76543210-x76543210..
// end of font
void fonthfill(char fhf[])
{
int fholop,fhmedlop,fhilop,fhhsub,fhdsub,fhdterm;
// 4096 = 64 * 64 to 256 * 16
// 64 = 16 * 4
// outer loop 0 to 63 (*64)
// medium loop (medium * 4)+0 to 3 medium is 0 to 15
// medium result (0 to 3)*16 + (medium*1)
// inner loop 0 to 3
// --------------------------------
fholop=0;
while(fholop < 64)
{
fhmedlop=0;
while(fhmedlop < 16)
{
fhilop=0;
while(fhilop < 4)
{
fhhsub = (fholop * 64)+(fhmedlop * 4)+fhilop;
fhdsub = (fholop * 64)+(fhilop * 16)+fhmedlop;
fhdterm = ifhfg[fhhsub];
fhf[fhdsub]=twofromten(fhdterm);
fhilop=fhilop+1;
}
fhmedlop=fhmedlop+1;
}
fholop=fholop+1;
}
}
// end of void fonthfill(char fhf[]);
// end of vgview05.c
// This is last line of this program
/* this is the
trailer after the end of programming

0 new messages