Home Messages Index
[Date Prev][Date Next][Thread Prev][Thread Next]
Author IndexDate IndexThread Index

Re: Microsoft: Schools Fail to Teach Computing

  • Subject: Re: Microsoft: Schools Fail to Teach Computing
  • From: ericmatteson2003november@xxxxxxxxxxx
  • Date: 1 Apr 2006 12:04:14 -0800
  • Complaints-to: groups-abuse@google.com
  • Injection-info: i39g2000cwa.googlegroups.com; posting-host=207.233.52.133; posting-account=0KIkUw0AAACAwe7jm5FmoWyyah7wtEME
  • Newsgroups: comp.os.linux.advocacy
  • Organization: http://groups.google.com
  • References: <e01bi4$fr$1@godfrey.mcc.ac.uk>
  • User-agent: G2/0.2
  • Xref: news.mcc.ac.uk comp.os.linux.advocacy:1096885
>
> Roy Schestowitz wrote:
> ,----[ Quote ]
> | Schools and colleges are failing the next generation of scientists by
> | not providing the computer skills they need to do the job, according
> | to the scientists behind Microsoft Research's 2020 report.
> `----
>
> I will avoid flaming by making the remarks one begs for.
>
I know what you mean. Community college bookstores fail to
stock books about how to write c programs that run on
LINUX XWINDOWS the operating system of the future.
 It took me six years of scavenging for scraps of information
on the Internet to learn little pieces of information about
how to write c programs that run on LINUX XWINDOWS.
I finally have been able to write an example program
that displays simple bitmaps *.bmp on linux
XWindows
// this is the first line of this program
// gcc -Wall xwview04.c -L/usr/X11R6/lib -lX11 -o xwview04.out
// ./xwview04.out   at XWindows linux bash command prompt
  #include<X11/Xutil.h>
  #include<stdio.h>
// optional #include<X11/Xlib.h>
// unknown   #include<X11/keysym.h>
// optional  #include<X11/Xresource.h>
// optional  #include<X11/Xatom.h>
// optional  #include<X11/Xos.h>
// unknown   #include<stdlib.h>
  #include <stddef.h>
  #include <sys/types.h>
  #include <dirent.h>
// Copyright C 2006 by Eric Matteson
// permission is granted to copy
// this SOURCE CODE xwview04.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.
// ---------------------
   const int xxsv = 50;
   const int xsv = 62;
   const int shrinkth[] = { 0,84,216,376,564,662 };
   const int thsixsev[] = { 0,9,10,12,13,14,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[64];
   char* caap[4];
   char cdraw0[65536];
   char cdraw1[65536];
   char cdraw2[65536];
   char cdraw3[65536];
   char bar[23040];
   char caf[4096];
   char can[200];
// ---------------------------------------------
   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;
   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;
// ---------------------------
// -----------------------------------------------
  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);
// --------------------------------------------------
  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 main(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
  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
  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);
     can[80+xilop] = *(argufn + xilop);
     can[40+xilop] = *(argufn + xilop);
     can[xilop] = *(argufn + xilop);
     xilop=xilop+1;
     }
   iiac[45]=1;
   iiac[44]=1;
   }
  }
  lpdis = XOpenDisplay(adn);
  scnum=DefaultScreen(lpdis);
  scrdepth=DefaultDepth(lpdis,scnum);
  iiac[7]=608;
  iiac[29]=378;
  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);
  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);
  xolop=0;
   while(xolop == 0)
   {
   XNextEvent(lpdis,&report);
// depth = 2
    if(report.type == KeyRelease)
    {
  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(zandtogm == 0)sud=1;
    if(zandtogm == 1)
     {
//   xilop == 0 for normal
     xilop=0;
     ckey=report.xkey.keycode;
// depth = 4
     rjkey=iidoskey(ckey,sud,jxwkeyhold,"x");
     iiac[26]=rjkey;
     iiac[27]=ckey;
  if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
// 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);
   XCopyArea(lpdis,tempmap3,rempmap,agc,0,0,(iiac[7]),
                                      (iiac[29]),0,0);
   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
// depth = 2
    if(report.type == Expose)
    {
      if(report.xexpose.count == 0)
      {
      xilop=0;
// 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);
   XCopyArea(lpdis,tempmap3,rempmap,agc,0,0,(iiac[7]),
                                      (iiac[29]),0,0);
   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(report.type == ButtonPress)
    {
    xilop=0;
    if((iiac[28]) == 5)
    {
  lmoux=report.xbutton.x;
  lmouy=report.xbutton.y;
  iiac[26]=0;
  iiac[27]=381924;
  xilop=0;
  if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
// 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);
   XCopyArea(lpdis,tempmap3,rempmap,agc,0,0,(iiac[7]),
                                      (iiac[29]),0,0);
   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
   lmoux=131072;
   lmouy=131072;
    }
// depth = 3
    }
    if(report.type == ConfigureNotify)
    {
    iiac[7] = report.xconfigure.width;
// 0353 set xilop below to eight or number of bits quanwid
    xilop=8;
// wrong   iiac[29] = (xilop * (iiac[7])) + (xilop - 1);
// wrong   iiac[7]=divmodi((iiac[29]),xilop,0);
     iiac[29]=divmodi(((iiac[7])+(xilop-1)),xilop,0);
     iiac[7]=xilop*iiac[29];
// restore 29 height
    iiac[29] = report.xconfigure.height;
     xilop=1;
//   xilop == 0 to update display after configure notify
     xilop=0;
// no key available here     ckey=report.xkey.keycode;
// nothing here rjkey=iidoskey(ckey,sud,jxwkeyhold,"x");
//     iiac[26]=rjkey;
//     iiac[27]=ckey;
      iiac[26]=0;
// scince no real key set apparent translated key to 0
      iiac[27]=262143;
// scince no raw key set number too large to display
// configure notify does not really provide a valid key
  if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
// high speed  print to screen top monochrome high speed  2
// 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);
   XCopyArea(lpdis,tempmap3,rempmap,agc,0,0,(iiac[7]),
                                      (iiac[29]),0,0);
   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
// print page to screen bottom                   high speed
    }
   }
//  end while
//  XFreeGC(lpdis,agc);
//  XFreeGC(bgc);
//  XFreeGC(wgc);
//  XFreeGC(xgc);
//  XFreeGC(ygc);
//  XFreeGC(zgc);
  return 0;
  }
// end of main
// --------------------------------------------- 90
// ----------------------------------------------
 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)
//  {
// depth of 4 is not supported in this
// extended grey greyscale version.
//  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=3;
//  if(gca == 2)gcbr=28;
//  if(gca == 4)gcbr=224;
  if(gca == 1)gcbr=36 * redcst(1,3,2,"001");
  if(gca == 2)gcbr=36 * redcst(1,3,2,"010");
  if(gca == 4)gcbr=36 * redcst(1,3,2,"100");
  if(gca == 12)gcbr=0;
  if(gca == 14)gcbr=3;
  if(gca == 15)gcbr=255;
  if(gca == 16)gcbr=255;
  }
  if(gcdepth == 24)
  {
  if(gca == 0)gcbr=0;
//  if(gca == 1)gcbr=255;
//  if(gca == 2)gcbr=65280;
//  if(gca == 4)gcbr=16711680;
  if(gca == 1)gcbr=65793 * redcst(1,8,2,"00011000");
  if(gca == 2)gcbr=65793 * redcst(1,8,2,"00100100");
  if(gca == 4)gcbr=65793 * redcst(1,8,2,"01000010");
//  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=8289918;
  if(gca == 14)gcbr=65793 * redcst(1,8,2,"10000001");
  if(gca == 15)gcbr=16777215;
  if(gca == 16)gcbr=16777215;
  }
 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,15));
 if(zbnzw == 18)XSetBackground(lpdis,*wrgc,
                 gcbw(gsdepth,0));
 if(zbnzw == 18)XSetForeground(lpdis,*wrgc,
                 gcbw(gsdepth,15));
 if(zbnzw == 19)XSetBackground(lpdis,*wrgc,
                 gcbw(gsdepth,0));
 if(zbnzw == 19)XSetForeground(lpdis,*wrgc,
                 gcbw(gsdepth,15));
 if(zbnzw == 20)XSetBackground(lpdis,*wrgc,
                 gcbw(gsdepth,0));
 if(zbnzw == 20)XSetForeground(lpdis,*wrgc,
                 gcbw(gsdepth,15));
 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,16));
 }
// 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*)
// ------------------------------------------------------
// 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
// ------------------------------------------------------
// ----------------------------------------------------
//  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 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;
// putbigcmp needs to be zeroed HERE   1725
   putbigcmp=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.
     putbigcmp=putbigcmp+onexwchr(putxoisub,vpbig);
     putbigcmp=putbigcmp+onexwchr((putxoisub + 1),vpbig);
     putbigcmp=putbigcmp+onexwchr((putxoisub + 2),vpbig);
     putxictr=putxictr+1;
     }
    putxoctr=putxoctr+1;
    }
// depth = 3
   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
   if((irplane[6]) > 1)
   {
   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]));
  }
// 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]) > 1)
   {
   ombctr=0;
    while(ombctr < 6)
    {
    onbbc[(58+ombctr)]=shrinkth[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));
    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]));
    linuwrn(19,6,10,tnutexxt,(tmbc[32]));
    linuwrn(29,3,10,tnutexxt,(tmbc[26]));
    if(((tmbc[27]) >= 0)&&((tmbc[27]) < 100000))
    {
    linuwrn(33,5,10,tnutexxt,(tmbc[27]));
    }
    tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
    chrfroms(0,40,tnutexxt,"-- ---- ---- ------------------------  !");
    linuwrn(1,2,10,tnutexxt,(tmbc[52]));
    if((lmoux < 10000)&&(lmouy < 10000))
    {
    if((lmoux >= 0)&&(lmouy >= 0))
    {
    if((tmbc[4]) == 1)
    {
    linuwrn(4,4,10,tnutexxt,lmoux);
    linuwrn(9,4,10,tnutexxt,lmouy);
    }
    }
    }
    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 xwview04.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   !");
    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,"Vote for an All Volunteer jury system. !");
    tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
    chrfroms(0,40,tnutexxt,"xwview04.c  04/01/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[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 .
   (void) 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;
   (void) 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)
   {
   (void) 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]) > 2)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)
  {
  nzeterm=onexwdig(((nzeoctr*4)+1+nzeictr),ecright);
  if(onexwdig((nzebase+nzeictr),uncfn) != nzeterm)
  {
  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-
  const 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[]);
// This is last line of this program


[Date Prev][Date Next][Thread Prev][Thread Next]
Author IndexDate IndexThread Index