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

edelev10.c text editor program for Linux xwindows

0 views
Skip to first unread message

ericmatteson...@hotmail.com

unread,
Mar 24, 2008, 2:51:15 PM3/24/08
to
This edelev10.c is a single-file text editor written directly
for Linux XWindows. It also has a clock and idle timer at the bottom
lines 7 numbers.
On the bottom line the first four numbers are skipped.
The fifth number is the time in a time zone tzone.
the sixth number is the idle counter in seconds that is
reset by mouse or key usage.
the last number is the previous idle counter in seconds
if at least 20 seconds. */
// this is the first line of this program
// to compile and run this program on Linux XWindows use
// gcc -Wall edelev10.c -L/usr/X11R6/lib -lX11 -o edelev10.out
// ./edelev10.out
// edelev10.c
#include<X11/Xutil.h>
#include<stdio.h>
#include<time.h>
const int tzone=8;
// tzone=8 for Pacific time zone;
// change tzone if hour is wrong
int vidrev = 1;
// This free edelev10.c text editor program for
// Linux XWindows is written by Eric Matteson.
const int xxsv = 50;
// This edelev10.c text editor program is
// Copyright C 2008 by Eric Matteson.
// permission is hereby granted to copy this
// source code file edelev10.c and to
// publish it on the Internet and to use it
// at least for non-profit use.
const int xsv = 62;
// for Linux XWindows use
// nzudletter = 0
// nzbitflip = 1
// nzskip62 = 0
int nzudletter = 0;
int nzbitflip = 1;
int nzskip62 = 0;
const long isansihere = 0;
int prtdouter=100;
int prtinnerd=200;
int prtretrace=80;
// needs to recieve variables that
// were relocated from
// subroutines here
// from regkey2176
char rkeychr,rkeytype;
// --
// from open2520
long alsel520,lval2520,yp2520,ikey;
char kelp2,keval2;
char* albase20;
// --
// from writez2754
long openselwd,ldalb,nine2754t,ten2754t;
char wfn2755[82];
char *wnine2754;
// --
// from ron52640
long findo;
long opendell,ldal,lfdal;
long rcmdctr,commandgui;
long chctr40,chreqlen;
char* chlevbase;
char* chsixbase;
char* xxasub;
char* xxabase;
char keytype5,keychar5,keycmd5;
char chchr40;
char cncri;
char fn2641[82];
char wfn2756[82];
// end of relocated variables list
// needs regular global variables
int dagra,archkey,archtype,rahkctr,freddy;
// dagra jump now with key
// freddy is where next key goes
char weda2469[]={'\015','\012'};
int pahdr[] = { 0102,0115,0376,0127,0,0,
0,0,0,0,076,0,0,0,050,0,0,0,
0100,02,0,0,070,01,0,0,01,0,
01,0,0,0,0,0,0300,0127,0,0,
0304,016,0,0,0304,016,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0377,0377,0377,0 };
// edelev10.c needs a single pointer
// to all fixed text strings.
char litharg[] = "000568.."
// 62 35 63 30 64 68 65 23 66 39
// 67 48 68 60 69 69 70
"000000..000008..000016..000024.."
"000031..000038..000041..000043..000045.."
"000049..000053..000056..000061..000067.."
"000072..000078..000086..000088..000093.."
"000098..000102..000109..000114..000119.."
"000126..000129..000132..000136..000141.."
// 000207 is 30th
"000207..000267..000327..000387..000447.."
"000507..000567..000627..000687..000747.."
"000807..000867..000927..000987..001047.."
"001107..001167..001227..001287..001347.."
"001407..001467.."
// 001608 is 53rd
"001527..001608..001648..001688..001708.."
"001748..001788..001818..001878..001928.."
"001982..002017..002047..002115..002138.."
"002177..002215..002275..002344.."
// 002177 is 67nth
// begin actual text at
// (last numbers line number + 1) * 8
// estimated starting offset is 568
"unknown command!insertb ins"
"ert delete wc m k tof b"
"ot up down input quit pr"
"int!replace v open save n"
"ew change find list inputc uc l"
"c gui guiy!"
"Vote for an all volunteer jury system t"
"o !"
"a.sAve.as...u.Uppercase...j.not.used.....z.Zchangedoccheck.!"
"b.Bot............888888888888888888888888888888888888888888!"
"c.list.Commands..88888888......8888888.88.....8888.88888888!"
"d.set.bkgnD......88888888..88..88...88.88.....8888.88888888!"
"e.Exit...........88888888......88.8.88.8888.888888.8888..88!"
"f.set.upleFt.....88888888..88..88.8..8.8888.888888.88888888!"
"g.set.lowriGht...88888888..88..88.88...8888.888888.88888888!"
"h.rigHtmost......888888888888888888888888888888888888888888!"
"i.fInd...........888888888888888888888888888888888888888888!"
"l.Load...=.Hex...88...88888......88......88......88.....888!"
"m.upleft.Move....88.8...888.888..88..88..88..88888888.88888!"
"n.New............88.888.888......88......88.....88888.88888!"
"o.Open...........88.8...888.8..8888..88..88..88888888.88888!"
"p.upleft.coPy....88...88888.88...88..88..88..88888888.88888!"
"q.Quit...........888888888888888888888888888888888888888888!"
"r.Return....x.Xmarginset....y.Ylinenumber....u.Uppercase...!"
"t.Tof.......8.......EVEN.IF.THERE.IS.A.WAR.NOW.............!"
"v...........8.......VOTE.TO.ABOLISH.THE.US.MILITARY.DRAFT..!"
"w...........8........AND.ITS..REGISTRATION...NOW...........!"
"............8...by.voting.for.an.all.volunteer.jury.system.!"
"line.21.....8...in.every.court.in.your.state.and.U.S.......!"
"line.22..edelev10.c..for.Linux.XWindows.of.March..24..2008.!"
"HOME GETS MENU ANTI-DRAFT EDELEV10.C "
" xxx yyyyyyy vv lllllll HOME GETS MENU!"
"Enter filename to be saved by save as!"
"Enter filename to be saved by exit y!"
"Save file first ..!"
// save as 53 exit 54
// 55 exit save question
// 56 bkgnd 57 open
// 58 load 59 find
"enter one character for background!"
"Enter filename to be opened for reading!"
"Enter filename to be loaded!"
"Enter leftmost portion of line to find e"
"xcept blanks!"
"Enter line number between 1 and la"
"st line!"
"Vote against the U.S. military draft eve"
"n in wartime.!"
"Enter line to be inserted before!"
"Enter line to be inserted!"
"input mode. Press enter twice in a row (z"
"ero length line) when done!"
"is to be replaced with!"
"is zero length line correct ? (y or n)!"
"change leftmost portion except blanks!"
// 67 change
"press just enter to continue o"
"r h enter to halt list!"
"inputc mode. Press enter twice i"
"n a row (zero length line) when done!";
// edelev05.cpp to edelev10.c
// Eric Matteson.
// five years after CS936.
// edelev05.cpp required ansi.sys in config.sys
const char grucursor[] = { '\0','\174',
'\01','\170','\03','\160','\07','\140',
'\17','\100','\37','\0','\76','\0',
'\174','\0','\0','\070','\00','\060',
'\01','\140','\03','\100','\07','\00',
'\16','\0','\34','\0','\70','\0' };
long array939[1024];
int edraw26[109];
int sbmask;
int fp14;
int wbe2469,half2082;
int queronter;
int prtime,netime,timefive;
int ncurdey;
int edhanb;
int edhanw;
long ncrix,x,y,xp,yp;
long prindiff,prinjill,moux,mouy;
long insel,curcommand,howmanycmd;
long alsel,ytaelon,nzerror,a80w;
long afilelen,wordctra;
long ypheight,cmdheight;
long chnext,chdoc,ch,insertype;
long inspg,marginselect,alocalh;
long findbase,findlen;
long prindiffprv,uprighty,lowlefty;
long tnymouxprv,tnymouyprv;
long mouallowlocal,mouallowglobal;
long yre,jysrc,tzby,jyheight;
long yyectr,jydiff;
long lowleftc,jydest;
long uprightx,lowleftx,bkgnd;
long helpfindtest,jxwidth;
long xe,jxdiff,readfnskipzur;
long lowleftb,uppercase,comeofdelay;
long afilelenprv,moubutprv,mouctr;
long jynext,yjn,jyctr,tzrx,xxjctr;
long prevfound;
long rep0;
long evdk;
long eofi;
long fp04;
long fl06;
long hv0c;
long pose;
char one2;
char* elevrd;
// the next two numbers should be equivelant
const long zoar = 24990310;
char aptivus[24990310];
// -----------------------------------------
const long hiskwid = 16;
char hiskrba[16];
// -----------------------------------------
int iidk512[512];
char pat[240248];
char ft[65536];
char ceescreen[2080];
int nzshift,tinyoar;
int iswid72;
struct powercur
{
int neutx;
int neuty;
};
int sf;
long* ttr939;
char* sqlef965;
char* sqrgt965;
struct powercur hottyx;
int scnum,scrdepth,xwolop;
int zandtogm,rjkey,ckey,xwxwid,xwyhgt;
int* lpxgss;
char* adn = NULL;
Display* lpdis;
Window ewixtwo;
XEvent edreport;
XEvent chrisevent;
GC edgc;
XSizeHints* esizehints;
XWMHints* ewmhints;
XClassHint* eclasshints;
Pixmap edmap;
// -----------------------------
char crz0160[16383];
// in crz0160 (a80w)*(subscript-1)points to
// 1 mainline 2 secondline
// 3 delline 4 insertline
// 5 prnline 6 findline
// 7 tempfilename 8 permfilename
// 9 homegetsmenuline
// 10 timing
// 11 command line input line.
// 12-55 is 44 lines of upside down data.
// need reedstruct rs in main.
// initialization needed for fileposlh04
// repeat00 handlevalue0c
// maxreclen1c
// list subroutines
void reedline();
void readone();
void arbcopy(char*,char*);
void kfcopy(char*,char*);
void prtx(char*,char*);
// list subroutines
char* alselset(char*,long);
// void conkey(char*,char*);
void aptwrite(char*,long);
void aptread(char*,long);
void numberprn(char*,long,long,long,long);
void rprline(long,long,char*,long,long);
void cvgcline(char*,long,long,long);
void chrvgapage(char*,long);
void clearline(char*);
void aptdelete();
void aptinsert(char*);
void lalocal12(char*);
void laput12(char*);
long clenval(char*);
// command line section
long cmdlen(char*);
void cmdhmcur();
void kfclev(char*);
void aptlocloc(char*,char*,long);
void commandprn();
// void commandkey();
void deletemany(long);
void fn1113();
// command line section
void ikx1864(char*,long,long);
void iek2000(char*,long);
void gek2040(char*,long);
void dkx2050(char*,long);
void regkey2176();
void cls2330();
void clralocal2346();
void kfcdark(long,char*);
void kfcl(long,char*);
void kfc2398();
long posdigit(char,char*);
long numberget(char*,long,long,long);
char* litrlc(char*,long);
void read2426(char*,long);
void llpriz(char*,long);
void lpriz();
void write2470();
void open2520(char*,long);
void new2608();
char sixcase(char);
void writez2754(char*);
long find2822(char*,long,long);
void john2880(char*,long,long,long);
void john2938(char*);
void zahexline(char* zbbelevt,
int zathiswid,int zaelevw);
void zahexgroup(char* zaz55ptr,
int gclinesel,int gcelevwid);
void delefthh(char* absathh,
long lenlhh,long hhone);
long lefmowid(char* abslmw,long lenlmw);
long wordslin(char* wclinlp,long wclinwid);
void print3250(char* cpt3250,
int len3250,FILE* han3250);
void print3248();
void ron52640(char*,char);
// end list subroutines edelev02.cpp
// beginning of DPMS939 **** within
// edelev10.cpp *****
void gettwoforone(long*,long*,long*);
long onefromtwo(long,long);
void get16from8(long*,long*);
void get8from16(long*,long*);
long subtract256(long*,long*,long*);
long add256(long*,long*,long*);
long shifr256(long*,long*);
void mov88(long*,long*);
void mpy256(long*,long*,long*);
void posdiv256(long*,long*,long*);
long findahandle(long*);
long ansrdigit(char*,char*);
long ansrinta(char*,long,long,long);
void dpms939(long*);
int sockeyline(int,int,int*,char*);
void fi(char* ftargt,int cfash,
int cpar,int iildata);
void fjload();
void draw1712(int x1712,int y1712,
char c1712);
void draw80(int y80);
void draw2080(int cpx2080,
int cpy2080);
void draw2083(struct powercur* yottx);
void powscroll(char* sow2080);
void powdraw(struct powercur* rottyx,
char* cow2080,char net80);
void powcline(char* owcrec,int iwclen);
void powposition(struct powercur* pcuu,
int ppcx,int ppcy);
char bitflipi(int bitforwardi,
int nziflip);
char bitflipc(char bitforwardc,
int nzcflip);
int timepart(int srawtime,int subtzh,char* toadwhi);
// ----------------------------------------
// system specific for LINUX
int redcst(int rdspos,int rdswid,
int rdsbase,char* rdsjc);
void iktmany(int* imxt);
void ilinemake(int* iixt,char* xxdd);
int iidoskey(int kkll,int kshifb,
int* ixkeyhold,const char* klinuxcm);
void getgc(Window wigc,GC* wrgc,
int zbnzw);
Window makexw(XSizeHints* sizehints,
XWMHints* wmhints,
XClassHint* classhints);
// -------------------------------------
int sockeyline(int dagval,int ankey,
int* anthroctr,char* anthline)
{
int sagwood,socx,tankey;
char* alkwood;
sagwood=dagval;
tankey = ankey & 255;
alkwood=alselset(anthline,11);
if(((sagwood&1)==0)&&(sagwood>=26518)&&(sagwood<=28959))
{
if(*anthroctr == 0)
{
clearline(alkwood);
}
if((*anthroctr<80)&&(tankey>31)&&(tankey<127))
{
*(alkwood + (*anthroctr))=(char)tankey;
(*anthroctr)=(*anthroctr)+1;
}
if(((*anthroctr)>0)&&(ankey==8))
{
if((*anthroctr) < 80)
{
*(alkwood + (*anthroctr))=(char)32;
}
(*anthroctr)=(*anthroctr)-1;
*(alkwood + (*anthroctr))=(char)32;
}
if((*anthroctr)>=80)sagwood=dagval+1;
if(ankey==13)sagwood=dagval+1;
if(ankey==27)sagwood=dagval+1;
if(ankey==27)sagwood=dagval+1;
socx=x;
x=(*anthroctr)+1;
cvgcline(anthline,11,(ypheight+1),1);
x=socx;
}
return sagwood;
}
char bitflipi(int bitforwardi,int nziflip)
{
char bitflipr;
int bitflipsr,bitflipsl,bitflipol;
bitflipsr=bitforwardi & 255;
if(bitforwardi>127)bitflipsr=bitforwardi-256;
if(nziflip == 0)
{
bitflipr=(char)bitflipsr;
}
if(nziflip > 0)
{
bitflipsl=0;
bitflipol=0;
while(bitflipol < 8)
{
bitflipsl=bitflipsl+bitflipsl;
bitflipsl=bitflipsl+(bitflipsr & 1);
bitflipsr=bitflipsr >> 1;
bitflipol=bitflipol + 1;
}
if(bitflipsl>127)bitflipsl=bitflipsl-256;
bitflipr=(char)bitflipsl;
}
return bitflipr;
}
char bitflipc(char bitforwardc,int nzcflip)
{
char bitflipy;
int bitforwardh;
bitforwardh=(int)bitforwardc;
if(bitforwardh<0)bitforwardh=bitforwardh+256;
bitflipy=bitflipi(bitforwardh,nzcflip);
return bitflipy;
}
// DPMS939 memory called array939 IS NEXT
// dpms939 requires include <stdio.h> <conio.h>
// **WARNING** set this array to 0 before first
// call to DPMS939
// 00-40h is registers to pass to DOS
// 000 edi 004 esi
// 008 ebp 00C reserved
// 010 ebx 014 edx
// 018 ecx 01C eax
// 020 eip or 0 024 CS: or 0
// 028 eflags 02C esp or 0
// 030 SS: or 0 034 ES: or 0
// 038 DS: or 0 03C reserved
// 040 Reserved 044
// 048 keyupctr 04C ansictrnz
// actual DOS ONLY DPMS is below offset 044h.
// 44 and above is beyond traditional DOS
// 050 - 05F is ansi command storage line
// 060 80 byte line of text console
// display buffer
// At least the unusedifzero4 elements
// must be set to zero before first
// call to DPMS939
// 0b0 handle collection of 64 8 byte
// handles (handle4,unusedifzero4) 0b0-2cf
// 2b0
// 300 collection of 4 32 byte registers
// for 256 bit integer arithmetic
// 300 320 340 360
// 380-39C is registers to pass to 32-bit
// DPMS that do not go to DOS
// 380 edi 384 esi
// 388 ebp 38C reserved
// 390 ebx 394 edx
// 398 ecx 39C eax
// 3A0-3AC are used by applications
// 3A0 shold 3A4
// 3A8 3AC
// 480 484
// 488 48C
// 490 WM_KEYUPIFZERO 494 WM_KEYVALUE
// 498 reserved 49C reserved
// 4A0-6FF reserved for system use
// 700
// DPMS939 is a pattern to allow 32-bit
// programs to call something
// that is similar to DOS
// Eric Matteson
// begin subroutines that are
// called by DPMS939
void gettwoforone(long* dmsw,long* dlsw,
long* sdw)
{
long sdwtfo;
sdwtfo = *sdw;
*dlsw = sdwtfo & 65535;
*dmsw = (sdwtfo >> 16) & 65535;
}
long onefromtwo(long ofth,long oftl)
{
return ((ofth << 16) | (oftl & 65535));
}
void get16from8(long* des16,long* src8)
{
long zte16c,zfr8c;
zte16c=0;
zfr8c=0;
while(zfr8c<8)
{
gettwoforone((des16+(zte16c+1)),
(des16+zte16c),(src8+zfr8c));
zfr8c ++;
zte16c=zte16c+2;
}
}
void get8from16(long* des8,long* src16)
{
long zte8c,zfr16c;
zte8c=0;
zfr16c=0;
while(zte8c < 8)
{
*(des8+zte8c)=onefromtwo(*(src16+(zfr16c+1)),
*(src16+zfr16c));
zte8c ++;
zfr16c = zfr16c + 2;
}
}
long subtract256(long* resus,long* bigs,
long* tinys)
{
// returns a 32 bit flag code oring 80 sign
// 40 zero 01 carry
long flagzs,carryjs,ctr16ys,bigrzs;
long aesus[16];
long aigs[16];
long ainys[16];
flagzs=70;
carryjs=0;
get16from8(aigs,bigs);
get16from8(ainys,tinys);
ctr16ys=0;
while(ctr16ys < 16)
{
bigrzs=aigs[ctr16ys]-ainys[ctr16ys];
bigrzs=bigrzs-carryjs;
aesus[ctr16ys] = bigrzs & 65535;
carryjs=0;
if((bigrzs & 65536) != 0)carryjs=1;
if(aesus[ctr16ys] != 0)flagzs=6;
ctr16ys ++;
}
if((bigrzs & 32768) != 0)flagzs=flagzs+128;
if(carryjs != 0)flagzs=flagzs+1;
get8from16(resus,aesus);
return flagzs;
}
long add256(long* resua,long* biga,
long* tinya)
{
// returns a 32 bit flag code oring 80 sign
// 40 zero 01 carry
long flagza,carryja,ctr16ya,bigrza;
long aesua[16];
long aiga[16];
long ainya[16];
flagza=70;
carryja=0;
get16from8(aiga,biga);
get16from8(ainya,tinya);
ctr16ya=0;
while(ctr16ya < 16)
{
bigrza=aiga[ctr16ya] + ainya[ctr16ya];
bigrza=bigrza+carryja;
aesua[ctr16ya] = bigrza & 65535;
carryja=0;
if((bigrza & 65536) != 0)carryja=1;
if(aesua[ctr16ya] != 0)flagza=6;
ctr16ya ++;
}
if((bigrza&32768)!=0)flagza=flagza+128;
if(carryja != 0)flagza=flagza+1;
get8from16(resua,aesua);
return flagza;
}
long shifr256(long* destr,long* srcr)
{
long shifrctr,shifrcyo,shifrcyi,
shifrcyd,shifzz;
long destrr[16];
long srcrr[16];
shifzz=70;
shifrctr=15;
shifrcyo=0;
get16from8(srcrr,srcr);
while(shifrctr >= 0)
{
shifrcyi=shifrcyo;
shifrcyd = *(srcrr+shifrctr);
shifrcyo=0;
if((shifrcyd&1)!=0)shifrcyo=32768;
shifrcyd = shifrcyd >> 1;
shifrcyd=shifrcyd+shifrcyi;
(*(destrr+shifrctr))=shifrcyd;
if(shifrcyd != 0)shifzz=6;
shifrctr --;
}
get8from16(destr,destrr);
return shifzz;
}
void mov88(long* dest88,long* src88)
{
long ctr88v;
long ashen88[8];
ctr88v=0;
while(ctr88v < 8)
{
ashen88[ctr88v] = *(src88+ctr88v);
ctr88v ++;
}
ctr88v=0;
while(ctr88v < 8)
{
(*(dest88+ctr88v)) = ashen88[ctr88v];
ctr88v ++;
}
}
void mpy256(long* prod,long* slfac,
long* srfac)
{
long mpyxctr;
long slfaca[8];
long srfaca[8];
mpyxctr=6;
mov88(slfaca,slfac);
mov88(srfaca,srfac);
subtract256(prod,prod,prod);
while((mpyxctr & 64) == 0)
{
if((srfaca[0]&1)!=0)add256(prod,prod,slfaca);
mpyxctr=shifr256(srfaca,srfaca);
add256(slfaca,slfaca,slfaca);
}
}
void posdiv256(long* frac,long* numer,
long* denom)
{
long divctr,negctr,dshlcy;
long donstzero[8];
long donstone[8];
long divsubtrest[8];
long numerdd[8];
long denomdd[8];
long bignumber[8];
divctr=0;
negctr=0;
mov88(numerdd,numer);
mov88(denomdd,denom);
subtract256(donstzero,donstzero,donstzero);
subtract256(donstone,donstone,donstone);
donstone[0]=1;
mov88(bignumber,donstzero);
mov88(frac,donstzero);
if((*(numer+7))<0)
{
subtract256(numerdd,donstzero,numer);
negctr ++;
}
if((*(denom+7))<0)
{
subtract256(denomdd,donstzero,denom);
negctr ++;
}
while(divctr<256)
{
add256(frac,frac,frac);
dshlcy=add256(numerdd,numerdd,numerdd);
add256(bignumber,bignumber,bignumber);
if((dshlcy&1)!=0)add256(bignumber,bignumber,donstone);
dshlcy=subtract256(divsubtrest,bignumber,denomdd);
if((dshlcy & 1) == 0)
{
mov88(bignumber,divsubtrest);
add256(frac,frac,donstone);
}
divctr ++;
}
if((negctr&1)!=0)subtract256(frac,donstzero,frac);
}
// i/o subroutines are next
long findahandle(long* dptrh939)
{
long ahctr9,ahres9,ahsub9,ahwhn;
ahwhn=0;
ahres9=0-1;
ahctr9=5;
while((ahctr9 < 64) && (ahwhn == 0))
{
ahsub9=((ahctr9*2)+1)+44;
// handle32 goes to 176+(ahres*2)+0
// at open and 1 goes to next
// 0 goes to 176+(ahres*2)+4 at close
if(*(dptrh939+ahsub9) == 0)
{
ahres9=ahctr9;
ahwhn=1;
}
ahctr9 ++;
}
return ahres9;
}
long ansrdigit(char* ansa,char* ansl32)
{
// ansl32 points to
// "0123456789ABCDEF0123456789abcdef"
long ansctr,ansvotal;
ansctr=0;
ansvotal=1024;
while(ansctr < 32)
{
if(*ansa==(*(ansl32+ansctr)))ansvotal=ansctr;
ansctr ++;
}
if((ansvotal>15)&&(ansvotal<33))ansvotal=ansvotal-16;
return ansvotal;
}
long ansrinta(char* ansb,long anstar,
long answid,long ansbase)
{
long anbctr,anboff,anbchk,anbint;
anbctr=0;
anbint=0;
anbchk=1024;
while((anbctr < answid) && (anbchk==1024))
{
anboff=anbctr+anstar-1;
anbctr ++;
anbchk=ansrdigit((ansb+anboff),
"0123456789ABCDEF0123456789abcdef!!!!");
}
anbctr --;
anbchk = 0;
while((anbctr < answid) && (anbchk < 16))
{
anboff=anbctr+anstar-1;
anbctr ++;
anbchk=ansrdigit((ansb+anboff),
"0123456789ABCDEF0123456789abcdef!!!!");
if(anbchk < 16)
{
anbint=anbint*ansbase;
anbint=anbint+anbchk;
}
}
return anbint;
}
// renumbering register offsets
// for C++ pointers
// 00 edi 01 esi 02 ebp 03 reserved
// 04 ebx 05 edx 06 ecx 07 eax
// 10 eflags 18 keyupcounter
// begin DPMS939
void dpms939(long* ptr39)
{
FILE* file939;
long axres939,axhan939,axreb939;
long axred939;
long* ptr940;
long* ptr941;
long* ptr942;
char* cptr939;
axres939 = *(ptr39+7);
(*(ptr39+10))=70;
// dpms uses eax=0103h and
// ebx=0021h and ecx=0 with
// eax in 39c ecx in 398
// ebx in 390h to call dos
if((*(ptr39+(924/4))==259)&&(*(ptr39+(912/4))==33))
{
if((*(ptr39+7)==(6*256))&&(*(ptr39+5)==255))
{
(*(ptr39+10))=70;
(*(ptr39+18)) ++;
axres939=0;
if(*(ptr39+18)>14)
{
(*(ptr39+18))=0;
(*(ptr39+10))=6;
axres939=42;
// getch is no longer available
axres939=(axres939 & 255)+0;
if(axres939 == 224)axres939 = 0;
if(axres939 == 0) (*(ptr39+18))=14;
}
}
if(*(ptr39+7) == (60*256))
{
file939=fopen((char*)(*(ptr39+5)),"wb");
if(file939 == NULL) (*(ptr39+10))=61;
axres939=(int)file939;
axhan939=findahandle(ptr39);
(*(ptr39+(44+(axhan939*2))))=axres939;
(*(ptr39+(44+(axhan939*2)+1)))=1;
axres939=axhan939;
}
if(*(ptr39+7) == (61*256))
{
file939=fopen((char*)(*(ptr39+5)),"rb");
if(file939 == NULL) (*(ptr39+10))=61;
axres939=(int)file939;
axhan939=findahandle(ptr39);
(*(ptr39+(44+(axhan939*2))))=axres939;
(*(ptr39+(44+(axhan939*2)+1)))=1;
axres939=axhan939;
}
if(*(ptr39+7) == ((61*256)+1))
{
file939=fopen((char*)(*(ptr39+5)),"rb+");
if(file939 == NULL) *(ptr39+10)=61;
axres939=(int)file939;
axhan939=findahandle(ptr39);
*(ptr39+(44+(axhan939*2)))=axres939;
*(ptr39+(44+(axhan939*2)+1))=1;
axres939=axhan939;
}
if(*(ptr39+7) == (62*256))
{
axreb939 = *(ptr39+4);
axhan939 = *(ptr39+((axreb939*2)+44));
*(ptr39+((axreb939*2)+44+1))=0;
file939=(FILE*)axhan939;
fclose(file939);
}
if(*(ptr39+7) == (63*256))
{
axreb939 = *(ptr39+4);
axhan939 = *(ptr39+((axreb939*2)+44));
if(axreb939 > 4)file939=(FILE*)axhan939;
// if(axreb939 == 0)file939 = stdin;
if(axreb939 == 0)goto dio00661;
axreb939 = *(ptr39+5);
cptr939 = (char*)axreb939;
axres939 = *(ptr39+6);
fread(cptr939,axres939,1,file939);
dio00661: axres939 = *(ptr39+6);
}
if(*(ptr39+7) == (64*256))
{
axreb939 = *(ptr39+4);
axhan939 = *(ptr39+((axreb939*2)+44));
if(axreb939>4)file939=(FILE*)axhan939;
if(axreb939 == 1)file939 = stdout;
if((axreb939!=1)||((*(ptr39+19))==0))
{
axred939 = *(ptr39+5);
cptr939 = (char*)axred939;
if((axreb939!=1)||(*cptr939!='\33')||(isansihere != 0))
{
axres939 = *(ptr39+6);
if(axreb939 != 1)
{
fwrite(cptr939,axres939,1,file939);
}
if((axreb939==1)&&(*cptr939!='\33')&&(isansihere==0))
{
powcline(cptr939,axres939);
}
// --------------------------------------------
}
}
if(((*(ptr39+19))!=0)&&(isansihere==0))
{
axreb939 = *(ptr39+4);
if((axreb939==1)&&((*(ptr39+19))<16))
{
axres939 = *(ptr39+5);
cptr939 = (char*)axres939;
axreb939 = *cptr939;
axres939 = (long)ptr39;
axres939=axres939+80+(*(ptr39+19));
cptr939 = (char*)axres939;
*cptr939 = axreb939;
(*(ptr39+19)) ++;
if((axreb939 & 255) == 'H')
{
(*(ptr39+19)) = 0;
axres939 = (long)ptr39;
cptr939 = (char*)axres939;
// needs to read stored ascii digits
// y is first followed by x
axreb939=ansrinta(cptr939,82,3,10);
axres939=ansrinta(cptr939,85,4,10);
powposition(&hottyx,axres939,axreb939);
// 0643 is bottom of Windows set console
// text cursor position
}
if((axreb939 & 255) == 'm')
{
(*(ptr39+19)) = 0;
axres939 = (long)ptr39;
cptr939 = (char*)axres939;
// needs to read stored ascii digits
axreb939=ansrinta(cptr939,82,3,10);
axres939=ansrinta(cptr939,85,4,10);
// needs to
}
}
}
// --
axreb939=(*(ptr39+4));
if((axreb939==1)&&(isansihere==0)&&((*(ptr39+19))==0))
{
axreb939=(*(ptr39+5));
cptr939 = (char*)axreb939;
if(*cptr939 == '\33')
{
(*(ptr39+19)) = 1;
}
}
// --
axres939=(*(ptr39+6));
}
if(*(ptr39+7) == ((66*256)+0))
{
axreb939 = *(ptr39+4);
axhan939 = *(ptr39+((axreb939*2)+44));
file939=(FILE*)axhan939;
axreb939 = *(ptr39+6);
axreb939 = axreb939 << 16;
axreb939=axreb939+(*(ptr39+5)&65535);
fseek(file939,axreb939,SEEK_SET);
axreb939 = ftell(file939);
axres939 = axreb939 & 65535;
axreb939 = axreb939 >> 16;
*(ptr39+5)=axreb939;
}
if(*(ptr39+7) == ((66*256)+1))
{
axreb939 = *(ptr39+4);
axhan939= *(ptr39+((axreb939*2)+44));
file939=(FILE*)axhan939;
axreb939 = *(ptr39+6);
axreb939 = axreb939 << 16;
axreb939=axreb939+(*(ptr39+5)&65535);
fseek(file939,axreb939,SEEK_CUR);
axreb939 = ftell(file939);
axres939 = axreb939 & 65535;
axreb939 = axreb939 >> 16;
*(ptr39+5)=axreb939;
}
if(*(ptr39+7) == ((66*256)+2))
{
axreb939 = *(ptr39+4);
axhan939= *(ptr39+((axreb939*2)+44));
file939=(FILE*)axhan939;
axreb939 = *(ptr39+6);
axreb939 = axreb939 << 16;
axreb939=axreb939+((*(ptr39+5))&65535);
fseek(file939,axreb939,SEEK_END);
axreb939 = ftell(file939);
axres939 = axreb939 & 65535;
axreb939 = axreb939 >> 16;
*(ptr39+5)=axreb939;
}
*(ptr39+7)=axres939;
}
// 256 bit arithmetic uses dx result
// bx big si tiny
// 394h 390h 384h
// 229 228 225
// arithmetic uses eax > 010bh but
// less than 0200h at [039ch] or 231
if(*(ptr39+231)==(256+42))
// 2a * 42
{
ptr940=(long*)(*(ptr39+229));
ptr941=(long*)(*(ptr39+228));
ptr942=(long*)(*(ptr39+225));
mpy256(ptr940,ptr941,ptr942);
}
if(*(ptr39+231)==(256+43))
// 2b + 43
{
ptr940=(long*)(*(ptr39+229));
ptr941=(long*)(*(ptr39+228));
ptr942=(long*)(*(ptr39+225));
*(ptr39+10)=add256(ptr940,ptr941,ptr942);
}
if(*(ptr39+231)==(256+45))
// 2d - 45
{
ptr940=(long*)(*(ptr39+229));
ptr941=(long*)(*(ptr39+228));
ptr942=(long*)(*(ptr39+225));
*(ptr39+10)=subtract256(ptr940,ptr941,ptr942);
}
if(*(ptr39+231)==(256+47))
// 2f / 47
{
ptr940=(long*)(*(ptr39+229));
ptr941=(long*)(*(ptr39+228));
ptr942=(long*)(*(ptr39+225));
posdiv256(ptr940,ptr941,ptr942);
}
if(*(ptr39+231)==(256+61))
// 3d = 61
{
ptr940=(long*)(*(ptr39+229));
ptr941=(long*)(*(ptr39+228));
mov88(ptr940,ptr941);
}
}
// renumbering DPMS939 array for
// scaled by 4 C++ in base ten
// **WARNING** set this array to 0
// before first call to DPMS939
// 00-63 is registers to pass to DOS
// 00 edi 01 esi
// 02 ebp 03 reserved
// 04 ebx 05 edx
// 06 07 eax
// 08 eip or 0 09 CS: or 0
// 10 eflags 11 esp or 0
// 12 SS: or 0 13 ES: or 0
// 14 DS: or 0 15 reserved
// 16 Reserved 17
// 18 keyupctr 19 ansictrnz
// actual DOS ONLY DPMS is below offset 17
// 17 and above is beyond traditional DOS
// 20 - 23 is ansi command storage line
// 24 20 word line of text console
// display buffer
// At least the unusedifzero4 elements
// must be set to zero before first
// call to DPMS939
// 44 handle collection of 64 2 word
// handles (handle4,unusedifzero4) 44-171
// 172
// 192 collection of 4 8 word registers
// for 256 bit integer arithmetic
// 192 200 208 216
// 224-231 is registers to pass to
// 32-bit DPMS that do not go to DOS
// 224 edi 225 esi
// 226 ebp 227 reserved
// 228 ebx 229 edx
// 230 ecx 231 eax
// 232-235 are used by applications
// 232 shold 233 234 235
// 288 289 290 291
// 292 WM_KEYUPIFZERO 293 WM_KEYVALUE
// 294 reserved 295 reserved
// 296-447 reserved for system use
// 448
// DPMS939 is a pattern to allow 32-bit
// programs to call something
// that is similar to DOS
// end of DPMS939 ********************
void reedline()
{
long ctrd04;
long ctra06;
long ctrzz;
char bund;
char rund;
ctrd04=0;
ctra06=0;
ctrzz=0;
reedloop: if(ctra06 < a80w)goto chkrep;
goto afterloop;
chkrep: if(rep0 != 0) goto crepeat;
readone();
crepeat: bund=one2;
rep0 = 0;
cmpxc: rund = bund;
if(bund == '\314')goto cmpxa;
if(bund >= '\040')goto yreedu;
rund = '\040';
if(bund == '\015')goto cmpxd;
if(bund == '\000')goto cmpxd;
if(bund == '\012')goto cmpxa;
if(bund == '\032')goto cmpxa;
// 015.001101.0d 032.011010.1a
// 012.001010.0a 314.11001100.cc
// 040.100000.20 176.1111110.7e
*(elevrd + ctra06) = rund;
ctra06 ++;
if(hv0c < 5) goto chkrev;
xreedj: goto reedloop;
chkrev: if(bund != '\10')goto xreedj;
ctra06 -- ;
if(ctra06 == 0)goto xreedj;
ctra06 -- ;
goto xreedj;
yreedu: *(elevrd + ctra06) = rund;
ctra06 ++;
goto reedloop;
cmpxd: goto afterlined;
cmpxa: goto afterlinea;
afterlined: goto afterlinea;
aftquit: goto blanright;
afterlinea: if(bund=='\012')goto aftquit;
if(bund=='\032')goto aftquit;
if(bund == '\314')goto aftquit;
dfirst: if(hv0c >= 5)goto dseek;
if((evdk % 2) == 0)goto dseek;
goto aftquit;
dseek: if(bund == '\015')goto dloopp;
if(bund == '\000')goto dloopp;
rep0 = 4;
goto aftquit;
dloopp: if(eofi == 0)goto dloop;
goto aftquit;
dloop: readone();
bund=one2;
xtafterlinea: ctrd04 ++ ;
if(ctrd04 < 4)goto atafterlinea;
if(bund == '\000')goto reefixdz;
if(bund == '\015')goto reefixdz;
goto atafterlinea;
reefixdz: goto aftquit;
atafterlinea: goto afterlinea;
blanright: ctrzz = ctra06;
blanlop: if(ctra06 >= a80w)goto rpopline;
*(elevrd + ctra06)='\040';
ctra06 ++ ;
goto blanlop;
rpopline: rund=rep0;
goto reedret;
afterloop: if(eofi == 0)goto alproca;
goto aftquit;
alproca: if(hv0c>=5)goto alprocb;
goto aftquit;
alprocb: readone();
bund=one2;
if(eofi == 0)goto rtafterlinea;
ctrzz=8;
rtafterlinea: goto afterlinea;
reedret: ctrzz=0;
}
void readone()
{
long rdha,rdhb,diskreclen;
char honeb;
rdha=1;
rdhb=1;
if(hv0c<5)goto noteof27;
roteof2: if(fp04 < fl06)goto rnoteof;
eofi=1;
honeb = '\40';
goto yrnoteol;
yreof: eofi=1;
yrnoteof: honeb=hiskrba[pose];
pose ++;
yrnoteol: one2=honeb;
goto ybrlnc;
rnoteof: diskreclen=hiskwid;
if((fl06-fp04) >hiskwid)goto bigleftnoteof;
diskreclen=fl06-fp04;
bigleftnoteof: if(pose < hiskwid)goto xbnc;
pose=0;
noteof2: rdha=diskreclen;
// rem fread(hiskrba,rdha,rdhb,edhanb);
array939[(16/4)]=edhanb;
array939[(20/4)]=(int)hiskrba;
array939[(24/4)]=diskreclen;
array939[(28/4)]='\x3F';
array939[(28/4)]=array939[(28/4)]*256;
dpms939(array939);
xbnc: fp04 ++;
ylnc: if(fp04 < fl06)goto yrnoteof;
yxrlnc: goto yreof;
// rem noteof27: fread(&honeb,1,1,stdin);
noteof27: array939[(16/4)]=1;
// *** ERROR *** handle of one
// is no longer available
array939[(20/4)]=(int)(&honeb);
array939[(24/4)]=1;
array939[(28/4)]='\x3F';
array939[(28/4)]=array939[(28/4)]*256;
dpms939(array939);
goto yrnoteol;
ybrlnc: rdhb=1;
}
void arbcopy(char *ardest, char *arsrc)
{
long bctr,blen;
char *irdest,*irsrc;
bctr=a80w - 1;
bclop: if (bctr < 0) goto bcbot;
irsrc=arsrc+bctr;
if ( *irsrc != '\040') goto bcbot;
bctr -- ;
goto bclop;
bcbot: blen = bctr + 1;
bctr=0;
bcgop: if ( bctr < blen ) goto bcgopp;
goto bcbog;
bcgopp: irsrc=arsrc+bctr;
irdest=ardest+bctr;
*irdest = *irsrc;
bctr ++;
goto bcgop;
bcbog: irdest=ardest+bctr;
*irdest = '\0';
}
void kfcopy(char *kfdest, char *cokfsrc)
{
long legctr,leglen;
char *ifdest,*iokfsrc;
char chixpie;
leglen=78;
legctr=0;
sandwich: iokfsrc=cokfsrc+legctr;
chixpie = *iokfsrc;
if (chixpie == '!') goto piecrust;
if (chixpie == '\0')goto piecrust;
ifdest=kfdest+legctr;
*ifdest = chixpie;
legctr ++ ;
if (legctr < leglen) goto sandwich;
piecrust: ifdest=kfdest+legctr;
}
void prtx(char *prtline, char *prtcrtype)
{
long prtctr,prtlim,prtjim;
char *irtline;
char princhar;
char endprt[] = { '\15','\12','\40','\40'};
prtctr=0;
prtjim=80;
prtlim=prtjim-2;
prtloopt: irtline=prtline+prtctr;
princhar = *irtline;
prtctr ++ ;
if(princhar == '\0') goto prtloopb;
// use cio32 cout << princhar;
if(prtctr < prtjim) goto prtloopt;
prtloopb: prtjim = 2;
if(prtctr > prtlim) goto prtbot;
prtctr=0;
if(*prtcrtype == '+') goto prtbox;
prtjim=0;
prtbox: irtline = &endprt[0] + prtjim;
princhar = *irtline;
prtjim ++ ;
prtctr ++ ;
// delete for screen cout << princhar;
if(prtctr < 2) goto prtbox;
prtbot: prtctr=0;
}
char* alselset(char* alray,
long alsubscript)
{
// uses crz0160 or &crz0160[0] in
// argument list for *alray
long aldisp;
char* ptral;
aldisp=((alsubscript-1)*a80w)+0;
ptral=alray+aldisp;
return ptral;
}
void aptwrite(char* wrtlineabs,
long wrsub)
// use aptwrite(alselset(crz0160,
// locallinenumber),ytaelon)
{
long wrdisp,wlopct;
if((wrsub<tinyoar)&&(1<=wrsub))
{
wrdisp = a80w*(wrsub-1);
wlopct=0;
while (wlopct < a80w)
{
aptivus[wrdisp+wlopct]=(*(wrtlineabs+wlopct));
wlopct ++;
}
wlopct=0;
if(uppercase == 97)
{
while(wlopct < a80w)
{
aptivus[wrdisp+wlopct]=sixcase(*(wrtlineabs+wlopct));
wlopct ++;
}
}
}
if((wrsub>=tinyoar)||(1>wrsub))nzerror=1;
}
void aptread(char* rddlineabs,long rddsub)
{
long rrdisp,rrlopct;
rrdisp=a80w*(rddsub-1);
rrlopct=0;
if (rddsub<1) goto aptrrblank;
if (rddsub>afilelen) goto aptrrblank;
if (rddsub>=tinyoar) goto aptrrblank;
if (uppercase == 97)goto breadok;
areadok: while(rrlopct < a80w)
{
*(rddlineabs+rrlopct)=aptivus[rrdisp+rrlopct];
rrlopct ++;
}
goto aptreadbot;
breadok: while(rrlopct < a80w)
{
*(rddlineabs+rrlopct)=sixcase(aptivus[rrdisp+rrlopct]);
rrlopct=rrlopct+1;
}
goto aptreadbot;
aptrrblank: if(rrlopct>=a80w)goto aptreadbot;
*(rddlineabs+rrlopct) = '\40' ;
rrlopct ++ ;
goto aptrrblank;
aptreadbot: rrlopct=0;
}
void numberprn(char* stnuwa,long startsu,
long width,long basew,long nuhl)
{
// use alselset(&crz0160[0],linenumber)
// for stnuwa when to a numbered line.
long ctr,numer,nufrac,nurem,nuprod;
numer=nuhl;
ctr=width-1;
nuwlop: if(ctr<0) goto nuwbot;
nufrac=numer/basew;
goto nuwtwo;
nuwshrink: nufrac --;
nuwtwo: nuprod=basew*nufrac;
nurem=numer-nuprod;
if(nurem<0)goto nuwshrink;
numer = nufrac;
if(nurem > 9)
{
nurem = nurem + 7;
}
*(stnuwa+((startsu-1)+ctr))=nurem+'\60';
ctr --;
goto nuwlop;
nuwbot: ctr=0;
}
// esc [ 88;888H is cursor position
// esc [ 88;88;8m is color setting
void rprline(long z80w,long lily,
char* ptrtocharline,long curpos,long rpc)
{
// lily is tiny y position on screen
long rprsub;
long rprctr;
long rprlencmp;
char* ptrelem;
char rpray[58];
char rprelem;
rprctr=0;
ptrelem = &rprelem;
// rprlencmp = clenval(ptrtocharline) + 5;
rprlencmp = a80w - 4;
rpray[0] = '\33';
rpray[1] = '[';
numberprn(rpray,3,2,10,lily);
rpray[4] = ';';
numberprn(rpray,6,3,10,1);
rpray[8] = 'H';
rpray[9]=rpray[0];
rpray[10]=rpray[1];
numberprn(rpray,12,2,10,33);
rpray[13]=rpray[4];
numberprn(rpray,15,2,10,44);
rpray[16]=rpray[4];
numberprn(rpray,18,1,10,0);
rpray[18] = 'm';
rpray[19] = '!';
rprone: rprelem=rpray[rprctr];
rprctr ++;
if(rprelem == '!')goto rprtwo;
// rem 496 fwrite(ptrelem,1,1,stdout);
array939[(16/4)]=1;
array939[(20/4)]=(int)ptrelem;
array939[(24/4)]=1;
array939[(28/4)]=64*256;
// 40h write to handle number one
dpms939(array939);
goto rprone;
rprtwo: rprsub=0;
rprthree: rprelem= *(ptrtocharline+rprsub);
rprsub ++;
if(lily < (ypheight+1))goto rprfour;
if(rprsub > rprlencmp)goto rprfive;
// do not delete above overcheck
// even when promoting to graphics
// rprfour: fwrite(ptrelem,1,1,stdout);
rprfour: array939[(16/4)]=1;
array939[(20/4)]=(int)ptrelem;
array939[(24/4)]=1;
array939[(28/4)]=64*256;
// 40h write to handle one
dpms939(array939);
if(rprsub<z80w)goto rprthree;
rprfive: rprctr = 21;
rpray[21]=rpray[0];
rpray[22]=rpray[1];
numberprn(rpray,24,2,10,lily);
rpray[25]=rpray[4];
numberprn(rpray,27,3,10,curpos);
rpray[29]=rpray[8];
rpray[30]=rpray[0];
rpray[31]=rpray[1];
numberprn(rpray,33,2,10,33);
rpray[34]=rpray[4];
numberprn(rpray,36,2,10,rpc);
rpray[37]=rpray[4];
numberprn(rpray,39,1,10,0);
rpray[39] = 'm';
rpray[40] = '!';
if(curpos < 1)goto rprnine;
rprsix: rprelem=rpray[rprctr];
rprctr ++;
if(rprelem == '!')goto rprseven;
// rem fwrite(ptrelem,1,1,stdout);
array939[(16/4)]=1;
array939[(20/4)]=(int)ptrelem;
array939[(24/4)]=1;
array939[(28/4)]=64*256;
// 40h write to handle one
dpms939(array939);
goto rprsix;
rprseven: rprelem= *(ptrtocharline+(curpos-1));
// fwrite(ptrelem,1,1,stdout);
array939[(16/4)]=1;
array939[(20/4)]=(int)ptrelem;
array939[(24/4)]=1;
array939[(28/4)]=64*256;
dpms939(array939);
// 40h write to handle one
rpray[41]=rpray[0];
rpray[42]=rpray[1];
numberprn(rpray,44,2,10,lily);
rpray[45]=rpray[4];
numberprn(rpray,47,3,10,curpos);
rpray[49]=rpray[8];
rpray[50]=rpray[19];
rprctr=41;
rpreight: rprelem=rpray[rprctr];
rprctr ++;
if(rprelem == '!')goto rprnine;
// fwrite(ptrelem,1,1,stdout);
array939[(16/4)]=1;
array939[(20/4)]=(int)ptrelem;
array939[(24/4)]=1;
array939[(28/4)]=64*256;
dpms939(array939);
// 40h write to handle one
goto rpreight;
rprnine: rprctr=0;
}
void cvgcline(char* cvgcptr,long sslsel,
long spos,long howmany)
{
// sslsel is 5 for aptivus array read with
// aptread
// sslsel <> 5 for local
// read of crz0160
// spos is screen vertical position
// when sslsel = 5 additional checking
// is done on howmany = {0,1,2,>2}
// howmany={0 align prindiff only,
// 1 print y& only,2 print even if <>y&
// howmany > 2 nocursors
// temp ypplh=prindiff32+spos
long moucursorpos;
long mcp;
long shift;
long z80widthx;
long yzz;
long xzz;
long ypplh;
long concolor;
moucursorpos=0;
mcp=0;
shift=spos;
concolor=0;
if(sslsel != 5)goto cvgnonfiv;
cvgcsd: if(prindiff < 0)prindiff=0;
cvgcse: prinjill=y-prindiff;
if(ypheight<prinjill)prindiff=y-ypheight;
zwr1784: if(prinjill<1)prindiff=y-1;
zwr1786: ypplh=prindiff+spos;
if(howmany == 0)goto cvgcquit;
cvgcyone: if(y != ypplh)goto cvgcnotya;
if(howmany > 2)goto cvgcnotya;
mcp=x;
concolor=46;
if(insertype != 0)concolor=45;
goto cvgcnotyb;
cvgcnotya: if(howmany<2)goto cvgcquit;
cvgcnotyb: ytaelon=ypplh;
aptread(alselset(cvgcptr,sslsel),ytaelon);
if(howmany > 2)goto cvgcskipmo;
if(mouallowglobal == 0)goto cvgcskipmo;
mouy=mouy+(prindiff-prindiffprv);
prindiffprv=prindiff;
if(ypplh != mouy)goto cvgcskipmo;
if(mouallowlocal == 0)goto cvgcskipmo;
if(moux<1)goto cvgcskipmo;
// moucursorpos=moux+5a00h
// mouse disabled in this version.
cvgcskipmo: goto cvgcprcom;
cvgnonfiv: if(howmany > 2)goto cvgcprcom;
if(sslsel == 11)goto cvgcaltcur;
if(sslsel > 8)goto cvgcprcom;
if(sslsel < 6)goto cvgcprcom;
cvgcaltcur: mcp=x;
concolor=44;
cvgcprcom: rprline(a80w,shift,
alselset(cvgcptr,sslsel),mcp,concolor);
cvgcquit: concolor = 0;
}
// ghowmany = {0,1,2,>2}
// =0 align prindiff only
// =1 print line at Y only
// =2 print all lines
// >2 no cursor
void chrvgapage(char* guberptr,
long ghowmany)
{
long sposctr;
long cstfiv;
sposctr=0;
cstfiv=5;
chrvgatop: sposctr ++;
if(ypheight < sposctr)goto chrvgabot;
cvgcline(guberptr,cstfiv,
sposctr,ghowmany);
goto chrvgatop;
chrvgabot: cstfiv=0;
}
void clearline(char* clearptr)
{
long clearcutrush;
clearcutrush=0;
while(clearcutrush < a80w)
{
*(clearptr+clearcutrush)= '\40';
clearcutrush ++;
}
}
void aptdelete()
{
long yelctrl,yelctrh;
char aptdeleteline[80];
yelctrl=y;
de1570: yelctrh=yelctrl+1;
if(yelctrh>afilelen)goto de1586;
aptread(aptdeleteline,yelctrh);
aptwrite(aptdeleteline,yelctrl);
yelctrl=yelctrh;
goto de1570;
de1586: if(afilelen >= y) afilelen --;
}
// use alselset(crz0160,insel) for inserad
void aptinsert(char* inserad)
{
long yil,yih;
char aptinline[80];
yil=afilelen;
in1598: yih=yil+1;
if(yil < y)goto in1614;
aptread(aptinline,yil);
aptwrite(aptinline,yih);
yil --;
goto in1598;
in1614: afilelen ++;
aptwrite(inserad,y);
y++;
}
void lalocal12(char* crzload)
{
// crzload is &crz0160[0] . uses y
long ycmp;
ycmp=y+1;
if(y<0)goto la1662;
if(ycmp>afilelen)goto la1662;
aptread(alselset(crzload,2),ycmp);
goto la1664;
la1662: clearline(alselset(crzload,2));
la1664: if(y>afilelen)goto la1674;
if(y<1)goto la1674;
aptread(alselset(crzload,1),y);
goto la1676;
la1674: clearline(alselset(crzload,1));
la1676: ycmp=0;
}
void laput12(char* crzput)
{
// crzput is &crz0160[0] . uses y
long putae;
if(y<1)goto put1814;
if(chnext==0)goto put1808;
putae=y+1;
aptwrite(alselset(crzput,2),putae);
if(putae>afilelen)afilelen=putae;
put1808: aptwrite(alselset(crzput,1),y);
if(y>afilelen)afilelen=y;
put1814: ch=0;
chnext=0;
}
long clenval(char* lenabsad)
{
// use alselset(&crz0160[0],linenumber)
// for argument of clenval
long llval;
char lcmp;
llval=a80w;
le1849: lcmp = *(lenabsad+llval-1);
if(lcmp == '\40')goto le1860t;
if(lcmp == '\00')goto le1860t;
goto le1860;
le1860t: llval --;
if(llval>0)goto le1849;
le1860: lcmp = '\40';
return llval;
}
long cmdlen(char* cmdsaml)
{
long cmdctr;
char cmdparyy;
cmdctr=0;
cmdldop: cmdparyy = *(cmdsaml + cmdctr);
if(cmdparyy == '\40')goto cmdlshort;
if(cmdparyy == '\41')goto cmdlshort;
cmdctr ++;
if(cmdctr < 254)goto cmdldop;
cmdlshort: cmdparyy = '!';
return cmdctr;
}
void cmdhmcur()
{
long lenleven,lbigleven,lenstep;
long threectr,tinyhctr,hdmoffset;
char* elevbase;
char* stepbase;
char cmdhmfix,cmdhmrix;
curcommand=0;
tinyhctr=1300;
howmanycmd=1;
elevbase=alselset(crz0160,11);
lbigleven=clenval(elevbase);
lenleven=cmdlen(elevbase);
if(lenleven < 1)goto nocurcommand;
if((lbigleven-lenleven)<2)goto nohowmanycmd;
hdmoffset=lenleven+2;
howmanycmd=numberget(elevbase,hdmoffset,
((lbigleven-hdmoffset)+1),10);
nohowmanycmd: threectr=3;
olopcur: if(threectr > 28)goto nocurcommand;
stepbase=litrlc(litharg,threectr);
lenstep=cmdlen(stepbase);
threectr=threectr+1;
if(lenstep != lenleven)goto olopcur;
tinyhctr=0;
ilopcur: cmdhmfix = *(elevbase+tinyhctr);
cmdhmrix = *(stepbase+tinyhctr);
if(cmdhmfix != cmdhmrix)goto olopcur;
tinyhctr=tinyhctr+1;
if(tinyhctr<lenleven)goto ilopcur;
curcommand=threectr-1;
nocurcommand: threectr=0;
}
// bottom of cmdhmcur
void kfclev(char* levsrc)
{
char* levsrcy;
levsrcy=levsrc;
clearline(alselset(crz0160,11));
kfcopy(alselset(crz0160,11),levsrcy);
}
void aptlocloc(char* destal,
char* srcal, long aptrl)
{
long aptoctt;
aptoctt=0;
tigloc: *(destal+aptoctt)= *(srcal+aptoctt);
aptoctt ++;
if(aptoctt < aptrl)goto tigloc;
}
void commandprn()
{
long cmxshifctr,upcmdljj;
// shift up from array(11) starting at
// top then print in reverse order
cmxshifctr=ypheight+12;
cmxxyb: if(cmxshifctr < 11)goto cmxshifulr;
aptlocloc(alselset(crz0160,(cmxshifctr+1)),
alselset(crz0160,cmxshifctr),a80w);
cmxshifctr --;
goto cmxxyb;
// if ypheight == 4 15 1
// 14 2
// 13 3
// 12 4
// 11 5
cmxshifulr: cmxshifctr = ypheight + 11;
upcmdljj=1;
clearline(alselset(crz0160,11));
cmdshifxlr: if(cmxshifctr<11)goto cmdprndot;
cvgcline(crz0160,cmxshifctr,upcmdljj,4);
cmxshifctr --;
upcmdljj ++;
goto cmdshifxlr;
cmdprndot: upcmdljj=0;
}
void deletemany(long howmany)
{
long delwid,limdel,yelctrl,delmanytemp;
char dmany[164];
delwid=howmany;
yelctrl=y;
limdel=(afilelen+1)-y;
if(limdel < 0)goto nondeletec;
goto delrsize;
nondeletec: goto quitdelpop;
delrsize: if((delwid-limdel)<0)goto skipwidlim;
delwid=limdel;
skipwidlim: delmanytemp=yelctrl+delwid;
if((afilelen-delmanytemp)<0)goto shrinkafnd;
aptread(dmany,delmanytemp);
aptwrite(dmany,yelctrl);
yelctrl=yelctrl+1;
goto skipwidlim;
shrinkafnd: afilelen=afilelen-delwid;
quitdelpop: delmanytemp=0;
}
void fn1113()
{
long biglen13,istlen13,ctr13;
long ctr11,size13;
char* fn13ad;
char* fn11ad;
fn13ad=alselset(crz0160,13);
fn11ad=alselset(crz0160,11);
biglen13=clenval(fn13ad);
istlen13=cmdlen(fn13ad);
size13=(biglen13-istlen13)-1;
if(size13 < 1)goto skipfnt13;
ctr11=0;
ctr13=istlen13+1;
loopfn13: *(fn11ad+ctr11) = *(fn13ad+ctr13);
ctr11 ++;
ctr13 ++;
if(ctr11 < size13)goto loopfn13;
skipfnt13: ctr13=0;
}
// ikx1864 is critical 1734
void ikx1864(char* rayloc1,
long keychr1,long alselone)
{
// rayloc1 is &crz0160[0] . uses
// argument alselone. changes alsel.
char* albase1;
char* iisubc;
long lval1,filtkeychr,cc1;
alsel=alselone;
if(alsel==1)
{
clearline(alselset(rayloc1,2));
chdoc=1;
}
ikx1873: inspg=0;
albase1=alselset(rayloc1,alsel);
iisubc=albase1+x-1;
ch=1;
// ***ERROR*** chnext=1 is not used
// in edrandy. use chnext=0.
chnext=0;
lval1=clenval(alselset(rayloc1,alsel));
if(insertype!=0)goto z1886;
z1880: filtkeychr=keychr1;
if(keychr1 > 127)filtkeychr=keychr1-128;
if(filtkeychr < 32)filtkeychr=32;
zay1880: *iisubc=filtkeychr;
x ++;
if(alsel>5)goto z1885;
laput12(rayloc1);
z1885: goto z1990;
z1886: if(alsel>5)goto z1896;
if(((a80w-1)-lval1)<0) goto z1928;
// use jns z1892 then jmp(s) z1928
z1892: if(((a80w-1)-x)<0)goto z1960;
// use jns z1896 then jmp(s) z1960
z1896: cc1=lval1;
z1900: if(x>cc1)goto z1924;
iisubc=albase1+cc1-1;
*(iisubc+1) = *iisubc;
cc1 --;
goto z1900;
z1924: goto z1880;
z1928: iek2000(rayloc1,255);
inspg=1;
z1960: if(a80w>x)goto z1896;
filtkeychr=keychr1;
if(keychr1>127)filtkeychr=keychr1-128;
if(filtkeychr<32)filtkeychr=32;
z1963: *iisubc=filtkeychr;
z1978: gek2040(rayloc1,2);
insel=1;
clearline(alselset(rayloc1,1));
aptinsert(alselset(rayloc1,insel));
y --;
inspg=1;
z1990: lval1=0;
}
// ikx1864 was checked on 03/14/2003
// with edrandy.926
void iek2000(char* rayloc2,long nzkey)
{
// rayloc2 is &crz0160[0]
long erd,erxsub,erchk,ercmp;
char *albase2;
erd=a80w;
erxsub=x-1;
clearline(alselset(rayloc2,2));
alsel=1;
albase2=alselset(rayloc2,alsel);
erchk=0;
z2006: ercmp = *(albase2+erxsub);
// bund2 is not used in edrandy
// if(ercmp>255)ercmp=127 is
// not used in edrandy
// ??? is 255 a valid number here ??
// if(ercmp<32)ercmp=32 is not
// used in edrandy
if(ercmp!=32)erchk=1;
z2012: *(albase2+erd)=ercmp;
*(albase2+erxsub)='\40';
erd ++;
erxsub ++;
if(erxsub < a80w)goto z2006;
// jns z2020bt jmp(s) z2006
z2020bt: if(nzkey==0)goto z2022;
z2020: if(erchk==0)goto z2036;
z2022: y ++;
insel=2;
aptinsert(alselset(rayloc2,insel));
if(clenval(alselset(rayloc2,insel))==0)goto z2027;
marginselect=1;
z2027: clearline(alselset(rayloc2,2));
y-=2;
alsel=1;
albase2=alselset(rayloc2,alsel);
z2036: erd=0;
}
// iek2000 was checked by edrandy on 03/14/2003
void gek2040(char* rayloc3,long zurtwo)
{
long rr2040;
if(zurtwo!=0)goto gek2042;
iek2000(rayloc3,0);
gek2042: chnext=0;
laput12(rayloc3);
x=1;
y ++;
rr2040=y;
skipgekup: goto gek2048;
if((afilelen-y)>=0)goto gek2048;
clearline(alselset(rayloc3,3));
insel=3;
y=afilelen+1;
aptinsert(alselset(rayloc3,insel));
gek2048: rr2040=0;
}
// errors were found in edrandy in areas
// that were not referenced in gek2040
void dkx2050(char* ray4,long deltype44)
{
// ray4 is &crz0160[0]
long tnydeltype,deltype,lval4;
long ix4,deldisp,cc4,dd4;

char* albase4;
char* iisub4;
char* isi4;
// deltype44 does not change
// alsel except deltype = ???0
// deltype44 last hex digit matches
// replacement line numbers last digit.
// 2050 delete key at x (make alsel = 1)
// 2054 undefined alsel
// 2055 undefined inspg
// 2156 backwards delete (make alsel = 1)
// 2158 undefined alsel
// edrandy equivelences ix with ix4.
// replace ix with ix4 [bp+08h]
deltype=deltype44;
tnydeltype=deltype;
dkxr2050: if(tnydeltype<16)goto dkxy2050;
tnydeltype-=16;
goto dkxr2050;
dkxy2050: if(tnydeltype<0)goto dkxq;
if(tnydeltype==0)goto zy2050;
dkxnz: if(tnydeltype==4)goto z2054;
dkxnf: if(tnydeltype==5)goto z2055;
dkxnfv: if(tnydeltype==6)goto z2156;
dkxns: if(tnydeltype==8)goto z2158;
dkxq: goto zxz2142;
zy2050: alsel=1;
z2054: inspg=0;
z2055: ch=1;
albase4=alselset(ray4,alsel);
chnext=0;
iisub4=albase4+x-1;
if(alsel>5)goto z2070;
if(insertype!=0)goto z2070;
*iisub4='\40';
z2067: if(alsel>5)goto zxz2142;
// js z2068 jz z2068 jmp(>) zxz2142
z2068: laput12(ray4);
goto zxz2142;
z2070: lval4=clenval(alselset(ray4,alsel));
if(alsel>5)goto z2076;
z2074: if(deltype>63)goto z2076;
// was test word [bp+022h],040h jnz z2076
if(lval4 < x)goto z2096;
// jns z2076 jmp(s) z2096
z2076: ix4=x;
z2080: isi4=albase4+ix4-1;
if(ix4 >= lval4)goto z2090;
z2084: *isi4 = *(isi4+1);
ix4 ++;
goto z2080;
z2090: *isi4 = '\40';
goto z2067;
z2096: deldisp=1+a80w-x;
alsel=1;
albase4=alselset(ray4,alsel);
ix4=x;
z2100: cc4=ix4-1;
dd4=cc4+deldisp;
if(cc4<a80w)goto z2106;
goto z2112;
z2106: isi4=albase4+dd4;
*(albase4+cc4) = *isi4;
ix4 ++;
goto z2100;
z2112: ix4=deldisp;
z2114: isi4=albase4+cc4;
*isi4 = '\40';
cc4 ++;
ix4 --;
if(ix4 != 0)goto z2114;
z2120: ix4=0;
z2122: cc4=a80w+ix4;
isi4=albase4+cc4;
if( *isi4 == '\40' )goto z2130;
inspg=1;
chnext=1;
goto z2067;
z2130: ix4 ++;
if(ix4<a80w)goto z2122;
y ++;
z2136: aptdelete();
inspg=1;
y --;
goto z2067;
zxz2142: goto zxzz2142;
z2156: alsel=1;
chdoc=1;
if(y > 1)goto z2158;
if(x < 2)goto zxz2142;
z2158: x --;
inspg=0;
albase4=alselset(ray4,alsel);
if(x<1)goto z2162;
z2161: goto z2054;
z2162: inspg=1;
if(y > 1)goto z2167;
x=1;
y=1;
goto z2055;
z2167: y --;
lalocal12(ray4);
lval4=clenval(alselset(ray4,alsel));
x=lval4+1;
deltype=tnydeltype;
if(x<a80w)goto z2174;
x=a80w;
z2174: goto z2055;
zxzz2142: ix4=0;
}
// dkx2050 replace ix with ix4 and fix to
// match edrandy on 03/14/2003
void regkey2176()
{
// -- rkeychar rkeytype already moved
char* rptrkc;
char* rptrtype;
long rlkey;
rptrkc = &rkeychr;
rptrtype = &rkeytype;
// ?? freddy=dagra;
if((dagra & 3) == 1)goto arz2176;
if((dagra & 3) == 3)goto zfix1773;
arz2176: freddy=dagra+2;
// 1 start 3 reenter with a key
z2176: if(y>afilelen)y=afilelen+1;
if(y<1)y=1;
z2180: if(x>a80w)x=a80w;
if(x<1)x=1;
z2188: lalocal12(crz0160);
chrvgapage(crz0160,2);
z2190: if(y>afilelen)y=afilelen+1;
if(y<1)y=1;
if(x>a80w)x=a80w;
if(x<1)x=1;
lalocal12(crz0160);
cvgcline(crz0160,5,(y-prindiff),0);
numberprn(alselset(crz0160,9),42,3,10,x);
numberprn(alselset(crz0160,9),46,7,10,y);
numberprn(alselset(crz0160,9),54,2,10,(y-prindiff));
if(afilelen >= 1)
{
numberprn(alselset(crz0160,9),58,7,10,afilelen);
}
if(afilelen == 0)
{
numberprn(alselset(crz0160,9),58,7,10,tinyoar);
}
if(ncurdey != (0-11))
{
numberprn(alselset(crz0160,9),17,2,16,nzshift);
numberprn(alselset(crz0160,9),19,8,16,ncurdey);
}
cvgcline(crz0160,9,(ypheight+1),4);
cvgcline(crz0160,5,(y-prindiff),2);
zfix2191d: goto ubotkey2176;
zfix1773: *rptrtype=archtype;
*rptrkc=archkey;
if(rkeytype == '0')goto zfix2191d;
lalocal12(crz0160);
if(rkeychr != '\10')goto t2192;
goto z2294;
t2192: if(rkeychr == '\12')goto y2194;
if(rkeychr != '\33')goto t2193;
goto z2228;
t2193: if(rkeychr != '\15')goto z2200;
y2194: gek2040(crz0160,0);
chdoc=1;
zfix2197: x=marginselect;
// set x to marginselect above.
z2198: goto z2176;
// remz2198: goto ubotkey2176;
z2200: if(rkeytype != '1')goto z2216;
z2201: if(rkeychr < '\40')rkeychr = '\40';
if(rkeychr > '\177')rkeychr = '\40';
rlkey=rkeychr;
z2203: ikx1864(crz0160,rlkey,1);
// not found in edrandy
// if(clenval(alselset(crz0160,1))<1)goto z2212;
if(y>afilelen)goto z2210;
goto z2212;
z2210: afilelen ++;
// z2212: if(inspg == 0)goto z2190;
z2212: if(inspg == 0)goto zu1828;
z2214: goto z2176;
z2216: if(rkeychr == 'P')goto z2231;
if(rkeychr == 'H')goto z2234;
if(rkeychr == 'I')goto z2238;
if(rkeychr == 'Q')goto z2242;
if(rkeychr == 'M')goto z2246;
// P 50 H 48 I 49 Q 51 M 4D
// K 4B O 4F R 52 S 53 G 47
if(rkeychr == 'K')goto z2252;
if(rkeychr == 'O')goto z2263;
if(rkeychr == 'R')goto z2274;
if(rkeychr == 'S')goto z2290;
if(rkeychr == 'G')goto z2228;
z2227: goto z2176;
// home gets menu
z2228: goto z2298;
// down arrow P z2231 up arrow H z2234
z2231: y ++ ;
goto z2176;
// goto ubotkey2176;
z2234: y -- ;
goto z2176;
// goto ubotkey2176;
// page up I z2238 page down Q z2242
z2238: y=(4+y)-ypheight;
goto z2176;
// goto ubotkey2176;
z2242: y=(y+ypheight)-4;
goto z2176;
// goto ubotkey2176;
// z2246 right arrow M
z2246: x ++ ;
if(x>a80w)goto z2249;
// goto z2190;
// 1828
zu1828: if(y>afilelen)y=afilelen+1;
if(y<1)y=1;
if(x>a80w)x=a80w;
if(x<1)x=1;
lalocal12(crz0160);
cvgcline(crz0160,5,(y-prindiff),0);
numberprn(alselset(crz0160,9),42,3,10,x);
numberprn(alselset(crz0160,9),46,7,10,y);
numberprn(alselset(crz0160,9),54,2,10,(y-prindiff));
if(afilelen >= 1)
{
numberprn(alselset(crz0160,9),58,7,10,afilelen);
}
if(afilelen == 0)
{
numberprn(alselset(crz0160,9),58,7,10,tinyoar);
}
if(ncurdey != (0-11))
{
numberprn(alselset(crz0160,9),17,2,16,nzshift);
numberprn(alselset(crz0160,9),19,8,16,ncurdey);
}
cvgcline(crz0160,9,(ypheight+1),4);
cvgcline(crz0160,5,(y-prindiff),2);
goto ubotkey2176;
z2249: x=1;
goto z2231;
// z2252 left arrow K
z2252: x -- ;
// if(x>0)goto z2190;
if(x>0)goto zu1828;
if(y<2)goto z2256;
y -- ;
z2256: lalocal12(crz0160);
x=clenval(alselset(crz0160,1))+1;
if(x >= a80w)x=a80w;
z2261: goto z2176;
// z2261: goto ubotkey2176;
// 2263 end key O
z2263: if(x==1)goto z2267;
x=1;
// goto z2190;
goto zu1828;
z2267: if(y>afilelen)goto z2270;
y=afilelen+1;
goto z2176;
// goto ubotkey2176;
z2270: y=1;
goto z2176;
// goto ubotkey2176;
// z2274 insert key R 2290 delete key S
z2274: insertype = 1 - insertype;
// goto z2190;
goto zu1828;
z2290: dkx2050(crz0160,0);
chdoc=1;
goto z2212;
z2294: dkx2050(crz0160,(6+64));
chdoc=1;
goto z2212;
z2298: rlkey=0;
freddy=dagra-1;
// freddy = 1 start 3 got a key
// 2 done with regkey2176
ubotkey2176: rlkey=0;
}
// regkey2176 partially fixed by
// edrandy on 03/14/2003
void cls2330()
{
long ctr2330;
clearline(alselset(crz0160,2));
clearline(alselset(crz0160,1));
ctr2330=0;
z2336: if(ctr2330 > ypheight)goto z2343;
ctr2330 ++;
cvgcline(crz0160,2,ctr2330,4);
goto z2336;
z2343: ctr2330 = 1;
}
void clralocal2346()
{
long ctr2346;
ctr2346=0;
z2348: ctr2346 ++;
if(ctr2346 > 55)goto z2353;
clearline(alselset(crz0160,ctr2346));
goto z2348;
z2353: ctr2346=0;
cls2330();
}
void kfcdark(long darposition, char* darsrc)
{
char* darpass;
darpass=alselset(crz0160,darposition);
clearline(darpass);
kfcopy(darpass,darsrc);
}
void kfcl(long enepos,char* darlene)
{
kfcdark(3,darlene);
cvgcline(crz0160,3,enepos,4);
clearline(alselset(crz0160,3));
}
void kfc2398()
{
// kfc2398 is print page of options
cls2330();
// t.tmp
kfcl(1,litrlc(litharg,30));
kfcl(2,litrlc(litharg,31));
kfcl(3,litrlc(litharg,32));
kfcl(4,litrlc(litharg,33));
kfcl(5,litrlc(litharg,34));
kfcl(6,litrlc(litharg,35));
kfcl(7,litrlc(litharg,36));
kfcl(8,litrlc(litharg,37));
kfcl(9,litrlc(litharg,38));
kfcl(10,litrlc(litharg,39));
kfcl(11,litrlc(litharg,40));
kfcl(12,litrlc(litharg,41));
kfcl(13,litrlc(litharg,42));
kfcl(14,litrlc(litharg,43));
kfcl(15,litrlc(litharg,44));
kfcl(16,litrlc(litharg,45));
kfcl(17,litrlc(litharg,46));
kfcl(18,litrlc(litharg,47));
kfcl(19,litrlc(litharg,48));
kfcl(20,litrlc(litharg,49));
kfcl(21,litrlc(litharg,50));
kfcl(22,litrlc(litharg,51));
// is more needed here ??
}
long posdigit(char dcmpchr,char* digitslist)
{
long tposdigit,rtposdigit;
char rcmpchr;
tposdigit=0;
rtposdigit=1023;
digfindloop: rcmpchr= *(digitslist+tposdigit);
if(rcmpchr == '!')goto nondigit;
if(rcmpchr == dcmpchr)goto matchchk;
tposdigit ++;
goto digfindloop;
matchchk: rtposdigit=tposdigit;
if(tposdigit>15)rtposdigit=tposdigit-16;
nondigit: tposdigit=rtposdigit;
return tposdigit;
}
long numberget(char* absi,long startx,
long widthx,long basex)
{
// use alselset(crz0160,linenumber) instead
// of simple pointer when
// reading number from a line in crz0160.
long nget,ngctr,ngdigit;
char ddcmp;
char nbglis[]="0123456789ABCDEF0123456789abcdef!";
nget=0;
ngctr=0;
// ***ERROR*** initially forgot to include startx
ngdaa: ddcmp = *(absi+(ngctr+startx-1));
ngctr ++;
ngdigit=posdigit(ddcmp,nbglis);
if(ngdigit<16)goto ngdac;
if(ngctr < widthx)goto ngdaa;
goto ngetbot;
ngdac: ngctr --;
ngdbb: ddcmp = *(absi+(ngctr+startx-1));
ngctr ++;
ngdigit=posdigit(ddcmp,nbglis);
if(ngdigit>15)goto ngetbot;
nget *= basex;
nget += ngdigit;
if(ngctr<widthx)goto ngdbb;
ngetbot: ngctr=0;
return nget;
}
char* litrlc(char* beginlis, long litwhich)
{
long rlcpos, rlcvase, rlczos;
char* litbase;
litbase=beginlis;
rlcvase=numberget(litbase,1,8,10);
rlcpos=litwhich;
rlczos=rlcpos+rlcpos;
rlcpos=rlczos+rlczos;
rlczos=rlcpos+rlcpos+1;
rlcpos=numberget(litbase,rlczos,8,10);
rlczos=rlcpos+rlcvase+0;
litbase=beginlis+rlczos;
return litbase;
}
void read2426(char* xy2426,
long readsel126)
{
// after checking repeat determine end
// of file.
long delay2426,insel2426;
char* rtranchr;
// ***ERROR*** previously forgot to
// initialize eofi before reading.
eofi=0;
pose=hiskwid;
fp04=0;
rep0=0;
one2 = '*';
hv0c=6;
evdk=0;
insel2426=11;
rtranchr=alselset(xy2426,insel2426);
delay2426=0;
rd2428loop: if(rep0 != 0)goto rd2430;
if(delay2426 != 0)goto rd2458;
rd2430: reedline();
if(eofi == 0)goto rd2432;
delay2426 = 1;
rd2432: aptinsert(rtranchr);
goto rd2428loop;
rd2458: x=1;
}
void llpriz(char* wrtloc,long wrtmany)
{
long wwrtctr;
char wwchr;
char* awwchr;
awwchr = &wwchr;
wwrtctr=0;
while (wwrtctr < wrtmany)
{
*awwchr = *(wrtloc + wwrtctr);
wwrtctr ++;
// 1365 rem fwrite(awwchr,1,1,edhanw);
array939[(16/4)]=edhanw;
array939[(20/4)]=(int)awwchr;
array939[(24/4)]=1;
array939[(28/4)]=64*256;
// 40h write to file handle
dpms939(array939);
}
}
void lpriz()
{
int bc2469;
long wrx,lenvalb;
char wrtar[84];
char *prsrc;
prsrc=alselset(crz0160,3);
bc2469=wbe2469;
wrx=0;
lenvalb=clenval(prsrc);
while(wrx < lenvalb)
{
wrtar[wrx] = *(prsrc + wrx);
wrx ++;
}
// *(wrtar + wrx) = '\15';
// *(wrtar + (wrx+1)) = '\12';
while(bc2469 < 2)
{
*(wrtar + wrx) = weda2469[bc2469];
wrx=wrx+1;
lenvalb=lenvalb+1;
bc2469=bc2469+1;
}
// lenvalb += 2;
llpriz(wrtar,lenvalb);
}
void write2470()
{
y=0;
loop2472: y ++;
if(y > afilelen)goto z2514;
aptread(alselset(crz0160,3),y);
lpriz();
goto loop2472;
z2514: x=1;
}
void open2520(char* xy2520,long opensel8)
{
// variables already relocated
// ?? freddy=dagra;
if((dagra & 3) == 1)goto aopend2082;
if((dagra & 3) == 3)goto z2533;
aopend2082: alsel520=opensel8+6;
// 1 start 3 reenter with a key
freddy=dagra+2;
insertype=1;
ikey = '*';
if(opensel8 > 1)goto z2526;
clearline(alselset(xy2520,alsel520));
z2526: lval2520=clenval(alselset(xy2520,alsel520));
x=lval2520+1;
yp2520=10;
goto az2531;
z2530: yp2520=10;
az2531: cvgcline(xy2520,alsel520,yp2520,2);
z2532d: goto opend2145;
z2533: keval2=archkey;
kelp2=archtype;
prevfound=ikey;
ikey=(keval2 & 255);
alsel520=opensel8+6;
albase20=alselset(xy2520,alsel520);
if(keval2 == '\15')goto z2584;
if(keval2 == '\10')goto z2546;
if(kelp2 != '1')goto z2564;
if(opensel8 < 1)goto z2543;
if(keval2 > '\177')goto z2542;
if(keval2 < '\00')goto z2542;
if(keval2 < '\40')goto z2542;
z2541: goto z2543;
z2542: keval2 = '\40';
z2543: if(x>a80w)goto z2545;
ikx1864(xy2520,ikey,alsel520);
z2545: goto z2548;
z2546: if(x<2)goto z2548;
z2547: alsel=alsel520;
dkx2050(xy2520,8);
z2548: cvgcline(xy2520,alsel520,yp2520,2);
goto z2530;
z2560: alsel=alsel520;
dkx2050(xy2520,4);
goto z2548;
z2564: if(keval2 == 'S')goto z2560;
if(keval2 == 'M')goto z2574;
if(keval2 == 'K')goto z2580;
if(keval2 == 'R')goto z2577;
if(keval2 == 'O')goto rr2571;
goto z2548;
rr2571: x=1;
goto z2548;
z2574: x++;
if(x>a80w)x=a80w;
goto z2548;
z2577: insertype = 1 - insertype;
goto z2548;
z2580: x --;
if(x<1)x=1;
goto z2548;
z2584: alsel520=opensel8+6;
lval2520=clenval(alselset(xy2520,alsel520));
// is error in c++ findbase=albase20;
findlen=lval2520;
if(opensel8 < 1)goto z2600;
z2600: x=1;
freddy=dagra-1;
opend2145: if(x < 1)x=1;
// freddy = 1 start 3 get next key
// 2 done with open2520
}
void new2608()
{
ypheight=24;
a80w=80;
cmdheight=9;
// unused variable rs[0].maxreclen1c=a80w;
// unused variable rs[1].maxreclen1c=a80w;
nzshift=0;
iktmany(iidk512);
fjload();
x=1;
y=1;
// xp,yp;
prindiff=0;
prinjill=0;
// moux,mouy insel alsel,ytaelon,
nzerror=0;
tinyoar=(zoar / a80w)-3;
afilelen=0;
chnext=0;
chdoc=0;
ch=0;
insertype=1;
inspg=0;
marginselect=1;
alocalh=0;
// findbase,findlen;
prindiffprv=0;
uprighty=0;
lowlefty=1;
tnymouxprv=0;
tnymouyprv=0;
mouallowlocal=0;
mouallowglobal=0;
yre=1;
xe=1;
// jysrc,tzby,jyheight yyectr,jydiff
// lowleftc,jydest
uprightx=0;
lowleftx=1;
bkgnd='\40';
// helpfindtest,jxwidth xe,jxdiff,
// readfnskipzur lowleftb,
uppercase=0;
// comeofdelay afilelenprv,moubutprv,mouctr;
evdk=0;
eofi=0;
pose=hiskwid;
rep0=0;
elevrd = alselset(crz0160,11);
hv0c=0;
clralocal2346();
kfcopy(alselset(crz0160,9),
litrlc(litharg,52));
aptlocloc(alselset(crz0160,9),
litrlc(litharg,52),a80w);
//edelev04.cpp
}
char sixcase(char ulchr)
{
char ucval6;
// 020h.40 061h.141
// 07ah.172 07eh.176
ucval6=ulchr;
if((ulchr<'\40')||(ulchr>'\176'))ucval6='\40';
if((ulchr>'\140')&&(ulchr<'\173'))ucval6=ulchr-'\40';
return ucval6;
}
void writez2754(char* wstart0160)
{
// variables have already been relocated
if((dagra & 3) == 1)goto zd2754;
if((dagra & 3) == 3)goto z2762;
zd2754: openselwd=2;
if(afilelen < 1)goto z2772;
yp=4;
// cls2330();
// kfcl(yp,"enter filename to be saved !");
yp=12;
z2762: open2520(wstart0160,openselwd);
if((freddy & 3) == 2)goto a2765;
goto arcb2754;
a2765: ldalb=clenval(alselset(wstart0160,
(openselwd+6)));
if(ldalb < 1)goto z2772;
arbcopy(wfn2755,(alselset(wstart0160,
(openselwd + 6))));
if(openselwd < 2)goto ww2767;
// top of fn to nine
wnine2754=alselset(wstart0160,9);
nine2754t=0;
w2766: *(wnine2754+nine2754t) = '\40';
nine2754t ++;
if(nine2754t < 16)goto w2766;
nine2754t=clenval(alselset(wstart0160,(openselwd+6)));
if(nine2754t > 15)goto ww2767;
kfcopy(wnine2754,wfn2755);
ww2767: array939[(20/4)]=(int)wfn2755;
array939[(24/4)]=32;
array939[(28/4)]=60*256;
dpms939(array939);
// 3ch create file of name wfn2755
edhanw=array939[(28/4)];
z2768: write2470();
// rem 1510 fclose(edhanw);
array939[(16/4)]=edhanw;
array939[(28/4)]=62*256;
// 3eh close file of edhanw
dpms939(array939);
z2772: yp=12;
arcb2754: ten2754t=0;
}
long find2822(char* ptr160f,
long fln, long fw2823)
{
// compare line fln with local line 6;
// returns zero if equal;
long findres,bfindctr,loclen;
long sixlen,finddisp,cfindctr;
char* findsixbase;
char* findsixptr;
char findcmp;
char findloca[160];
findres=1;
finddisp=0;
zg2822: aptread(findloca,fln);
loclen=clenval(findloca);
cfindctr=6;
findsixbase=alselset(ptr160f,cfindctr);
sixlen=clenval(findsixbase);
if(sixlen<1)goto z2838;
z2835: if(afilelen<y)goto z2838;
if(loclen<sixlen)goto z2838;
finddisp=0;
z2837: goto z2840;
z2838: findres=1;
goto z2856;
z2840: bfindctr=0;
z2841: cfindctr=bfindctr+finddisp;
if(cfindctr<a80w)goto z2842;
goto z2838;
z2842: findsixptr=findsixbase+bfindctr;
findcmp = *findsixptr;
if(findcmp == '\40')goto z2853;
if(findcmp!=findloca[cfindctr])goto z2855;
z2853: bfindctr ++;
z2854: if(bfindctr<sixlen)goto z2841;
findres=0;
goto z2856;
z2855: findres=1;
finddisp ++;
if(finddisp < fw2823)goto z2837;
z2856: cfindctr=0;
return findres;
}
void john2880(char* xy2880, long aysrc,
long aydest, long aywidth)
{
// john2880 is animation with just one line
char* rindbase;
char* one2880;
char* hqsuba;
char* hxright;
long hxctr;
za2880: alsel=6;
rindbase=alselset(xy2880,alsel);
clearline(rindbase);
alsel=1;
one2880=alselset(xy2880,alsel);
z2889: aptread(one2880,aysrc);
z2890: hxctr=0;
z2892: hqsuba=rindbase+hxctr;
z2894: hxright=one2880+(hxctr+lowleftx-1);
*hqsuba = *hxright;
hxctr=hxctr+1;
z2902: if(hxctr < aywidth)goto z2892;
z2910: aptread(one2880,aydest);
// z2914 skip incrementing filelength,
// reassign filelength enlarging to caller
z2916: hxctr=0;
z2918: hqsuba=rindbase+hxctr;
hxright=one2880+(hxctr+lowleftb-1);
*hxright = *hqsuba;
hxctr=hxctr+1;
if(hxctr<aywidth)goto z2918;
// source line offset by lowleftx XXXXXX
// XXXXXXXXXXXXXXX sixline offset by zero
// destination line diff by lowleftb XXXXXX
z2932: aptwrite(one2880,aydest);
}
// rem john2938 copy animation rectangle
void john2938(char* xy2938)
{
long nextcalen;
zc2938: jxwidth=(0+uprightx-lowleftx);
nextcalen=afilelen;
z2939: lowleftc=y;
jyheight=(0+uprighty-lowlefty);
jynext=lowleftc+jyheight;
z2942: jydiff=lowleftc-lowlefty;
// 2943 rem jydiff < 0 start small decrease
// 2944 rem jydiff >=0 start big increase
z2949: lowleftb=x;
z2950: jxdiff=lowleftb-lowleftx;
z2951: if(jxwidth<0)goto z2984;
z2952: if(jyheight<0)goto z2984;
z2953: jxwidth=jxwidth+1;
jyheight=jyheight+1;
if(jydiff<0)goto z2972;
z2956: jysrc=uprighty;
yjn=0-1;
jydest=jynext;
goto z2976;
z2972: jysrc=lowlefty;
yjn=1;
jydest=lowleftc;
z2976: jyctr=0;
z2977: jyctr=jyctr+1;
z2978: john2880(xy2938,jysrc,jydest,jxwidth);
if(nextcalen < jydest)nextcalen=jydest;
z2979: jysrc=jysrc+yjn;
z2980: jydest=jydest+yjn;
z2982: if(jyctr < jyheight)goto z2977;
z2984: afilelen=nextcalen;
}
void zahexline(char* zbbelevt,
int zathiswid,int zaelevw)
{
int zatwctr,zatwbase,zatgterm;
long zatlterm;
zatwctr=0;
while(zatwctr < zaelevw)
{
*(zbbelevt + zatwctr) = '\40';
zatwctr=zatwctr+1;
}
zatwctr=0;
zatwbase=5;
*(zbbelevt + zatwbase) = 'D';
*(zbbelevt + (zatwbase + 1)) = 'B';
zatwbase=zatwbase+4;
*(zbbelevt + 61) = '\073';
while(zatwctr < zathiswid)
{
*(zbbelevt + (zatwbase + 3)) = 'H';
*(zbbelevt + (zatwbase + 4)) = ',';
readone();
zatlterm = (long)one2;
zatgterm = (int)zatlterm;
if(zatgterm<0)zatgterm=zatgterm+256;
zatlterm = (long)zatgterm;
numberprn(zbbelevt,(long)(zatwbase+1),
(long)3,(long)16,zatlterm);
zatwbase=zatwbase+6;
*(zbbelevt + (63 + zatwctr)) = '.';
if((zatgterm > 31)&&(zatgterm < 127))
{
*(zbbelevt+(63+zatwctr))=(char)zatgterm;
}
zatwctr=zatwctr+1;
}
fp14=fp14+zathiswid;
}
void zahexgroup(char* zaz55ptr,
int gclinesel,int gcelevwid)
{
int zahgwid,zahgallow;
char* zaz56ptr;
zaz56ptr=alselset(zaz55ptr,gclinesel);
eofi=0;
fp04=0;
rep0=0;
one2=0;
hv0c=6;
fp14=0;
zahgallow = 1;
if(gcelevwid < 73)zahgallow=0;
while(zahgallow > 0)
{
zahgwid = fl06 - fp14;
if(zahgwid > 8)zahgwid = 8;
zahexline(zaz56ptr,zahgwid,gcelevwid);
if(zahgwid > 0)
{
aptinsert(zaz56ptr);
}
if((fl06 - fp14) <= 0)zahgallow = 0;
}
x=1;
}
void delefthh(char* absathh,long lenlhh,long hhone)
{
long lenlhj,dehhc,derhc;
lenlhj=lenlhh-hhone;
if(lenlhj < 0)lenlhj=0;
if(lenlhj > lenlhh)lenlhj=lenlhh;
dehhc=0;
derhc=dehhc+hhone;
while(dehhc < lenlhj)
{
derhc=dehhc+hhone;
*(absathh + dehhc) = *(absathh + derhc);
dehhc=dehhc+1;
}
if(hhone > 0)
{
while(derhc >= lenlhj)
{
if((derhc >= 0)&&(derhc < lenlhh))
{
*(absathh + derhc) = '\40';
}
derhc=derhc-1;
}
}
}
long lefmowid(char* abslmw,long lenlmw)
{
long lemores,lmooa,lmfirsta,lmwdc;
long lemoctr;
lmfirsta=1;
lmooa=1;
lemores=0;
lemoctr=0;
while(lmfirsta != 0)
{
lmwdc=(long)(*(abslmw + lemoctr));
if(lmwdc != 32)lmfirsta=0;
if(lmfirsta > 0)
{
lemoctr=lemoctr+1;
if(lemoctr >= lenlmw)lmfirsta=0;
}
}
if(lemoctr >= lenlmw)lmooa=0;
delefthh(abslmw,lenlmw,lemoctr);
while(lmooa > 0)
{
lmwdc=(long)(*(abslmw + lemores));
if(lmwdc == 32)lmooa=0;
if(lmooa > 0)
{
lemores=lemores+1;
if(lemores >= lenlmw)lmooa=0;
}
}
return lemores;
}
// end of lefmowid
long wordslin(char* wclinlp,long wclinwid)
{
long wrdslctr,wrdslcmp;
wrdslctr=0;
wrdslcmp=40;
while(wrdslcmp > 0)
{
wrdslcmp=lefmowid(wclinlp,wclinwid);
delefthh(wclinlp,wclinwid,wrdslcmp);
if(wrdslcmp > 0)
{
wrdslctr=wrdslctr+1;
if(wrdslctr >= wclinwid)wrdslcmp=0;
}
}
return wrdslctr;
}
// end of wordslin
void print3248()
{
char line3248[88];
char* three3248;
int allow3248,ctr3248,len3248;
int ilop3248,ilop3249;
FILE* han3249;
allow3248 = 2;
three3248 = alselset(crz0160,3);
ctr3248 = 1;
han3249 = stdout;
// han3249 = popen("lpr\0","wb");
while(allow3248 > 1)
{
if(ctr3248 > afilelen)allow3248 = 0;
if(allow3248 > 1)
{
aptread(three3248,ctr3248);
len3248 = clenval(three3248);
ilop3248 = 0;
while(ilop3248 < len3248)
{
cncri= *(three3248 + ilop3248);
*(line3248 + ilop3248) = cncri;
ilop3248=ilop3248+1;
}
ilop3249 = wbe2469;
while(ilop3249 < 2)
{
cncri = *(weda2469 + ilop3249);
*(line3248 + len3248) = cncri;
len3248 = len3248 + 1;
ilop3249 = ilop3249 + 1;
}
print3250(line3248,len3248,han3249);
ctr3248 = ctr3248 + 1;
}
}
// pclose(han3249);
}
// end of print3248
void print3250(char* cpt3250,
int len3250,FILE* han3250)
{
int ctr3250,rectr3250,olop3250,ilop3250;
int prod3250;
char one3250[1];
ctr3250 = 0;
while(ctr3250 < len3250)
{
*(one3250 + 0) = *(cpt3250 + ctr3250);
fwrite(one3250,1,1,han3250);
// copyable delay
olop3250 = 0;
while(olop3250 < prtdouter)
{
ilop3250=0;
while(ilop3250 < prtinnerd)
{
prod3250 = prtretrace * prtdouter;
ilop3250 = ilop3250 + 1;
}
olop3250 = olop3250 + 1;
}
// end of copyable delay
ctr3250 = ctr3250 + 1;
}
rectr3250 = 0;
while(rectr3250 < prtretrace)
{
// copyable delay
olop3250 = 0;
while(olop3250 < prtdouter)
{
ilop3250=0;
while(ilop3250 < prtinnerd)
{
prod3250 = prtretrace * prtdouter;
ilop3250 = ilop3250 + 1;
}
olop3250 = olop3250 + 1;
}
// end of copyable delay
rectr3250 = rectr3250 + 1;
}
}
// end of print3250
void ron52640(char* z5ptr,char rosel)
{
if(dagra == 1505)goto zzl52640;
// variables have already been relocated
if((dagra>=26518)&&(dagra<=28959))goto roncmd38;
ron23389: if(dagra == 12643)goto r12643;
if(dagra == 12651)goto r12651;
if(dagra == 12735)goto r12735;
if(dagra == 12743)goto r12743;
if(dagra == 12779)goto r12779;
if(dagra == 12793)goto r12793;
if(dagra == 12799)goto r12799;
if(dagra == 12863)goto r12863;
if(dagra == 13075)goto r13075;
zzl52640: xe=1;
yre=1;
x=1;
y=1;
goto z52648;
// rem z52642 loop regular key regkey2176
// cls2330 clear screen
// z52642 R
z52642: cls2330();
x=xe;
y=yre;
z52645: freddy=12641;
dagra=freddy;
r12643: regkey2176();
if((freddy & 3) == 2)goto r52647;
goto ronbot40;
// 2349 regkey2176 within 2324 ron52640
r52647: xe=x;
yre=y;
z52648: kfc2398();
z52650d: freddy=12651;
goto ronbot40;
r12651: keytype5=archtype;
keychar5=archkey;
// conkey(&keytype5,&keychar5);
// call conkey 2356 within 2324 ron52640
// if(keytype5 == '0')goto z52650d;
if(keytype5 == '1')goto z52661;
// check for non-menu special keys
goto z52648;
z52661: if(keychar5 == '\15') goto z52642;
if(keychar5 == '\33') goto z52800;
keycmd5=sixcase(keychar5);
z52662: if(keycmd5 == 'R')goto z52642;
if(keycmd5 != 'N')goto z52678;
z52674: new2608();
// z52674 N NEW
goto z52642;
z52678: if(keycmd5 == 'W')goto z52674;
// ***ERROR*** z52678 assigns same
// width to new wide as new .
z52679: if(keycmd5 == 'O')goto z52733;
z52680: if(keycmd5 == 'P')goto z52988;
z52681: if(keycmd5 == 'X')goto zxtog;
z52682: if(keycmd5 == 'L')goto z52736;
if(keycmd5 == '=')goto z52736;
z52683: if(keycmd5 == 'Z')goto zchgchk;
z52684: if(keycmd5 == 'A')goto z52776;
z52685: if(keycmd5 == 'U')goto zupcase;
z52686: if(keycmd5 == 'E')goto z52782;
z52687: if(keycmd5 == 'Q')goto z52800;
z52688: if(keycmd5 == 'F')goto z52804;
z52689: if(keycmd5 == 'G')goto z52814;
z52690: if(keycmd5 == 'C')goto zcmdlineg;
z52691: if(keycmd5 == 'M')goto z53000;
z52692: if(keycmd5 == 'T')goto z52708;
z52693: if(keycmd5 == 'B')goto z52714;
// z52694: if(keycmd5 == 'V')goto
// zzl52640.CHANGE
z52695: if(keycmd5 == 'D')goto z52720;
z52696: if(keycmd5 == 'I')goto z52860;
z52697: if(keycmd5 == 'Y')goto z53072;
// gap in numbers 52698 to 52704
z52705: if(keycmd5 == 'H')goto z53054;
z52706: goto z52642;
// z52708 TOF z52714 BOT
// z52708 T
z52708: yre=1;
xe=1;
goto z52642;
// z52714 B
z52714: yre=afilelen+1;
xe=1;
goto z52642;
// z52720 D bkgnD
z52720: bkgnd=32;
// substituting kfcl(int,char*);
cls2330();
yp=4;
kfcl(yp,litrlc(litharg,56));
yp=10;
// rr52730u: conkey(&keytype5,&keychar5);
// cancel conkey 2413 within ron52640
// if(keytype5 != '0')goto rr52730u;
rr52730d: freddy=12735;
goto ronbot40;
r12735: keytype5=archtype;
keychar5=archkey;
// conkey(&keytype5,&keychar5);
// call conkey 2416 within ron52640
// if(keytype5 == '0')goto rr52730d;
keycmd5=sixcase(keychar5);
bkgnd=keycmd5;
goto z52642;
// z52733 O z52733 open
z52733: y=afilelen+1;
cls2330();
yp=4;
kfcl(yp,litrlc(litharg,57));
opendell=2;
goto z52738;
// z52736 L load
z52736: opendell=1;
cls2330();
yp=4;
kfcl(yp,litrlc(litharg,58));
z52738: yp=10;
z52742: freddy=12741;
dagra=freddy;
r12743: open2520(z5ptr,opendell);
if((freddy & 3) == 2)goto r12742;
goto ronbot40;
r12742: commandgui=1;
// begin common read at z52743
z52743: ldal=clenval(alselset(z5ptr,(opendell+6)));
if (ldal < 1) goto z52749;
arbcopy(fn2641,(alselset(z5ptr,(opendell+6))));
if(opendell < 2)goto z52744;
// top of fn to nine
xxabase=alselset(z5ptr,9);
fl06=0;
uu2754: *(xxabase+fl06) = '\40';
fl06 ++;
if(fl06 < 16)goto uu2754;
fl06=clenval(alselset(z5ptr,(opendell+6)));
if(fl06 > 15)goto z52744;
kfcopy(xxabase,fn2641);
// bottom of fn to nine fn
// rem z52744: edhanb = fopen(fn2641,"rb");
z52744: array939[(20/4)]=(int)fn2641;
array939[(28/4)]=61*256;
dpms939(array939);
edhanb=array939[(28/4)];
// rem 1 if(edhanb == NULL) goto z52749;
if((array939[(40/4)]&1)!=0)goto z52749;
// rem 1739 fseek(edhanb,0,SEEK_END);
array939[(16/4)]=edhanb;
array939[(20/4)]=0;
array939[(24/4)]=0;
array939[(28/4)]=(66*256)+2;
// 42h get file pointer
dpms939(array939);
// rem 1740 fl06 = ftell(edhanb);
array939[(928/4)]=array939[(20/4)]<<16;
array939[(928/4)]=array939[(928/4)]+(array939[(28/4)]&65535);
fl06=array939[(928/4)];
// rem 1741 fseek(edhanb,0,SEEK_SET);
array939[(16/4)]=edhanb;
array939[(20/4)]=0;
array939[(24/4)]=0;
array939[(28/4)]=66*256;
// 42h get file pointer
dpms939(array939);
if(afilelen == 0)goto z52746b;
chdoc=1;
z52746b: if(commandgui == 2)goto z52746c;
z52746g: if((keycmd5=='=')&&(opendell==1))goto z52746d;
z52746x: if(keycmd5=='O')goto z52746c;
if(keycmd5=='L')goto z52746c;
goto z52748b;
z52746d: fp14=0;
// 2842 z52746d read hexadecimal mode
zahexgroup(z5ptr,11,a80w);
goto z52748b;
z52746c: read2426(z5ptr,opendell);
// rem 1743 z52748b fclose(edhanb);
z52748b: array939[(16/4)]=edhanb;
array939[(28/4)]=62*256;
// 3eh close file
dpms939(array939);
z52749: fl06 = 0;
hv0c = 0;
if(commandgui == 1)goto vv52749;
goto commandloop;
vv52749: yre=y;
// decide here how to exit
// read z52750 is gui
z52750: goto z52642;
// z52776 A
// z52774 rem z52776 save as 2776
z52776: cls2330();
yp=4;
kfcl(yp,litrlc(litharg,53));
yp=10;
freddy=12777;
dagra=freddy;
r12779: writez2754(z5ptr);
if((freddy & 3) == 2)goto z52778;
goto ronbot40;
z52778: chdoc=0;
// 2674 fix freddy
z52779: goto z52642;
// z52780: rem z52782 exit
// z52782 E
z52782: if(chdoc == 0)goto z52800;
z52784: yp=8;
cls2330();
yp=6;
kfcl(yp,litrlc(litharg,55));
yp=12;
// z52792u: conkey(&keytype5,&keychar5);
// cancel conkey 2508
// if(keytype5 != '0')goto z52792u;
z52792d: freddy=12793;
goto ronbot40;
r12793: keytype5=archtype;
keychar5=archkey;
// conkey(&keytype5,&keychar5);
// call conkey 2511 within ron52640
// if(keytype5 == '0')goto z52792d;
// key not yet pressed if keytype5
// still == 0
keycmd5=sixcase(keychar5);
z52794: if(keycmd5 == 'N')goto z52800;
if(keycmd5 == 'Y')goto z52797;
z52796: goto zzl52640;
z52797: cls2330();
yp=4;
kfcl(yp,litrlc(litharg,54));
yp=10;
freddy=12797;
dagra=freddy;
r12799: writez2754(z5ptr);
if((freddy & 3) == 2)goto r12798;
goto ronbot40;
r12798: chdoc=0;
// z52798: rem z52800 quit
// z52800 Q
z52800: cls2330();
freddy=14040;
goto z53098;
// z52802: REM z52804 lowleftx lowlefty
// z52804 F set upleFt
z52804: lowleftx=xe;
lowlefty=yre;
z52808: goto z52642;
// z52810: rem z52814 uprightx uprighty
// z52814 G set upright
z52814: uprightx=xe;
uprighty=yre;
z52818: goto z52642;
// z52858: rem z52860 FIND
// z52860 I
z52860: yp=4;
cls2330();
yp=4;
kfcl(yp,litrlc(litharg,59));
yp=6;
opendell=0;
freddy=12861;
dagra=freddy;
r12863: open2520(z5ptr,opendell);
if((freddy & 3) == 2)goto r12862;
goto ronbot40;
r12862: lfdal=1;
if(prevfound != '\040')goto z52868;
lfdal=a80w;
z52868: if(find2822(z5ptr,y,lfdal)==0)goto z52878;
y++;
yre=y;
if(y < (afilelen+1))goto z52868;
z52876: goto z52648;
// z52877: rem found z52878;
z52878: goto z52642;
// z52986 REM z52988 copy block lower left
// requesting z52988 P coPy block lower left
// in if tree above
z52988: john2938(z5ptr);
z52990: lowleftx=lowleftb;
lowlefty=lowleftc;
uprighty=uprighty+jydiff;
uprightx=uprightx+jxdiff;
chdoc=1;
z52997: goto z52642;
// z52998: rem z53000 move block lower left
// z53000 M
z53000: john2938(z5ptr);
chdoc=1;
if(jxwidth<1)goto z52642;
z53003: if(jyheight<1)goto z52642;
z53004: if(lowleftx != lowleftb)goto z53008;
z53005: if(lowlefty == lowleftc)goto z52642;
z53008: tzrx=uprightx+jxdiff;
tzby=uprighty+jydiff;
yyectr=lowlefty;
z53020: xxjctr=lowleftx;
alsel=1;
z53026: xxabase=alselset(z5ptr,alsel);
aptread(xxabase,yyectr);
z53028: xxasub=xxabase+(xxjctr-1);
if(xxjctr<lowleftb)goto z53040;
if(xxjctr>tzrx)goto z53040;
if(yyectr<lowleftc)goto z53040;
if(yyectr>tzby)goto z53040;
goto z53042;
z53040: *xxasub = bkgnd;
z53042: xxjctr=xxjctr+1;
z53043: aptwrite(xxabase,yyectr);
z53046: if(xxjctr<(uprightx+1))goto z53028;
yyectr=yyectr+1;
if(yyectr<(uprighty+1))goto z53020;
z53050: goto z52990;
// z53053 rem z53054 undefined or incomplete
// z53054 H rightmost
z53054: alsel=1;
xxabase=alselset(z5ptr,alsel);
aptread(xxabase,yre);
ldal=clenval(xxabase);
xe=ldal+1;
if(x == xe)goto x53067;
if(xe<=a80w)goto z53068;
x53067: xe=a80w;
z53068: clearline(xxabase);
x=xe;
goto z52642;
// z53072 attempting to add y Ylinenumber at
// Y z53072 on March 26, 2003
z53072: cls2330();
yp=4;
kfcl(yp,litrlc(litharg,60));
yp=6;
opendell=0;
freddy=13073;
dagra=freddy;
r13075: open2520(z5ptr,opendell);
if((freddy & 3) == 2)goto r13074;
goto ronbot40;
r13074: y=1;
y=numberget(alselset(z5ptr,(opendell+6)),1,8,10);
if(afilelen < y)y=afilelen+1;
if(y < 1)y=1;
yre=y;
goto z52642;
zupcase: uppercase = (97 - uppercase);
goto z52642;
zxtog: marginselect = (8 - marginselect);
goto z52642;
zchgchk: if(chdoc == 0)goto znochg;
goto z52648;
znochg: goto z52642;
// zcmdlineg is c list commands
zcmdlineg: rcmdctr=ypheight+12;
xe=x;
yre=y;
zcmdlindg: if(rcmdctr<11)goto zcmdlincg;
clearline(alselset(crz0160,rcmdctr));
rcmdctr --;
goto zcmdlindg;
zcmdlincg: goto commandloop;
cmderror: kfclev(litrlc(litharg,1));
commandprn();
commandloop: if(y<1)y=1;
if(afilelen<y)y=afilelen+1;
commandprn();
numberprn(alselset(crz0160,11),18,7,10,y);
commandprn();
kfclev(litrlc(litharg,3));
commandprn();
kfclev(litrlc(litharg,16));
commandprn();
kfclev(litrlc(litharg,29));
commandprn();
kfclev(litrlc(litharg,61));
commandprn();
freddy=26518;
goto ronbot40;
ron26519: cmdhmcur();
commandprn();
numberprn(alselset(crz0160,11),4,2,10,curcommand);
numberprn(alselset(crz0160,11),8,7,10,howmanycmd);
numberprn(alselset(crz0160,11),18,7,10,y);
commandprn();
// begin curcommand if section
tokrah3: if(curcommand != 3)goto tokrah4;
// 3 is insertb
kfclev(litrlc(litharg,62));
insertbc: commandprn();
freddy=26648;
goto ronbot40;
ron26649: aptinsert(alselset(crz0160,11));
commandprn();
y-- ;
chdoc=1;
goto commandloop;
tokrah4: if(curcommand != 4)goto tokrah5;
// 4 is insert
kfclev(litrlc(litharg,63));
if(afilelen < y)goto insertbc;
y ++;
goto insertbc;
tokrah5: if(curcommand != 5)goto tokrah6;
// 5 is delete
deletemany(howmanycmd);
chdoc=1;
goto commandloop;
tokrah6: if(curcommand != 6)goto tokrah7;
// 6 is wc wordscount
wordctra=0;
rcmdctr=0;
wcctop07: rcmdctr=rcmdctr+1;
if(rcmdctr > afilelen)goto wcdbot07;
aptread(alselset(crz0160,3),rcmdctr);
wordctra=wordctra+wordslin(alselset(crz0160,3),a80w);
goto wcctop07;
wcdbot07: if(wordctra < 1)goto cmderror;
numberprn(alselset(crz0160,11),18,9,10,wordctra);
commandprn();
goto commandloop;
tokrah7: if(curcommand != 7)goto tokrah8;
// 7 is m mright
rcmdctr=0;
if(y>afilelen)y=y-cmdheight;
rahm7: aptread(alselset(crz0160,11),(y+rcmdctr));
commandprn();
rcmdctr=rcmdctr+1;
if(rcmdctr < cmdheight)goto rahm7;
y=y+rcmdctr;
goto commandloop;
tokrah8: if(curcommand != 8)goto tokrah9;
// 8 is k kleft
rcmdctr=0;
rahm8: aptread(alselset(crz0160,11),(y+rcmdctr));
commandprn();
rcmdctr=rcmdctr+1;
if(rcmdctr < cmdheight)goto rahm8;
y=y-rcmdctr;
goto commandloop;
tokrah9: if(curcommand != 9)goto tokrah10;
// 9 is tof
y=1;
tofbotprn: if(y<1)y=1;
if(y>afilelen)y=afilelen+1;
aptread(alselset(crz0160,11),y);
commandprn();
goto commandloop;
tokrah10: if(curcommand != 10)goto tokrah11;
// 10 is bot
y=afilelen;
goto tofbotprn;
tokrah11: if(curcommand != 11)goto tokrah12;
// 11 is up
y=y-howmanycmd;
goto tofbotprn;
tokrah12: if(curcommand != 12)goto tokrah13;
// 12 is down
y=y+howmanycmd;
goto tofbotprn;
tokrah13: if(curcommand != 13)goto tokrah14;
// 13 is input
kfclev(litrlc(litharg,64));
commandprn();
y=afilelen+1;
// skip y=afilelen+1 in inputc
inputloop: freddy=27298;
goto ronbot40;
ron27299: rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr == 0)goto inputloov;
aptinsert(alselset(crz0160,11));
commandprn();
chdoc=1;
goto inputloop;
inputloov: goto commandloop;
// bottom of duplicate section
tokrah14: if(curcommand != 14)goto tokrah15;
// 14 is quit
if(howmanycmd != 0)y=howmanycmd;
aptread(alselset(crz0160,11),y);
cvgcline(crz0160,11,(ypheight+1),5);
// rem 14 quit
freddy=14040;
goto z53098;
tokrah15: if(curcommand != 15)goto tokrah16;
// 15 is print (not supported in non-dos systems)
if(afilelen < 1)goto cmderror;
if(chdoc != 0)goto cmderror;
goto cmderror;
print3248();
goto commandloop;
tokrah16: if(curcommand != 16)goto tokrah17;
// 16 is replace
aptread(alselset(crz0160,11),y);
commandprn();
kfclev(litrlc(litharg,65));
commandprn();
freddy=27558;
goto ronbot40;
ron27559: rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr != 0)goto fastreplace;
kfclev(litrlc(litharg,66));
commandprn();
freddy=27628;
goto ronbot40;
// commandprn();
ron27629: rcmdctr=0;
rcmdctr=(int)sixcase(*alselset(crz0160,11));
if(rcmdctr != (int)'Y')goto skipreplace;
clearline(alselset(crz0160,11));
fastreplace: aptwrite(alselset(crz0160,11),y);
chdoc=1;
skipreplace: commandprn();
goto commandloop;
tokrah17: if(curcommand != 17)goto tokrah18;
// 17 is v
rcmdctr=0;
rahmv: aptread(alselset(crz0160,11),(y+rcmdctr));
commandprn();
rcmdctr=rcmdctr+1;
if(rcmdctr < cmdheight)goto rahmv;
goto commandloop;
tokrah18: if(curcommand != 18)goto tokrah19;
// 18 is open
commandgui=2;
fn1113();
rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr != 0)goto cmdreadrdy;
kfclev(litrlc(litharg,57));
commandprn();
freddy=27868;
goto ronbot40;
ron27869: rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr != 0)goto cmdreadrdy;
goto cmderror;
cmdreadrdy: aptlocloc(alselset(crz0160,8),
alselset(crz0160,11),a80w);
commandprn();
opendell=2;
rcmdctr=1;
goto z52743;
// z52743 is common read
tokrah19: if(curcommand!=19)goto tokrah20;
// 19 is save
commandgui=2;
wbe2469=1;
fn1113();
rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr != 0)goto cmdwriterdy;
rcmdctr=clenval(alselset(crz0160,8));
if(rcmdctr == 0)goto cmdwrlev;
aptlocloc(alselset(crz0160,11),
alselset(crz0160,8),a80w);
goto cmdwriterdy;
cmdwrlev: kfclev(litrlc(litharg,54));
commandprn();
freddy=28058;
goto ronbot40;
ron28059: rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr != 0)goto cmdwriterdy;
goto cmderror;
cmdwriterdy: arbcopy(wfn2756,alselset(crz0160,11));
// edhanw=fopen(wfn2756,"wb");
array939[(20/4)]=(int)wfn2756;
array939[(24/4)]=32;
array939[(28/4)] = 60 * 256;
dpms939(array939);
// 3ch create file
edhanw=array939[(28/4)];
write2470();
// 2055 rem fclose(edhanw);
array939[(16/4)] = edhanw;
array939[(28/4)] = 62*256;
dpms939(array939);
// 3eh close file
freddy=14040;
goto z53098;
tokrah20: if(curcommand != 20)goto tokrah21;
// 20 is new
new2608();
goto commandloop;
tokrah21: if(curcommand != 21)goto tokrah22;
// 21 is change
aptread(alselset(crz0160,6),y);
kfclev(litrlc(litharg,67));
commandprn();
aptlocloc(alselset(crz0160,11),
alselset(crz0160,6),a80w);
commandprn();
freddy=28358;
goto ronbot40;
ron28359: chreqlen=clenval(alselset(crz0160,11));
chlevbase=alselset(crz0160,11);
chsixbase=alselset(crz0160,6);
chctr40=0;
changerah: if(chctr40>=chreqlen)goto skipchanget;
chchr40 = *(chlevbase+chctr40);
if(chchr40 == '\40')goto skipchanger;
*(chsixbase+chctr40)=chchr40;
skipchanger: chctr40=chctr40+1;
goto changerah;
skipchanget: commandprn();
aptwrite(alselset(crz0160,6),y);
chdoc=1;
aptlocloc(alselset(crz0160,11),
alselset(crz0160,6),a80w);
clearline(alselset(crz0160,6));
commandprn();
goto commandloop;
tokrah22: if(curcommand != 22)goto tokrah23;
// 22 is find
fn1113();
findo=clenval(alselset(crz0160,11));
if(findo != 0)goto cmdfindmid;
kfclev(litrlc(litharg,59));
commandprn();
freddy=28608;
goto ronbot40;
cmdfindmid: aptlocloc(alselset(crz0160,6),
alselset(crz0160,11),a80w);
commandprn();
cmdfindchk: findo=find2822(crz0160,y,1);
if(findo == 0)goto cmdfound;
y ++;
if(afilelen < y)goto cmdnotfound;
goto cmdfindchk;
cmdfound: aptread(alselset(crz0160,11),y);
commandprn();
goto commandloop;
cmdnotfound: goto cmderror;
tokrah23: if(curcommand != 23)goto tokrah24;
// 23 is list
if(afilelen < 1)goto cmdnotfound;
chctr40=1;
listouter: rcmdctr=0;
listinner: if(chctr40>afilelen)goto cmdlisbyot;
aptread(alselset(crz0160,11),chctr40);
chctr40 ++;
commandprn();
rcmdctr ++;
if(rcmdctr < cmdheight)goto listinner;
kfclev(litrlc(litharg,68));
commandprn();
freddy=28858;
goto ronbot40;
ron28859: findo=0;
findo=(int)sixcase(*(alselset(crz0160,11)));
if(findo == (int)'H')goto cmdlisbyot;
goto listouter;
cmdlisbyot: goto commandloop;
// 23 is list
tokrah24: if(curcommand != 24)goto tokrah25;
// 24 is inputc
kfclev(litrlc(litharg,69));
commandprn();
inputcloop: freddy=28958;
goto ronbot40;
ron28959: rcmdctr=clenval(alselset(crz0160,11));
if(rcmdctr == 0)goto inputcboov;
if(y>afilelen)goto inputczool;
y ++;
inputczool: aptinsert(alselset(crz0160,11));
chdoc=1;
commandprn();
y=y-1;
goto inputcloop;
inputcboov: goto commandloop;
// bottom of duplicate section
tokrah25: if(curcommand != 25)goto tokrah26;
// 25 is uc
uppercase=97;
goto commandloop;
tokrah26: if(curcommand != 26)goto tokrah27;
// 26 is lc
uppercase=0;
goto commandloop;
tokrah27: if(curcommand != 27)goto tokrah28;
// rem 27 gui
x=xe;
y=yre;
// rem 28 guiy
goto z52642;
tokrah28: if(curcommand != 28)goto tokrah29;
xe=x;
yre=y;
goto z52642;
tokrah29: goto cmderror;
// z53098 extended quit or q
z53098: ldal=1;
goto ronbot40;
roncmd38: ldal=2;
if(dagra == 26519)goto ron26519;
if(dagra == 26649)goto ron26649;
if(dagra == 27299)goto ron27299;
if(dagra == 27559)goto ron27559;
if(dagra == 27629)goto ron27629;
if(dagra == 27869)goto ron27869;
if(dagra == 28059)goto ron28059;
if(dagra == 28359)goto ron28359;
if(dagra == 28609)goto cmdfindmid;
if(dagra == 28859)goto ron28859;
if(dagra == 28959)goto ron28959;
goto ron23389;
ronbot40: findo=2;
if((freddy & 1)!=0)findo=0;
if(freddy < 26518)findo=0;
if(freddy > 28959)findo=0;
if(findo > 0)rahkctr=0;
if(findo == 0)goto roybot40;
ncrix=x;
clearline(alselset(crz0160,11));
x=1;
cvgcline(crz0160,11,(ypheight+1),1);
x=ncrix;
roybot40: findo=0;
}
void fi(char* ftargt,int cfash,
int cpar,int iildata)
{
char ficran[50];
int ftarsub;
int cfasbase,cpalinee,iicresult;
int iicy,iirem,fictr;
long lildata,lilbase,lilwidth;
long lilstart,lilresult;
cfasbase=cfash * 256;
cpalinee=16*(cpar-300);
iicy=10;
lilbase=(long)iicy;
iicy=9;
lilwidth=(long)iicy;
iicy=1;
lilstart=(long)iicy;
iicy=200000000;
lilresult=(long)iicy;
iicy=2;
lildata=(long)iildata;
lildata=lildata-lilresult;
numberprn(ficran,lilstart,lilwidth,
lilbase,lildata);
lilbase=(long)iicy;
iicy=0;
lilresult=numberget(ficran,lilstart,
lilwidth,lilbase);
iirem=0;
if(vidrev==0)iirem=((int)lilresult) >>1;
if(vidrev>0)iirem=127-(((int)lilresult) >>1);
fictr=0;
while(fictr < 16)
{
iicy=iicy+iicy;
iirem=iirem+iirem;
if(iirem > 255)
{
iirem=iirem-256;
iicy=iicy+1;
}
iicresult=iirem;
if(iirem > 127)iicresult=iirem-256;
ftarsub=cfasbase+cpalinee+fictr+1;
*(ftargt+ftarsub)=bitflipc(((char)iicresult),nzbitflip);
iicresult=iicy;
if(iirem > 127)iicresult=iicy-256;
ftarsub=cfasbase+cpalinee+fictr;
*(ftargt+ftarsub)=bitflipc(((char)iicresult),nzbitflip);
fictr=fictr+2;
}
}
// end of fi
void fjload()
{
// this font is for substantial
// applications programs.
// Written by Eric Matteson.
// (1+5+2) * (1+9+6)
// this is 5*9 character
// within 7*11 box
// within 8*16 array font
// use 7*12 box if underline cursor
// void fi(char* ftargt,int cfasch,
// int cpar,int iildata);
// ft[65536] sf 315 211110000
sf=0;
while(sf < 65536)
{
ft[sf]='\0';
sf=sf+1;
}
// ------------------------R 32 blank
sf=1032-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ------------------------R 33 !
sf=1033-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200001000);
fi(ft,sf,302,200001000);
fi(ft,sf,303,200001000);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200001000);
fi(ft,sf,306,200001000);
fi(ft,sf,307,200001000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200001000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// ..
// ---- ------------ right
// 34 double quotes
sf=1034-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200100100);
fi(ft,sf,302,200100100);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// -------------- 35 pound sign
sf=1035-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200101000);
fi(ft,sf,302,200101000);
fi(ft,sf,303,201111100);
fi(ft,sf,304,200101000);
fi(ft,sf,305,200101000);
fi(ft,sf,306,201111100);
fi(ft,sf,307,200101000);
fi(ft,sf,308,200101000);
fi(ft,sf,309,200101000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// ..
// ---- ------------ right
// 36 dollar sign
sf=1036-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200010000);
fi(ft,sf,302,200110000);
fi(ft,sf,303,201010000);
fi(ft,sf,304,200110000);
fi(ft,sf,305,200011000);
fi(ft,sf,306,200010100);
fi(ft,sf,307,200010100);
fi(ft,sf,308,200011000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// ..
// ---- ------------ right
// 37 percent
sf=1037-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201110100);
fi(ft,sf,302,201010100);
fi(ft,sf,303,201110100);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200111100);
fi(ft,sf,307,201010100);
fi(ft,sf,308,201011100);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// ..
// ---- ------------ right
// 38 and
sf=1038-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200111000);
fi(ft,sf,302,200101000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200110000);
fi(ft,sf,305,201101000);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201001000);
fi(ft,sf,309,200110000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// ..
// ---- ------------ right
// 39 single quote
sf=1039-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200010000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ------- 40 left parenthises
sf=1040-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000100);
fi(ft,sf,302,200001000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200100000);
fi(ft,sf,305,200100000);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200001000);
fi(ft,sf,309,200000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// ------- 41 right parenthises
sf=1041-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,200100000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200001000);
fi(ft,sf,306,200001000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200100000);
fi(ft,sf,309,201000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// ------- 42 asterisk
sf=1042-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201010100);
fi(ft,sf,302,201010100);
fi(ft,sf,303,200111000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,200111000);
fi(ft,sf,306,201010100);
fi(ft,sf,307,201010100);
fi(ft,sf,308,201000100);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 43 plus
sf=1043-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200010000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// ------ 44 comma
sf=1044-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200011000);
fi(ft,sf,309,200001000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// ------ 45 minus
sf=1045-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// ---- 46 period decimal point
sf=1046-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200001000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// ---- 47 divide
sf=1047-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200100000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 48 0
sf=1048-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201000100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 49 1
sf=1049-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200001100);
fi(ft,sf,302,200010100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,200000100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 50 2
sf=1050-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 51 3
sf=1051-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 52 4
sf=1052-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201111100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 53 5
sf=1053-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 54 6
sf=1054-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 55 7
sf=1055-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,200000100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 56 8
sf=1056-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 57 9
sf=1057-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 58 colon
sf=1058-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// -------- 59 semicolon
sf=1059-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200110000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// --------------- 60 less
sf=1060-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000100);
fi(ft,sf,302,200001000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200100000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200001000);
fi(ft,sf,309,200000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ---------------- 61 equal
sf=1061-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,201111100);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,201111100);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// -------------- 62 greater
sf=1062-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,200100000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200000100);
fi(ft,sf,306,200001000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200100000);
fi(ft,sf,309,201000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ---- 63 question
sf=1063-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,200000100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200011100);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ---- 64 at
sf=1064-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200111100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,200001000);
fi(ft,sf,304,200111000);
fi(ft,sf,305,201001000);
fi(ft,sf,306,200101000);
fi(ft,sf,307,200111000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ---- 65 A
sf=1065-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201000100);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 66 B
sf=1066-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201110000);
fi(ft,sf,302,201001000);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201001000);
fi(ft,sf,305,201110000);
fi(ft,sf,306,201001000);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201001000);
fi(ft,sf,309,201110000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 67 C
sf=1067-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// ------- 68 D
sf=1068-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,201000000);
fi(ft,sf,303,201100000);
fi(ft,sf,304,201010000);
fi(ft,sf,305,201001000);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201001000);
fi(ft,sf,308,201010000);
fi(ft,sf,309,201100000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// ------- 69 E
sf=1069-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 70 F
sf=1070-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201000000);
fi(ft,sf,309,201000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 71 G
sf=1071-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201100000);
fi(ft,sf,306,201001100);
fi(ft,sf,307,201001100);
fi(ft,sf,308,201110000);
fi(ft,sf,309,201100000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 72 H
sf=1072-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201000100);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 73 I
sf=1073-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200111000);
fi(ft,sf,302,200010000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200111000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 74 J
sf=1074-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111000);
fi(ft,sf,302,200001000);
fi(ft,sf,303,200001000);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200001000);
fi(ft,sf,306,200001000);
fi(ft,sf,307,201001000);
fi(ft,sf,308,201001000);
fi(ft,sf,309,201111000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 75 K
sf=1075-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201001000);
fi(ft,sf,303,201010000);
fi(ft,sf,304,201100000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,201100000);
fi(ft,sf,307,201010000);
fi(ft,sf,308,201001000);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 76 L
sf=1076-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,201000000);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 77 M
sf=1077-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200101000);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201010100);
fi(ft,sf,304,201010100);
fi(ft,sf,305,201010100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201000100);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 78 N
sf=1078-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,201000100);
fi(ft,sf,303,201100100);
fi(ft,sf,304,201010100);
fi(ft,sf,305,201010100);
fi(ft,sf,306,201010100);
fi(ft,sf,307,201001100);
fi(ft,sf,308,201000100);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 79 O
sf=1079-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200010000);
fi(ft,sf,302,200101000);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201000100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,200101000);
fi(ft,sf,308,200101000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 80 P
sf=1080-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201000000);
fi(ft,sf,309,201000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 81 Q
sf=1081-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201000100);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200001000);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 82 R
sf=1082-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201100000);
fi(ft,sf,307,201010000);
fi(ft,sf,308,201001000);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 83 S
sf=1083-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200011100);
fi(ft,sf,302,200100000);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,200111000);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,200001000);
fi(ft,sf,309,201110000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 84 T
sf=1084-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 85 U
sf=1085-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201000100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 86 V
sf=1086-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201000100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,200101000);
fi(ft,sf,308,200101000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 87 W
sf=1087-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,201000100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201010100);
fi(ft,sf,305,201010100);
fi(ft,sf,306,201010100);
fi(ft,sf,307,201010100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,200101000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 88 X
sf=1088-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,200101000);
fi(ft,sf,304,200101000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200101000);
fi(ft,sf,307,200101000);
fi(ft,sf,308,201000100);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 89 Y
sf=1089-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000100);
fi(ft,sf,302,201000100);
fi(ft,sf,303,200101000);
fi(ft,sf,304,200101000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 90 Z
sf=1090-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,200000100);
fi(ft,sf,303,200001000);
fi(ft,sf,304,200001000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200100000);
fi(ft,sf,308,201000000);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 91 left bracket
sf=1091-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111000);
fi(ft,sf,302,201000000);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201000000);
fi(ft,sf,309,201111000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 92 backslash
sf=1092-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,201000000);
fi(ft,sf,303,200100000);
fi(ft,sf,304,200100000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200001000);
fi(ft,sf,307,200001000);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 93 right bracket
sf=1093-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200011100);
fi(ft,sf,302,200000100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,200000100);
fi(ft,sf,306,200000100);
fi(ft,sf,307,200000100);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200011100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 94 circumflex
sf=1094-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200010000);
fi(ft,sf,302,200101000);
fi(ft,sf,303,201000100);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// ---- 95 underline
sf=1095-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// ---- 96
sf=1096-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,200100000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// ---- 97 a
sf=1097-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 98 b
sf=1098-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,201000000);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201001100);
fi(ft,sf,308,201110000);
fi(ft,sf,309,201100000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 99 c
sf=1099-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201000000);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 100 d
sf=1100-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000100);
fi(ft,sf,303,200000100);
fi(ft,sf,304,200000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,200111100);
fi(ft,sf,309,200001100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 101 e
sf=1101-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201111100);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000100);
fi(ft,sf,304,201000100);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201000000);
fi(ft,sf,308,201111100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 102 f
sf=1102-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,201111000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,201000000);
fi(ft,sf,307,201110000);
fi(ft,sf,308,201000000);
fi(ft,sf,309,201000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 103 g
sf=1103-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201100000);
fi(ft,sf,302,201111100);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201001100);
fi(ft,sf,308,201110000);
fi(ft,sf,309,201100000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 104 h
sf=1104-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,201000000);
fi(ft,sf,304,201000000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,201111100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,201000100);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 105 i
sf=1105-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 106 j
sf=1106-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200010000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,201010000);
fi(ft,sf,309,201110000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// right
// -------- 107 k
sf=1107-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,201001000);
fi(ft,sf,304,201010000);
fi(ft,sf,305,201100000);
fi(ft,sf,306,201100000);
fi(ft,sf,307,201010000);
fi(ft,sf,308,201001000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// -------- 108 l
sf=1108-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200100000);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200100000);
fi(ft,sf,308,200100000);
fi(ft,sf,309,200111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// --------- 109 m
sf=1109-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,201010100);
fi(ft,sf,307,201010100);
fi(ft,sf,308,201010100);
fi(ft,sf,309,201000100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ---------- 110 n
sf=1110-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200100100);
fi(ft,sf,308,200100100);
fi(ft,sf,309,200100100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------R
// 111 0
sf=1111-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200100100);
fi(ft,sf,308,200100100);
fi(ft,sf,309,200111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 112 p
sf=1112-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200111100);
fi(ft,sf,308,200100000);
fi(ft,sf,309,200100000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 113 q
sf=1113-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200111100);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200011000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 114 r
sf=1114-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200100000);
fi(ft,sf,308,200100000);
fi(ft,sf,309,200100000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 115 s
sf=1115-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200111100);
fi(ft,sf,308,200000100);
fi(ft,sf,309,200111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 116 t
sf=1116-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,201111100);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 117 u
sf=1117-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200100100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200100100);
fi(ft,sf,308,200100100);
fi(ft,sf,309,200111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 118 v
sf=1118-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,201000100);
fi(ft,sf,307,201000100);
fi(ft,sf,308,200101000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 119 w
sf=1119-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,201000100);
fi(ft,sf,306,201010100);
fi(ft,sf,307,201010100);
fi(ft,sf,308,201010100);
fi(ft,sf,309,201111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 120 x
sf=1120-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200100100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200011000);
fi(ft,sf,308,200011000);
fi(ft,sf,309,200100100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 121 y
sf=1121-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200100100);
fi(ft,sf,306,200100100);
fi(ft,sf,307,200011000);
fi(ft,sf,308,200001000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 122 z
sf=1122-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200111100);
fi(ft,sf,306,200001000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200100000);
fi(ft,sf,309,200111100);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 123 left curly brace
sf=1123-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200001000);
fi(ft,sf,302,200010000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200100000);
fi(ft,sf,305,201000000);
fi(ft,sf,306,200100000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200001000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// ------------------------
// 124 or
sf=1124-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200010000);
fi(ft,sf,302,200010000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200010000);
fi(ft,sf,309,200010000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// --
// --
// 125 right curly brace
sf=1125-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,201000000);
fi(ft,sf,302,200100000);
fi(ft,sf,303,200010000);
fi(ft,sf,304,200010000);
fi(ft,sf,305,200001000);
fi(ft,sf,306,200010000);
fi(ft,sf,307,200010000);
fi(ft,sf,308,200100000);
fi(ft,sf,309,201000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// .
// .
// 126 tilde
sf=1126-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200100100);
fi(ft,sf,302,201011000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// [c i
// int int
// ----- 127 unknown
sf=1127-1000;
fi(ft,sf,300,200000000);
fi(ft,sf,301,200000000);
fi(ft,sf,302,200000000);
fi(ft,sf,303,200000000);
fi(ft,sf,304,200000000);
fi(ft,sf,305,200000000);
fi(ft,sf,306,200000000);
fi(ft,sf,307,200000000);
fi(ft,sf,308,200000000);
fi(ft,sf,309,200000000);
fi(ft,sf,310,200000000);
fi(ft,sf,311,200000000);
fi(ft,sf,312,200000000);
fi(ft,sf,313,200000000);
fi(ft,sf,314,200000000);
fi(ft,sf,315,200000000);
// --
// last 127
// -- end of font
}
// end of fjload
void draw1712(int x1712,int y1712,
char c1712)
{
int base1712,sub1712,ctr1712,get1712;
int xgb1712,xrb1712,ic1712;
xgb1712=((x1712-1) >> 3)*7;
xrb1712=(x1712 -1) & 7;
ic1712=(int)c1712;
if(ic1712 < 0)ic1712=ic1712+256;
get1712=(ic1712*256)+(2*xrb1712);
if(nzudletter > 0)
{
base1712=((26-1)-(y1712-1))*12*iswid72;
base1712=base1712+62+xgb1712+xrb1712;
if(nzskip62 == 0)base1712=base1712-62;
sub1712=base1712+(11*72);
}
if(nzudletter == 0)
{
base1712=(y1712 - 1)*12*iswid72;
base1712=base1712+62+xgb1712+xrb1712;
if(nzskip62 == 0)base1712=base1712-62;
sub1712=base1712;
}
sub1712=sub1712+half2082;
ctr1712=0;
if(nzudletter > 0)
{
while(ctr1712 < 12)
{
pat[(sub1712-1)]=pat[(sub1712-1)]|ft[get1712];
pat[sub1712]=pat[sub1712]|ft[(get1712 + 1)];
sub1712=sub1712-iswid72;
get1712=get1712+16;
ctr1712=ctr1712+1;
}
}
if(nzudletter == 0)
{
while(ctr1712 < 12)
{
pat[(sub1712-1)]=pat[(sub1712-1)]|ft[get1712];
pat[sub1712]=pat[sub1712]|ft[(get1712 + 1)];
sub1712=sub1712+iswid72;
get1712=get1712+16;
ctr1712=ctr1712+1;
}
}
}
// end of draw1712
void draw80(int y80)
{
int x80,ctr80,sub80;
char chu80;
sub80=(y80-1)*a80w;
ctr80=0;
while(ctr80 < a80w)
{
x80=ctr80+1;
chu80=ceescreen[sub80];
draw1712(x80,y80,chu80);
sub80=sub80+1;
ctr80=x80;
}
}
// end of draw80
void draw2080(int cpx2080,int cpy2080)
{
int cpxb2080,cpxr2080,ol2080,os2080;
int lef2080,rht2080,rht2081,limit2080;
char cef2080;
half2082=(xwxwid - 576) >> 4;
if(half2082 < 1)half2082=0;
ol2080=0;
// depth = 1
if(nzskip62 > 0)
{
while(ol2080 < 62)
{
if(((pahdr[ol2080])<=127)&&((pahdr[ol2080])>=0))
{
pat[ol2080]=(char)pahdr[ol2080];
}
// depth = 3
if(((pahdr[ol2080])>127)&&((pahdr[ol2080])>=0))
{
pat[ol2080]=(char)(pahdr[ol2080] - 256);
}
ol2080=ol2080+1;
}
}
ol2080=0;
// depth = 1
os2080=ol2080+62;
if(nzskip62 == 0)os2080=ol2080;
limit2080=iswid72*312;
while(ol2080 < limit2080)
{
pat[os2080] = '\0';
os2080=os2080+1;
ol2080=ol2080+1;
}
ol2080=0;
while(ol2080 < 26)
{
os2080=ol2080+1;
draw80(os2080);
ol2080=os2080;
}
// depth = 1
if((cpx2080 >= 1)&&(cpx2080 <= a80w))
{
if((cpy2080 >= 1)&&(cpy2080 <= 26))
{
rht2081=0;
if(insertype == 0)rht2081=16;
cpxb2080=(cpx2080 - 1) >> 3;
cpxb2080=cpxb2080*7;
cpxr2080=(cpx2080 - 1) & 7;
if(nzudletter > 0)
{
cpxb2080=cpxb2080+(((26-1)-(cpy2080-1))*12*iswid72);
}
if(nzudletter == 0)
{
cpxb2080=cpxb2080+(cpy2080-1)*12*iswid72;
cpxb2080=cpxb2080+(11 * iswid72);
}
lef2080=62+(cpxb2080+cpxr2080)-1;
if(nzskip62 == 0)lef2080=lef2080-62;
rht2080=rht2081+cpxr2080+cpxr2080;
lef2080=lef2080+half2082;
// depth = 3
if(vidrev == 0)
{
cef2080=bitflipc(grucursor[rht2080],nzbitflip);
pat[lef2080]=pat[lef2080] | cef2080;
}
if(vidrev > 0)
{
cef2080=bitflipi((4095-(int)grucursor[rht2080]),nzbitflip);
pat[lef2080]=pat[lef2080] & cef2080;
}
// depth = 3
lef2080=62+cpxb2080+cpxr2080;
if(nzskip62 == 0)lef2080=lef2080-62;
lef2080=lef2080+half2082;
rht2080=rht2081+cpxr2080+cpxr2080+1;
if(vidrev == 0)
{
cef2080=bitflipc(grucursor[rht2080],nzbitflip);
pat[lef2080]=pat[lef2080] | cef2080;
}
if(vidrev > 0)
{
cef2080=bitflipi((4095-(int)grucursor[rht2080]),nzbitflip);
pat[lef2080]=pat[lef2080] & cef2080;
}
// depth = 3
}
}
}
// end of draw2080
void draw2083(struct powercur* yottx)
{
int x2083,y2083,ktt2083,ksu2083;
x2083 = (*(yottx)).neutx;
y2083 = (*(yottx)).neuty;
ktt2083=1;
ksu2083=0;
// draw debugging numbers
while(ksu2083 < 7)
{
numberprn(alselset(ceescreen,26),ktt2083,10,
10,(long)(edraw26[ksu2083]));
ktt2083=ktt2083+11;
ksu2083=ksu2083+1;
}
// ---------------------------------------------
draw2080(x2083,y2083);
}
// end of draw2083
void powscroll(char* sow2080)
{
int sowo,sowi,sowsub;
char sowowc;
sowo=0;
while(sowo < 24)
{
sowi=0;
while(sowi < a80w)
{
sowsub=(sowo * a80w) + sowi;
sowowc = *(sow2080 +(sowsub + a80w));
*(sow2080 + sowsub) = sowowc;
sowi=sowi+1;
}
sowo=sowo+1;
}
sowi=0;
while(sowi < a80w)
{
*(sow2080+((24*a80w)+sowi))='\040';
sowi=sowi+1;
}
}
// end of powscroll
void powdraw(struct powercur* rottyx,
char* cow2080,char net80)
{
int powx,powy,powsub,scrollallow;
scrollallow=1;
powx = (*(rottyx)).neutx;
powy = (*(rottyx)).neuty;
if((powx >= 1)&&(powx <= a80w))
{
if((powy >= 1)&&(powy <= 25))
{
powsub=((powy - 1)*a80w)+(powx-1);
// depth = 3
*(cow2080 + powsub)=net80;
if(net80 == '\15')
{
powsub=((powy - 1)*a80w)+(powx-1);
*(cow2080 + powsub) = '\040';
}
// depth = 3
if(net80 == '\12')
{
while(powx <= a80w)
{
powsub=((powy - 1)*a80w)+(powx-1);
*(cow2080 + powsub) = '\040';
// depth = 5
powx=powx+1;
}
powx=a80w-1;
}
powx=powx+1;
(*(rottyx)).neutx = powx;
// depth = 3
if(powx > a80w)
{
(*(rottyx)).neutx = 1;
if((powy >= 25)&&(scrollallow > 0))
{
powscroll(cow2080);
}
if(powy < 25)
{
// depth = 5
(*(rottyx)).neuty=powy+1;
}
}
}
}
}
// end of powdraw
void powcline(char* owcrec,int iwclen)
{
int piwctr;
char yet80;
piwctr=0;
while(piwctr < iwclen)
{
yet80 = *(owcrec + piwctr);
powdraw(&hottyx,ceescreen,yet80);
piwctr=piwctr+1;
}
}
// end of powcline
void powposition(struct powercur* pcuu,
int ppcx,int ppcy)
{
(*(pcuu)).neutx = ppcx;
(*(pcuu)).neuty = ppcy;
}
int timepart(int srawtime,int subtzh,char* toadwhi)
{
int atimev[8];
int tdenomos[]={8,8,8,8,7,24,60,60};
int urawtime,utallow,utbase,utfrac,utrem;
int utolop,utprod,utrgg;
char toatwhi;
toatwhi = *(toadwhi+0);
urawtime=srawtime;
if(srawtime < 0)urawtime=0-(srawtime+1);
utolop=7;
while(utolop >= 5)
{
utallow=1;
utbase=tdenomos[utolop];
utfrac=urawtime/utbase;
while(utallow > 0)
{
utprod=utfrac*utbase;
utrem=urawtime-utprod;
if(utrem >= 0)utallow=0;
if(utallow > 0)utfrac=utfrac-1;
}
if(srawtime < 0)utrem=(utbase-1)-utrem;
atimev[utolop]=utrem;
urawtime=utfrac;
utolop=utolop-1;
}
utrgg=0;
if((toatwhi == 'h')&&(atimev[5] >= subtzh))
{
utrgg=atimev[5]-subtzh;
}
if((toatwhi == 'h')&&(atimev[5] < subtzh))
{
utrgg=atimev[5]+24-subtzh;
}
if(toatwhi == 'm')utrgg=atimev[6];
if(toatwhi == 's')utrgg=atimev[7];
return utrgg;
}
int redcst(int rdspos,int rdswid,
int rdsbase,char* rdsjc)
{
int tedrst;
long ledrst,ldspos,ldswid,ldsbase;
ldspos=(long)rdspos;
ldswid=(long)rdswid;
ldsbase=(long)rdsbase;
ledrst=numberget(rdsjc,ldspos,ldswid,ldsbase);
tedrst=(int)ledrst;
return tedrst;
}
void ilinemake(int* iixt,char* xxdd)
{
int xsspos,xssmany,xssbase,xssctr,xsssub;
int xssterm,xtssub,xsstw;
// 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)
{
// *klinuxcm == 'x' for xwindows key
// conversion
lidoslr = kkll;
if((lidoslr >= 0)&&(lidoslr < 256))
{
if(kshiftb == 1)lidoslr=kkll+256;
lidoskrs = ixkeyhold[lidoslr];
wasdkeyused=1;
}
}
if(klinuxmm == 118)
{
// klinuxcm == "v" for int vga_getkey()
// within <vga.h>
zandtogi=1;
if(kkll < redcst(1,2,16,"00"))zandtogi=0;
if(kkll > redcst(1,2,16,"7E"))zandtogi=0;
if(zandtogi == 1)
{
lidoskrs=kkll;
}
if(kkll == redcst(1,2,16,"7F"))lidoskrs=8;
// -----------------------------------------
if(kkll==redcst(1,8,16,"1B5B317E"))lidoskrs=512+71;
if(kkll==redcst(1,8,16,"001B5B41"))lidoskrs=512+72;
if(kkll==redcst(1,8,16,"1B5B357E"))lidoskrs=512+73;
if(kkll==redcst(1,8,16,"001B5B44"))lidoskrs=512+75;
if(kkll==redcst(1,8,16,"001B5B43"))lidoskrs=512+77;
if(kkll==redcst(1,8,16,"1B5B347E"))lidoskrs=512+79;
if(kkll==redcst(1,8,16,"001B5B42"))lidoskrs=512+80;
if(kkll==redcst(1,8,16,"1B5B367E"))lidoskrs=512+81;
if(kkll==redcst(1,8,16,"1B5B327E"))lidoskrs=512+82;
if(kkll==redcst(1,8,16,"1B5B337E"))lidoskrs=512+83;
// ----------------------------------------
wasdkeyused=1;
}
if(wasdkeyused == 0)lidoskrs=klinuxmm;
return lidoskrs;
}
// end of int iidoskey(int,int,int[],const char*)
// ----------------------------------------------
// ----------------------------------------------
void getgc(Window wigc,GC* wrgc,int zbnzw)
{
unsigned long vgcmask=0;
XGCValues vgcvalues;
unsigned int gclw=1;
int linestyle=LineSolid;
int capstyle=CapRound;
int joinstyle=JoinRound;
int fillstyle=FillSolid;
*wrgc=XCreateGC(lpdis,wigc,vgcmask,&vgcvalues);
XSetLineAttributes(lpdis,*wrgc,gclw,linestyle,
capstyle,joinstyle);
if(zbnzw == 0)
{
XSetBackground(lpdis,*wrgc,
WhitePixel(lpdis,scnum));
}
if(zbnzw == 1)
{
XSetBackground(lpdis,*wrgc,
BlackPixel(lpdis,scnum));
}
XSetFillStyle(lpdis,*wrgc,fillstyle);
if(zbnzw == 0)XSetForeground(lpdis,*wrgc,
BlackPixel(lpdis,scnum));
if(zbnzw == 1)XSetForeground(lpdis,*wrgc,
WhitePixel(lpdis,scnum));
}
// 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,xwxwid,xwyhgt,4,
BlackPixel(lpdis,scnum),
WhitePixel(lpdis,scnum));
nzshift=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 = 575;
(*(sizehints)).min_height = 311;
sbmask = 0;
sbmask = sbmask | KeyPressMask;
sbmask = sbmask | KeyReleaseMask;
sbmask = sbmask | ExposureMask;
sbmask = sbmask | StructureNotifyMask;
sbmask = sbmask | ButtonPressMask;
sbmask = sbmask | PointerMotionMask;
XSelectInput(lpdis,trix,sbmask);
return trix;
}
// ------------- bottom of windowmake
// linux Xwindows main program
// for edelev10.c
int main(int argd,char** argsa)
{
ncurdey=0-11;
queronter=4096;
timefive=0;
prtime=0;
while(prtime < 100)
{
edraw26[prtime]=640;
prtime=prtime+1;
}
edraw26[5]=0;
edraw26[7]=1;
prtime=0;
wbe2469=0;
lpdis=XOpenDisplay(adn);
scnum=DefaultScreen(lpdis);
scrdepth=DefaultDepth(lpdis,scnum);
lpxgss=&(edraw26[0]);
jyctr=0;
while(jyctr < 1024)
{
array939[jyctr]=0;
jyctr=jyctr+1;
}
jyctr=0;
while(jyctr < 2080)
{
ceescreen[jyctr]='\052';
jyctr=jyctr+1;
}
jyctr=0;
freddy=1505;
dagra=freddy;
ttr939 = &array939[0];
array939[224]=(long)ttr939;
array939[228]=33;
array939[231]=259;
xwxwid=608;
xwyhgt=312;
iswid72=(xwxwid + 7) >> 3;
hottyx.neutx=0;
hottyx.neuty=0;
archtype=0;
rahkctr=0;
archkey=0;
new2608();
ron52640(crz0160,'Q');
// command tail section is next after
// first partial draw
jyctr=0;
if(argd == 2)
{
rjkey = (int)'o';
archtype=48;
archkey=rjkey & 255;
if((rjkey>=512)&&(rjkey<=767))archkey=archkey+1024;
if((archkey<=255)&&(archkey>=0))archtype=49;
if(archkey > 1023)archtype=50;
dagra=sockeyline(freddy,archkey,&rahkctr,crz0160);
if((dagra & 1) != 0)
{
ron52640(crz0160,'Q');
}
// depth = 3.0
while(jyctr < 40)
{
rjkey = (int)(*(*(argsa + 1)+jyctr));
if(rjkey < 32)
{
rjkey = 13;
jyctr=129;
}
archtype=48;
archkey=rjkey & 255;
if((rjkey>=512)&&(rjkey<=767))archkey=archkey+1024;
if((archkey<=255)&&(archkey>=0))archtype=49;
if(archkey > 1023)archtype=50;
dagra=sockeyline(freddy,archkey,&rahkctr,crz0160);
if((dagra & 1) != 0)
{
ron52640(crz0160,'Q');
}
// depth = 3.0
jyctr=jyctr+1;
}
}
jyctr=0;
// end of command tail section just
// before first zgapage
draw2083(&hottyx);
ewixtwo=makexw(esizehints,ewmhints,eclasshints);
XSetWMProperties(lpdis,ewixtwo,0,0,argsa,argd,
esizehints,ewmhints,eclasshints);
getgc(ewixtwo,&edgc,1);
XMapWindow(lpdis,ewixtwo);
xwolop=1;
while(xwolop == 1)
{
if(XCheckMaskEvent(lpdis,sbmask,&edreport) != 0)
{
// not usable XNextEvent(lpdis,&edreport);
// depth = 2
if(edreport.type == KeyRelease)
{
// edraw26[7]=edraw26[5];
edraw26[5]=0;
if(edreport.xkey.send_event == 0)
{
if((int)edreport.xkey.keycode==xxsv)nzshift=0;
if((int)edreport.xkey.keycode==xsv)nzshift=0;
}
}
if(edreport.type == KeyPress)
{
if(edraw26[5] > 20)edraw26[7]=edraw26[5];
edraw26[5]=0;
zandtogm=1;
if((int)edreport.xkey.keycode==xxsv)zandtogm=0;
// depth = 3
if((int)edreport.xkey.keycode==xsv)zandtogm=0;
if(zandtogm == 0)nzshift=1;
if(zandtogm==1)
{
// depth = 4
if(edreport.xkey.send_event == 0)
{
ckey=(int)edreport.xkey.keycode;
// ncurdey=ckey;
rjkey=iidoskey(ckey,nzshift,iidk512,"x");
ncurdey=ckey+(65536*rjkey);
archtype=48;
archkey=rjkey & 255;
if((rjkey>=512)&&(rjkey<=767))archkey=archkey+1024;
if((archkey>0)&&(archkey<32767))archtype=49;
if((archkey & 1024) > 0)archtype=50;
if(((freddy & 1) == 0)&&(archtype == 50))
{
dagra=sockeyline(freddy,32,&rahkctr,crz0160);
}
dagra=sockeyline(freddy,archkey,&rahkctr,crz0160);
if((dagra & 1) != 0)
{
ron52640(crz0160,'Q');
}
}
// draw2083(&hottyx);
// -----------------------------------------
// edmap=XCreatePixmapFromBitmapData(lpdis,
// ewixtwo,pat,xwxwid,
// xwyhgt,WhitePixel(lpdis,scnum),
// BlackPixel(lpdis,scnum),scrdepth);
// XCopyArea(lpdis,edmap,ewixtwo,edgc,0,0,
// xwxwid,xwyhgt,0,0);
// XFreePixmap(lpdis,edmap);
// ........................................
chrisevent.type=Expose;
chrisevent.xexpose.type=Expose;
chrisevent.xexpose.send_event=0;
chrisevent.xexpose.display=lpdis;
chrisevent.xexpose.window=ewixtwo;
chrisevent.xexpose.x=0;
chrisevent.xexpose.y=0;
chrisevent.xexpose.width=xwxwid;
chrisevent.xexpose.height=xwyhgt;
if(freddy == 14040)xwolop=0;
if(nzerror == 1)xwolop=0;
if((xwxwid >= 592)&&(xwyhgt >= 310))
{
XSendEvent(lpdis,ewixtwo,1,ExposureMask,&chrisevent);
}
// ------------------------------------------
}
// depth = 3
}
// depth = 2
// bottom of key press 9006
if((edreport.type==Expose)&&(edreport.xexpose.count==0))
{
draw2083(&hottyx);
// -----------------------------------------
edmap=XCreatePixmapFromBitmapData(lpdis,
ewixtwo,pat,xwxwid,
xwyhgt,WhitePixel(lpdis,scnum),
BlackPixel(lpdis,scnum),scrdepth);
XCopyArea(lpdis,edmap,ewixtwo,edgc,0,0,
xwxwid,xwyhgt,0,0);
XFreePixmap(lpdis,edmap);
// --------------------------
edraw26[5]=edraw26[5]+5;
// ------------------------------------------
}
if(edreport.type == ConfigureNotify)
{
if(edreport.xconfigure.send_event == 0)
{
xwxwid=edreport.xconfigure.width;
xwyhgt=edreport.xconfigure.height;
iswid72=(xwxwid + 7) >> 3;
}
// draw2083(&hottyx);
// ------------------------------------------
// edmap=XCreatePixmapFromBitmapData(lpdis,
// ewixtwo,pat,xwxwid,
// xwyhgt,WhitePixel(lpdis,scnum),
// BlackPixel(lpdis,scnum),scrdepth);
// XCopyArea(lpdis,edmap,ewixtwo,edgc,0,0,
// xwxwid,xwyhgt,0,0);
// XFreePixmap(lpdis,edmap);
// ------------------------------------------
}
if(edreport.type == MotionNotify)
{
if(edraw26[5] > 20)edraw26[7]=edraw26[5];
edraw26[5]=0;
}
if(edreport.type == ButtonPress)
{
// edraw26[7]=edraw26[5];
edraw26[5]=0;
// draw2083(&hottyx);
// -----------------------------------------
// edmap=XCreatePixmapFromBitmapData(lpdis,
// ewixtwo,pat,xwxwid,
// xwyhgt,WhitePixel(lpdis,scnum),
// BlackPixel(lpdis,scnum),scrdepth);
// XCopyArea(lpdis,edmap,ewixtwo,edgc,0,0,
// xwxwid,xwyhgt,0,0);
// XFreePixmap(lpdis,edmap);
// ------------------------------------------
}
// after types of events
}
// end queued >=1 block
queronter=queronter-1;
if(queronter < 1)
{
if((xwxwid >= 592)&&(xwyhgt >= 310))
{
netime=time(NULL);
if(netime != prtime)
{
prtime=netime;
edraw26[4]=9900;
edraw26[4]=edraw26[4]+timepart(netime,tzone,"h");
edraw26[4]=edraw26[4]*100;
edraw26[4]=edraw26[4]+timepart(netime,tzone,"m");
edraw26[4]=edraw26[4]*100;
edraw26[4]=edraw26[4]+timepart(netime,tzone,"s");
timefive=timefive+1;
if(timefive >= 5)
{
edraw26[6]=XGetScreenSaver(lpdis,(lpxgss+0),
(lpxgss+1),(lpxgss+2),(lpxgss+3));
edraw26[6]=edraw26[6] * edraw26[7];
// ----------------------------------------------
chrisevent.type=Expose;
chrisevent.xexpose.type=Expose;
chrisevent.xexpose.send_event=0;
chrisevent.xexpose.display=lpdis;
chrisevent.xexpose.window=ewixtwo;
chrisevent.xexpose.x=0;
chrisevent.xexpose.y=0;
chrisevent.xexpose.width=xwxwid;
chrisevent.xexpose.height=xwyhgt;
timefive=0;
XSendEvent(lpdis,ewixtwo,1,ExposureMask,&chrisevent);
}
}
}
queronter=4096;
}
// end event while is next
}
XFreeGC(lpdis,edgc);
return 0;
}
// end of edelev10.c
// this is the last line of this program
/* after end of program

0 new messages