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

[News] 11 Reasons Why .NET Will Fail

0 views
Skip to first unread message

Roy Schestowitz

unread,
May 4, 2006, 1:44:57 PM5/4/06
to
Why Microsoft's .NET is about to fail

,----[ Quote ]
| Blogger "MoreAmbitious" has eleven - in my opinion - valid points why
| Microsoft's .NET strategy is about to fail. VB6 people aren't switching,
| few relevant and innovative open-source projects, etc. Think twice
| before using it, because MS isn't either (in Vista)!
`----

http://digg.com/programming/Why_Microsoft_s_.NET_is_about_to_fail

Erik Funkenbusch

unread,
May 4, 2006, 3:02:01 PM5/4/06
to

Yeah, I guess that's why CNN ranked .NET developer as one of the top 5
fastest growing jobs.

Message has been deleted

Larry Qualig

unread,
May 4, 2006, 5:07:34 PM5/4/06
to

Mathew P. wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 2006-05-04, Erik Funkenbusch spake thusly:
> .... And well known is the fact that CNN is the only accurate information
> source in the developed world, not to mention the king of knowledgeable
> IT reporting.
>

Given a choice between believing CNN and some anonymous blogger that
the OP referenced as "news" I'll go ahead and believe CNN. Unlike the
bloggers "moreambitious" and "bazzz" who posted this "News" - CNN can
actually be argued to be a credible news source. Not so with "bazz"
whom you seem to believe.

htgin

unread,
May 4, 2006, 8:00:29 PM5/4/06
to


What do we mean by "fail"? I dont think development will stop on .NET
for the next 5 years (my opinion only) and Java will stand strong too.
I dont care if CNN favors .NET or if someone else bashes .NET. It seems
to be a good technology to work with, so is Java, and the amount of
development going on in .NET doesnt indicate failure to me in coming
years.

Chirag Shukla.

Erik Funkenbusch

unread,
May 4, 2006, 8:55:22 PM5/4/06
to
On 4 May 2006 17:00:29 -0700, htgin wrote:

> What do we mean by "fail"? I dont think development will stop on .NET
> for the next 5 years (my opinion only) and Java will stand strong too.
> I dont care if CNN favors .NET or if someone else bashes .NET. It seems
> to be a good technology to work with, so is Java, and the amount of
> development going on in .NET doesnt indicate failure to me in coming
> years.

Java is starting to wane. People are getting tired of Sun handing down
code from on high (such as EJB), only to have it just not work right. Open
Sourcing Java may help, but the damage has probably already been done.

JSP is being replaced by more nimble development with tools like Ruby on
Rails, with fed up developers jumping on bandwagons where the tools
actually help them, rather than hinder them.

tha...@tux.glaci.remove-this.com

unread,
May 5, 2006, 10:10:01 AM5/5/06
to
Erik Funkenbusch <er...@despam-funkenbusch.com> wrote:
>
> Java is starting to wane. People are getting tired of Sun handing down
> code from on high (such as EJB), only to have it just not work right. Open
> Sourcing Java may help, but the damage has probably already been done.
>
> JSP is being replaced by more nimble development with tools like Ruby on
> Rails, with fed up developers jumping on bandwagons where the tools
> actually help them, rather than hinder them.

Java is on the wane? What gives you that impression? It seems to be
going strong from where I am standing. Perhaps growth in the enterprise
has slowed because it has already grabbed most of the low hanging fruit,
but all the recent surveys I've seen still show it as the dominant
choice for rolling out new middle tier apps.

Of course .Net continues to show strong growth, but it will continue
to play second fiddle to Java until and unless MS embraces a truly
cross platform strategy.

Thad

John Bailo

unread,
May 5, 2006, 10:38:22 AM5/5/06
to newsg...@schestowitz.com

He says there are no .NET jobs on dice:

Searching

.NET
Jobs 1 - 30 of 11977 matching your search request.

java
Jobs 1 - 30 of 15499 matching your search request.

c#
Jobs 1 - 30 of 5122 matching your search request.

vb.net
Jobs 1 - 30 of 2128 matching your search request.

Roy Schestowitz

unread,
May 5, 2006, 10:45:04 AM5/5/06
to
__/ [ John Bailo ] on Friday 05 May 2006 15:38 \__

Depends *where*. Mind you, America is often behind when it comes to
interoperability (no offence intended). The CNN's report (if not biased)
took into account the US job market, which is by no means reflection of a
global status-quo.

See today's article, which percolated to many Web sites over the morning...

http://www.theregister.co.uk/2006/05/04/wcit_open_source/

,----[ Quote ]
| WCIT The US has fallen way behind other nations with regard to its embrace
| of open source technology, and the situation may only get worse. Open
| source coders face their grandest test to date as organizations place
| more and more scrutiny on the origins and value of FOSS (free and open
| source software) products.
`----

And _yes_, Open Source is an implication of interoperability. .NET is about
locking code in a closed-source fashion.

Best wishes,

Roy

--
Roy S. Schestowitz | The most satisfying eXPerience is UNIX
http://Schestowitz.com | Open Prospects Åš PGP-Key: 0x74572E8E
3:40pm up 7 days 22:37, 12 users, load average: 0.14, 0.15, 0.24
http://iuron.com - knowledge engine, not a search engine

Erik Funkenbusch

unread,
May 5, 2006, 1:45:25 PM5/5/06
to
On Fri, 05 May 2006 15:45:04 +0100, Roy Schestowitz wrote:

> See today's article, which percolated to many Web sites over the morning...
>
> http://www.theregister.co.uk/2006/05/04/wcit_open_source/

Uhh.. Java isn't open source. What does that have to do with Java
adoption?

> And _yes_, Open Source is an implication of interoperability. .NET is about
> locking code in a closed-source fashion.

No it's not. .NET is an ISO standard, Java is not. You're going to sit
there and pretend that now tha a proprietary standard is better than an
international one?

The Ghost In The Machine

unread,
May 5, 2006, 2:00:05 PM5/5/06
to
In comp.os.linux.advocacy, tha...@tux.glaci.remove-this.com
<tha...@tux.glaci.remove-this.com>
wrote
on Fri, 5 May 2006 14:10:01 +0000 (UTC)
<e3fmbp$vb1$1...@tux.glaci.com>:

I for one see little difference in having Sun hand down code, and having
Microsoft hand down code. Perhaps Erik can explain this quirk?

In any event, EJB has been more or less rejected, as far as I can tell,
in favor of AJAX, ESB, and such efforts as Struts/Strutscx. JSP might
not survive either though it's still trying. EJB3 looks like a response
to the overcomplexity of EJB2, and it's far from clear how well it will
do but I for one welcome EJB3's simplicity. However, I cannot get EJB3
to work right with the rest of my environment, so it's not much of a
factor anyway.

I'm not all that fond of ESB, as the high-level specification verges on
the ridiculous in spots (why is JSP in the Transformation layer whereas
a servlet is in the *routing* layer?). However, it's reasonably easy to
understand.

--
#191, ewi...@earthlink.net
Windows Vista. Because it's time to refresh your hardware. Trust us.

Erik Funkenbusch

unread,
May 5, 2006, 2:11:20 PM5/5/06
to
On Fri, 05 May 2006 18:00:05 GMT, The Ghost In The Machine wrote:

> I for one see little difference in having Sun hand down code, and having
> Microsoft hand down code. Perhaps Erik can explain this quirk?

The key part of my message was "only to have it just not work right". .NET
is all about choosing different technologies. Sun is all about herding you
into "the one true technology". Be it the one true language (Java the
language), the one true component model, the one true GUI, the one true
native interface, etc...

John A. Bailo

unread,
May 5, 2006, 2:28:19 PM5/5/06
to
Erik Funkenbusch wrote:

> No it's not. .NET is an ISO standard, Java is not. You're going to sit
> there and pretend that now tha a proprietary standard is better than an
> international one?

Exactly.

Novell can build mono to the ISO spec and include it with its Suse distro.

I don't see it putting the same effort into /java/

Roy Schestowitz

unread,
May 5, 2006, 2:43:06 PM5/5/06
to
__/ [ John A. Bailo ] on Friday 05 May 2006 19:28 \__

> __/ [ Erik Funkenbusch ] on Friday 05 May 2006 18:45 \__


>
> > On Fri, 05 May 2006 15:45:04 +0100, Roy Schestowitz wrote:
> >
> >> See today's article, which percolated to many Web sites over the
> >> morning...
> >>
> >> http://www.theregister.co.uk/2006/05/04/wcit_open_source/
> >
> > Uhh.. Java isn't open source. What does that have to do with Java
> > adoption?


*coughs* did you read the entire (relatively short) post before replying at
all? (see below)

> >> And _yes_, Open Source is an implication of interoperability. .NET is
> >> about locking code in a closed-source fashion.
> >

> > No it's not. .NET is an ISO standard, Java is not. You're going to sit
> > there and pretend that now tha a proprietary standard is better than an
> > international
>

> Exactly.
>
> Novell can build mono to the ISO spec and include it with its Suse distro.
>
> I don't see it putting the same effort into /java/


Bailo, ever been diagnosed with the following?

http://en.wikipedia.org/wiki/Multiple_personality_disorder

(no offence intended)

This is not the first time that you change balance of opinions like a seesaw.
Several months ago you were raving about convincing your boss to drop
Microsoft in favour of Eclipse. It makes you seem like an opportunist in
this argument.

Best wishes,

Roy

--
Roy S. Schestowitz | Useless fact: Falsity implies anything
http://Schestowitz.com | GNU is Not UNIX Åš PGP-Key: 0x74572E8E
7:35pm up 8 days 2:32, 12 users, load average: 1.00, 1.05, 1.04
http://iuron.com - proposing a non-profit search engine

The Ghost In The Machine

unread,
May 5, 2006, 4:00:07 PM5/5/06
to
In comp.os.linux.advocacy, Erik Funkenbusch
<er...@despam-funkenbusch.com>
wrote
on Fri, 5 May 2006 13:11:20 -0500
<1jt4jui9...@funkenbusch.com>:

> On Fri, 05 May 2006 18:00:05 GMT, The Ghost In The Machine wrote:
>
>> I for one see little difference in having Sun hand down code, and having
>> Microsoft hand down code. Perhaps Erik can explain this quirk?
>
> The key part of my message was "only to have it just not
> work right". .NET is all about choosing different
> technologies.

And these are ... ?

Last I looked, there were two implementations of .NET,
only one of which is official. (The other one, of course,
is at http://www.go-mono.net .)

If that counts as two "technologies" some work needs
to be done here in translation. Of course there are
over 20 languages which can compile down to the runtime
environment, and the runtime supports a fair number of
capabilities, such as Web servers, SOAP, and application
display, as I understand it.

Java per se does not have these capabilities. Oh, it
can enable them; ServerSocket in particular allows for
a reasonable implementation of a Webserver.

DotNET appears to be moving forward as well, in the GNU world.

http://www.gnu.org/projects/dotgnu/

Not sure if this counts as a third implementation, or not.

> Sun is all about herding you into "the one true technology".
> Be it the one true language (Java the language), the one
> true component model, the one true GUI, the one true
> native interface, etc...

Even though Java has no less than three widget sets, at least
two JVMs (there might be more, but the ones I'm aware of
are blackdown for Linux and the SPARC/Solaris variant).

- AWT: the granddaddy.
- Swing: Java's "second system".
- SWT: an Eclipse offering because neither AWT nor Swing were quite
right.

Erik Funkenbusch

unread,
May 5, 2006, 5:41:09 PM5/5/06
to
On Fri, 05 May 2006 20:00:07 GMT, The Ghost In The Machine wrote:

>> The key part of my message was "only to have it just not
>> work right". .NET is all about choosing different
>> technologies.
>
> And these are ... ?
>
> Last I looked, there were two implementations of .NET,
> only one of which is official. (The other one, of course,
> is at http://www.go-mono.net .)

Actually, there are 4. With another on the way.

There's Microsoft's

There's Mono (which runs on 9 hardware platforms and 6 OS's)

There's DogGNU
http://www.dotgnu.org/

There's Microsoft's shared source implementaiton, Rotor
http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D

There's Microsoft's Mac implementaiton which is rumored to be coming.

> If that counts as two "technologies" some work needs
> to be done here in translation. Of course there are
> over 20 languages which can compile down to the runtime
> environment, and the runtime supports a fair number of
> capabilities, such as Web servers, SOAP, and application
> display, as I understand it.

However, Sun discourages other languages, and only officially supports the
Java language. Microsoft, on the other hand, encourages third party
languae development, offers 4 languages themselves, and supports more than
30 languages.

As a quick test, how many commercial third party languages are there for
Java? I know of several for .NET, such as Delphi 8+, Eiffel (which
actually just went open source, so it's no longer commercial, but it was),
etc..

> DotNET appears to be moving forward as well, in the GNU world.
>
> http://www.gnu.org/projects/dotgnu/
>
> Not sure if this counts as a third implementation, or not.

Why wouldn't it? Oh right, because it works against your argument.

>> Sun is all about herding you into "the one true technology".
>> Be it the one true language (Java the language), the one
>> true component model, the one true GUI, the one true
>> native interface, etc...
>
> Even though Java has no less than three widget sets, at least
> two JVMs (there might be more, but the ones I'm aware of
> are blackdown for Linux and the SPARC/Solaris variant).
>
> - AWT: the granddaddy.
> - Swing: Java's "second system".
> - SWT: an Eclipse offering because neither AWT nor Swing were quite
> right.

You're just affirming my argument.

BearItAll

unread,
May 8, 2006, 9:28:25 AM5/8/06
to
htgin wrote:

I've use .NET2 in a real project, my first for a very long time on an MS
type platform, it really is extreemly easy to create quite complex but nice
looking front ends for your applications. Then of cause you have options to
suit your taste when it comes to developing the actual code of your
application (assuming it is more than just a view).

I've said it before in here and I still believe it, .NET2 is the biggest and
maybe eventually will prove to be the best thing, to happen to the Internet
for years.

Sun haven't been idle, java kicks ass. But something MS gives from that will
make a huge difference, is the developement tools.

For new programmers, whether C# or basic, it takes a lot of the work out of
the programmers hands, almost to the point of drag-n-drop applications.

In fact if you work with it there are places that stand out as obvious
points where new programmers will not know what the development system is
actually doing. They will not know where the development tool ends and the
programmers job begins. You tell it you want a data link for example, the
wizard asks where it is and what the login is, then you have a huge amount
of work done out side of your code that handles all of the complexities of
data handling and the associated controlls.

So students and kids learning programming at home will use .NET, simply
because it is so easy to use. MS may not see a huge initial growth of .NET,
but it will come in just a few years time, unless the alternatives are out
there for the kids to learn on, either just as easy or more fun to use
(kids are never really lazy, but they do need something 'interesting' to
motivate them).

ericmatteson...@hotmail.com

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

asj

unread,
May 9, 2006, 9:12:18 AM5/9/06
to

So, what's new?

Here's a new plugin to convert all dem C# apps to Java:
https://net2java.dev.java.net/DNJGuide.html

Erik Funkenbusch

unread,
May 9, 2006, 9:37:51 AM5/9/06
to

And here's a JVM written entirely in .NET.

http://www.ikvm.net/

Oliver Wong

unread,
May 9, 2006, 10:08:48 AM5/9/06
to

"asj" <kali...@yahoo.com> wrote in message
news:1147180338....@v46g2000cwv.googlegroups.com...

>
> Here's a new plugin to convert all dem C# apps to Java:
> https://net2java.dev.java.net/DNJGuide.html

I took a look at it, and it seems to require a mapping from the .NET API
library to the J2SE API library. Unfortunately, sometimes there doesn't
exist a one-to-one mapping between a class in one library to the other. The
page doesn't explain what it plans to do to handle those cases.

I.e. the easy parts are done, but the hard parts aren't even addressed,
which causes me to lack confidence in this project.

- Oliver

asj

unread,
May 9, 2006, 10:26:28 AM5/9/06
to

Erik Funkenbusch wrote:
> On 9 May 2006 06:12:18 -0700, asj w
> > So, what's new?
> >
> > Here's a new plugin to convert all dem C# apps to Java:
> > https://net2java.dev.java.net/DNJGuide.html
>
> And here's a JVM written entirely in .NET.

No swing, no awt,etc, plus lax security..hmmm... however, they do note
this will allow .net developers to develop in Java. But running the
jvm on top of another framework - that might be one slow process! And
what ever happened to J#? Just another flop like microsoft J++ huh?

* Posted via Opera Mini Java Browser on Nokia 9300.

tab

unread,
May 9, 2006, 10:48:36 AM5/9/06
to
>No swing, no awt,etc, plus lax security..hmmm... however, they do note
>this will allow .net developers to develop in Java. But running the
>jvm on top of another framework - that might be one slow process! And
>what ever happened to J#? Just another flop like microsoft J++ huh?

I guess if you got J++, you just put some wrappers on it, and call it
C#.
Microsoft is making money, Sun is not.

You really are very useless.

Erik Funkenbusch

unread,
May 9, 2006, 11:22:33 AM5/9/06
to

J# is a source based solution. You can compile Java source code into .NET
applications. IKVM is a binary solution that takes byte-code and runs it
on .NET.

John A. Bailo

unread,
May 9, 2006, 11:31:32 AM5/9/06
to
asj wrote:

> So, what's new?
>
> Here's a new plugin to convert all dem C# apps to Java:
> https://net2java.dev.java.net/DNJGuide.html
>

I'm impressed...but /skeptical/!

Has anyone tried tis plugin?

Most code translators are at best, 80 percent effective and require a
lot of recoding to finish the *last* *mile*.

Roy Schestowitz

unread,
May 9, 2006, 1:43:24 PM5/9/06
to
__/ [ Oliver Wong ] on Tuesday 09 May 2006 15:08 \__

I was once assigned the task of finding C++ to Java convertors and, from what
I can recall, it was too complex to become practical. Let me try to find a
thread which is relevant...

http://schestowitz.com/UseNet/2005/January_2005/msg00297.html

http://schestowitz.com/UseNet/2005/January_2005/msg00316.html

http://schestowitz.com/UseNet/2005/January_2005/msg00300.html

So, without much manual work, this is less than feasible, let alone pragmatic
(or programmatic to use a pun). The scale of the existing C++ library makes
this a /huge/ project.

Roedy Green

unread,
May 9, 2006, 1:51:43 PM5/9/06
to
On 9 May 2006 06:12:18 -0700, "asj" <kali...@yahoo.com> wrote,
quoted or indirectly quoted someone who said :

>> http://digg.com/programming/Why_Microsoft_s_.NET_is_about_to_fail

I would think the biggest argument goes like this:

If I use .NET and my idea for a website catches on, a mini-Google,
(Everyone dreams this will happen) then what do I do?

If I want to have a server farms with PCs I am stuck paying for full
XP/Vista licences for them, even though I am using just a fraction of
the OS. Google uses cheap low-power Linux boxes.

If I want to use some honking great multi-CPU server from IBM, or Sun,
I have to start over from scratch with my software.

The second biggest argument goes like this. Because Bill Gates has
unusually low ethics for a CEO and because of Microsoft's long time
being corrupted by power in a near monopoly situation, it is unwise to
trust Microsoft not to screw its users, developers or competition. It
owns all the software marbles and enough money that it could do damn
well whatever Bill Gates pleased.

In the Java world, presume Sun started behaving in an arrogant way.
Sun does not own all the Java marbles, not by a long shot. Other
companies have JVMs and implementations of all the native classes, and
all kinds of software products. Some other company, probably IBM,
could come out with a C#-like language very similar to Java, but
different enough to avoid legal hassle. Perhaps Bill Joy could design
using all his experience with Java to get it right. IBM could invent a
JVM similar to, but different enough from Java's. Then a massive,
perhaps fully automated porting, could go on. Just the threat of this
would keep Sun from behaving really badly.

--
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Roedy Green

unread,
May 9, 2006, 1:53:36 PM5/9/06
to
On 9 May 2006 07:48:36 -0700, "tab" <trental...@yahoo.com> wrote,

quoted or indirectly quoted someone who said :

>I guess if you got J++, you just put some wrappers on it, and call it


>C#.
>Microsoft is making money, Sun is not.

They make money because of a legacy for lying to IBM about having a
DOS ready to fly, not because of any great ability with Java, J++ or
J#

Oliver Wong

unread,
May 9, 2006, 2:19:18 PM5/9/06
to

"Roy Schestowitz" <newsg...@schestowitz.com> wrote in message
news:4418702.b...@schestowitz.com...

> __/ [ Oliver Wong ] on Tuesday 09 May 2006 15:08 \__
>
>> "asj" <kali...@yahoo.com> wrote in message
>> news:1147180338....@v46g2000cwv.googlegroups.com...
>>>
>>> Here's a new plugin to convert all dem C# apps to Java:
>>> https://net2java.dev.java.net/DNJGuide.html
>>
>> I took a look at it, and it seems to require a mapping from the .NET
>> API
>> library to the J2SE API library. Unfortunately, sometimes there doesn't
>> exist a one-to-one mapping between a class in one library to the other.
>> The
>> page doesn't explain what it plans to do to handle those cases.
>>
>> I.e. the easy parts are done, but the hard parts aren't even
>> addressed,
>> which causes me to lack confidence in this project.
>>
>
> I was once assigned the task of finding C++ to Java convertors and, from
> what
> I can recall, it was too complex to become practical. Let me try to find a
> thread which is relevant...
>
> http://schestowitz.com/UseNet/2005/January_2005/msg00297.html
>
> http://schestowitz.com/UseNet/2005/January_2005/msg00316.html
>
> http://schestowitz.com/UseNet/2005/January_2005/msg00300.html
>
> So, without much manual work, this is less than feasible, let alone
> pragmatic
> (or programmatic to use a pun). The scale of the existing C++ library
> makes
> this a /huge/ project.

Right, but the OP was about C# to Java, not C++ to Java. The former is
actually quite easy, from a syntactical point of view. It's just that
converting API calls, as you've said, is a huge project.

On the other hand, when you said "the .NET API", people have a more or
less good idea of what library you're talking about. My understanding is
that with C++, there is no "one standard library".

- Oliver

Oliver Wong

unread,
May 9, 2006, 2:25:57 PM5/9/06
to

"Roedy Green" <my_email_is_post...@munged.invalid> wrote in
message news:jjk162tbs2uk50a4j...@4ax.com...

> On 9 May 2006 06:12:18 -0700, "asj" <kali...@yahoo.com> wrote,
> quoted or indirectly quoted someone who said :
>
>>> http://digg.com/programming/Why_Microsoft_s_.NET_is_about_to_fail

I was unable to reach the above site. Guess their server is being
flooded by visitors.

>
> I would think the biggest argument goes like this:
>
> If I use .NET and my idea for a website catches on, a mini-Google,
> (Everyone dreams this will happen) then what do I do?
>
> If I want to have a server farms with PCs I am stuck paying for full
> XP/Vista licences for them, even though I am using just a fraction of
> the OS. Google uses cheap low-power Linux boxes.
>
> If I want to use some honking great multi-CPU server from IBM, or Sun,
> I have to start over from scratch with my software.

Either that, or switch to Linux/Mono.

>
> The second biggest argument goes like this. Because Bill Gates has
> unusually low ethics for a CEO and because of Microsoft's long time
> being corrupted by power in a near monopoly situation, it is unwise to
> trust Microsoft not to screw its users, developers or competition. It
> owns all the software marbles and enough money that it could do damn
> well whatever Bill Gates pleased.

The impression I get is that Microsoft is big enough that sometimes the
left hand doesn't know what the right hand is up to. I don't think every
evil deed commited by Microsoft was an intentional result of one of Bill
Gates' decisions (and I believe Steve Balmer is playing a bigger role in the
decision making than Bill G. these days). Don't attribute to malice what can
properly be explained by stupidity and all that.

- Oliver

Roedy Green

unread,
May 9, 2006, 3:42:09 PM5/9/06
to
On Tue, 09 May 2006 18:25:57 GMT, "Oliver Wong" <ow...@castortech.com>

wrote, quoted or indirectly quoted someone who said :

>>
>>>> http://digg.com/programming/Why_Microsoft_s_.NET_is_about_to_fail
>
> I was unable to reach the above site. Guess their server is being
>flooded by visitors.

it is working from here. digg.com is 64.191.203.30

asj

unread,
May 9, 2006, 4:28:43 PM5/9/06
to

Erik Funkenbusch wrote:
> Java is starting to wane.

LOL...the fumes of dotnet failures are starting to cloud your mind.....

C# FAILED In its role as alleged "java-killer" from 2001. JAVA
KILLER...yeah right ;-)

Dotnet has failed to appease the complaints of VB developers, many of
whom have moved to Java or Php (for web) or maybe new stuff like Ruby.

Dotnet has failed to usurp Java on the high end enterprise devt. I
still like how microsoft got totally embarrased when it declared ebay
would use dotnet, only to see ebay use Java instead..LOL.

As to EJB, unlike dotnet, there are many valid options - inc open
source ones - in Java. Although some people may not like EJB, it is
still being heavily used in high end projects, and EJB 3 just came out.
If you don't like that, use JDO. Or the open source Spring. Or the
open source Struts. Or a dozen other open source frameworks....

and btw,JSP is a PART of all these frameworks, so how exactly is JSP
going away?

* Posted from Opera Mini Java Browser on a Nokia 9300.

asj

unread,
May 9, 2006, 5:08:15 PM5/9/06
to

Hmmmmm.....

1. the amount of java development going on outside the sun proscribed
ones is far above the dotnet devt outside microsoft. NOT EVEN CLOSE.

Just looking at IDEs, in addition to all the minor commercial and open
source players, the two big Java IDE players are both open source -
Netbeans and Eclipse.

2. Sun and IBM, the two Java EE biggies, are BY FAR more friendly to
open source than microsoft.

I would trust them more to do right than i would Microsoft.

asj

unread,
May 9, 2006, 5:09:57 PM5/9/06
to

Hmmmmm.....

1. the amount of java development going on outside the sun proscribed
ones is far above the dotnet devt outside microsoft. NOT EVEN CLOSE.

Just looking at IDEs, in addition to all the minor commercial and open
source players, the two big Java IDE players are both open source -
Netbeans and Eclipse.

2. Sun and IBM, the two Java EE biggies, are BY FAR more friendly to
open source than microsoft.

I would trust them more to do right than i would Microsoft.

*Posted using Opera Mini Java Browser on Nokia 9300.

Erik Funkenbusch

unread,
May 9, 2006, 8:16:47 PM5/9/06
to
On 9 May 2006 14:08:15 -0700, asj wrote:

> Erik Funkenbusch wrote:
>> On Fri, 05 May 2006 18:00:05 GMT, The Ghost In The Machine wrote:
>>
>>> I for one see little difference in having Sun hand down code, and having
>>> Microsoft hand down code. Perhaps Erik can explain this quirk?
>>
>> The key part of my message was "only to have it just not work right". .NET
>> is all about choosing different technologies. Sun is all about herding you
>> into "the one true technology". Be it the one true language (Java the
>> language), the one true component model, the one true GUI, the one true
>> native interface, etc...
>
> Hmmmmm.....
>
> 1. the amount of java development going on outside the sun proscribed
> ones is far above the dotnet devt outside microsoft. NOT EVEN CLOSE.

And you base that on what?

> Just looking at IDEs, in addition to all the minor commercial and open
> source players, the two big Java IDE players are both open source -
> Netbeans and Eclipse.

http://www.icsharpcode.net/OpenSource/SD/
http://www.asp.net/webmatrix/

That's 2 for .NET as well. Of course Eclipse is a much larger IDE that
encompases more than just Java.

> 2. Sun and IBM, the two Java EE biggies, are BY FAR more friendly to
> open source than microsoft.

I fail to see what that has to do with whether the language is or isn't
waning.

asj

unread,
May 9, 2006, 11:22:41 PM5/9/06
to
Erik Funkenbusch wrote:
> On 9 May 2006 14:08:15 -0700, asj wrote:
>
> > Hmmmmm.....
> >
> > 1. the amount of java development going on outside the sun proscribed
> > ones is far above the dotnet devt outside microsoft. NOT EVEN CLOSE.
>
> And you base that on what?


Ok, ERIK, take any one dotnet developer and take any one java EE
developer. Say, let's look at the IDE. What's the probability the
microsoft guy will be using the Microsoft Visual Studio for serious
projects as opposed to an open source alternative? I'll tell you:
pretty damn small.

Now, take the Java EE guy, guess what? Not only will his IDE be almost
100% open source (Eclipse or Netbeans), but almost ALL the frameworks
he'll probably choose are open source: Spring, Struts, Grails (a la
Rails), etc, etc. In fact, even the webapp server will usually be open
source. whether apache tomcat. jboss.etc.

OR, take the number of Java books on Java technologies that are open
source as a percentage of total java books. I'll tell you now just
searching through Amazon.com that you'll find open source Java
alternatives make up a BIG CHUNK of the Java books out there.
Obviously, the Javaworld makes strong use of stuff beyond Sun.

just searching for open source and java on amazon:
http://www.amazon.com/gp/search/ref=br_ss_hs/104-0009309-9718335?platform=gurupa&url=index%3Dblended&keywords=open+source+java&Go.x=0&Go.y=0&Go=Go

Now, you tell me how many of these alternative Dotnet technologies even
MAKE IT to the bookstores? There are a few but nowhere near the
ubiquity of Java open source.

Or. take the number of open source java projects. which dwarfs .net
ones and in fact is #1 in sourceforge.

So,ERIK FUNKENBUSH, stop with this java is some closed system because
i know of one system that is hell more closed and it's of course
sheparded bythat arch enemy of open source - microsoft.

>
> > Just looking at IDEs, in addition to all the minor commercial and open
> > source players, the two big Java IDE players are both open source -
> > Netbeans and Eclipse.
>
> http://www.icsharpcode.net/OpenSource/SD/
> http://www.asp.net/webmatrix/


LOL...I give Eclipse and Netbeans as examples, you give little known
projects that don't hold a candle to Microsoft Visual Studio in terms
of deployment and usage.

And it's funny that I saw this comment about the first link above:

"For commercial applications, SharpDevelop2 may not be robust enough to
use, but the product might work really well for small shops, or even
people who just like to code for fun. "

OH YEAH, those are SO MUCH like Eclipse and Netbeans.


> > 2. Sun and IBM, the two Java EE biggies, are BY FAR more friendly to
> > open source than microsoft.
>
> I fail to see what that has to do with whether the language is or isn't
> waning.

Just reminding the people here that a snake will always be a snake. E.
FUNK.

* Posted using Opera Mini Java browser on a Nokia 9300 while chuckling
at Microsofties.

chrisv

unread,
May 10, 2006, 8:27:51 AM5/10/06
to
Erik Funkenbusch wrote:

>I fail to see

What an idiot like yourself fails to see doesn't mean much.

Oliver Wong

unread,
May 10, 2006, 9:55:28 AM5/10/06
to

"Roedy Green" <my_email_is_post...@munged.invalid> wrote in
message news:53s162dhdmh8qjcm6...@4ax.com...

> On Tue, 09 May 2006 18:25:57 GMT, "Oliver Wong" <ow...@castortech.com>
> wrote, quoted or indirectly quoted someone who said :
>
>>>
>>>>> http://digg.com/programming/Why_Microsoft_s_.NET_is_about_to_fail
>>
>> I was unable to reach the above site. Guess their server is being
>>flooded by visitors.
>
> it is working from here. digg.com is 64.191.203.30

Sorry, I mispoke. It was not digg that I'm unable to reach, but the blog
that digg is linking to. Namely
http://moreambitious.blogspot.com/2006/05/why-microsoft-net-is-disappointment.html

However, I tried it again today and it's working for me now.

- Oliver

Shmuel (Seymour J.) Metz

unread,
May 10, 2006, 8:02:39 PM5/10/06
to
begin In <1147130665.2...@j73g2000cwa.googlegroups.com>, on
05/08/2006

at 04:24 PM, ericmatteson...@hotmail.com said:

>I wrote it in C for fast LINUX XWindows

^

--
Shmuel (Seymour J.) Metz, SysProg and JOAT <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action. I reserve the
right to publicly post or ridicule any abusive E-mail. Reply to
domain Patriot dot net user shmuel+news to contact me. Do not
reply to spam...@library.lspace.org

tab

unread,
May 11, 2006, 4:37:31 PM5/11/06
to
>They make money because of a legacy for lying to IBM about having a
>DOS ready to fly, not because of any great ability with Java, J++ or
>J#
--
>Canadian Mind Products, Roedy Green.
>http://mindprod.com Java custom programming, consulting and coaching.

That was freaking, years ago.

Oliver Wong

unread,
May 11, 2006, 5:37:13 PM5/11/06
to
"tab" <trental...@yahoo.com> wrote in message
news:1147379851.6...@i39g2000cwa.googlegroups.com...

> >They make money because of a legacy for lying to IBM about having a
>>DOS ready to fly, not because of any great ability with Java, J++ or
>>J#
>
> That was freaking, years ago.

If a smart guy won the lottery 20 years ago, and you ask me why he's so
rich today, I'd probably say it's because he wont the lottery 20 years ago.

Bill Gates was pretty lucky for being at the right place at the right
time.

- Oliver

DFS

unread,
May 11, 2006, 6:38:14 PM5/11/06
to
Roedy Green wrote:
> On 9 May 2006 07:48:36 -0700, "tab" <trental...@yahoo.com> wrote,
> quoted or indirectly quoted someone who said :
>
>> I guess if you got J++, you just put some wrappers on it, and call
>> it C#.
>> Microsoft is making money, Sun is not.
>
> They make money because of a legacy for lying to IBM about having a
> DOS ready to fly,

Prove it.


DFS

unread,
May 11, 2006, 6:38:01 PM5/11/06
to
tab wrote:

> I guess if you got J++, you just put some wrappers on it, and call it
> C#.

I hope you don't believe that.

http://en.wikipedia.org/wiki/C_Sharp_programming_language


DFS

unread,
May 11, 2006, 6:38:52 PM5/11/06
to

Silly. He had been working with microcomputer software for years before IBM
approached his company.

And no matter how you want to spin it, "luck" can't come close to explaining
15 years of total dominance in PC software - only smarts and great software
can do that.


>
> - Oliver

Boris Gorjan

unread,
May 12, 2006, 2:34:03 AM5/12/06
to
asj wrote:
> Erik Funkenbusch wrote:
>> On 9 May 2006 06:12:18 -0700, asj w
>>> So, what's new?
>>>
>>> Here's a new plugin to convert all dem C# apps to Java:
>>> https://net2java.dev.java.net/DNJGuide.html
>> And here's a JVM written entirely in .NET.
>
> No swing, no awt,

There _is_ awt. I don't know if it's complete (whatever that means), but I have
a working example. There a few catches, but this is how it goes:

1. Using ikvmstub you create stubs (.NET -> Java)

2. Having those stubs, you compile your java app. You can't actually run it
inside a JVM, because those are just stubs.

3. Compile your classes (also using the stubs) into ECMA CIL with ikvmc. Can't
run the so obtained "results" with .NET runtime, but ... here's the catch ...

4. Aot-compile the app (using, for example, mono --aot ...) and <drumroll/> you
have an awt app. Running natively, no less!

Now, swing is pure java, right? So you can use 3. and 4. on the whole package.

One more thing: the ikvm I'm using (the one that comes with mono), doesn't
"like" Java 1.5, yet, so I have to either use 1.4, or javac -source 1.4 ... .

Boris Gorjan

unread,
May 12, 2006, 3:33:46 AM5/12/06
to
Boris Gorjan wrote:

[snip]

> 1. Using ikvmstub you create stubs (.NET -> Java)
>
> 2. Having those stubs, you compile your java app. You can't actually run
> it inside a JVM, because those are just stubs.

BTW, you only need those stubs if you want to use some .NET functionality.
Otherwise you can do without them.

[snip]

Linonut

unread,
May 12, 2006, 7:38:06 AM5/12/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

>> If a smart guy won the lottery 20 years ago, and you ask me why
>> he's so rich today, I'd probably say it's because he wont the lottery
>> 20 years ago.
>>
>> Bill Gates was pretty lucky for being at the right place at the
>> right time.
>
> Silly. He had been working with microcomputer software for years before IBM
> approached his company.
>
> And no matter how you want to spin it, "luck" can't come close to explaining
> 15 years of total dominance in PC software - only smarts and great software
> can do that.

You need luck, too.

Bill created some of his luck by hard work, and some of it by nefarious
means.

--
Tux rocks!

Linonut

unread,
May 12, 2006, 7:38:42 AM5/12/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

> Roedy Green wrote:
>>>
>>> Microsoft is making money, Sun is not.
>>
>> They make money because of a legacy for lying to IBM about having a
>> DOS ready to fly,
>
> Prove it.

He doesn't have to. It's a matter of public record.

--
Tux rocks!

DFS

unread,
May 12, 2006, 10:38:49 AM5/12/06
to


Apparently so is the quote "640K should be enough memory for anybody" but
the reality is different:

http://www.microsoft.com/billgates/speeches/2005/04-25WinHec05.asp

Linonut

unread,
May 12, 2006, 5:38:20 PM5/12/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

>> He doesn't have to. It's a matter of public record.


>
> Apparently so is the quote "640K should be enough memory for anybody" but
> the reality is different:
>
> http://www.microsoft.com/billgates/speeches/2005/04-25WinHec05.asp

Bringing up an unrelated quote of dubious authenticity does not in the
least negate what I said.

--
Tux rocks!

DFS

unread,
May 12, 2006, 6:51:38 PM5/12/06
to

The quote is unrelated, but the circumstances are identical (actions
attributed to Bill Gates that have no factual foundation yet are repeated so
often they're taken as fact), and thus it does negate what you said. For
every reference you can find that says Microsoft lied and told IBM they
already owned an operating system for the PC (if you can even find ONE that
says that), I can find a reference that says something different, or
contradicts that.

This wiki entry, for instance: http://en.wikipedia.org/wiki/QDOS

Labeling Roedy's claim of MS "lying to IBM about having a DOS ready to fly"
a matter of public record just because it's been told over and over and over
by MS-hating *nix goons is the only dubious thing in this thread. Unless
you were there and have the actual dates and terms of the development
contract signed by IBM and Microsoft, it's just lurid fantasy for MS-haters.

Oh, and it's definitely a matter of public record that many Linux distro
vendors have promised to release code they don't yet have. Worse yet, they
won't even pay the developers for it. At least MS paid Tim Paterson $50,000
for his CP/M clone (and later hired him at MS and he got wealthy). Linux
vendors just bundle the apps and sell them with no regard whatsoever for the
developer. Now that's cutthroat, dirty OSS dealing.

Erik Funkenbusch

unread,
May 12, 2006, 7:33:12 PM5/12/06
to
On Fri, 12 May 2006 18:51:38 -0400, DFS wrote:

> This wiki entry, for instance: http://en.wikipedia.org/wiki/QDOS

Or this:

http://www.forbes.com/asap/1997/1201/070.html

"When Microsoft offered to buy DOS outright from Seattle Computer, Seattle
was a hardware company, not a software company, so it made sense to sell.
Microsoft paid $50,000. It was a good deal as far as Im concerned. DOS
became big only because of Microsofts muscle. It wouldnt have been anything
if Seattle Computer had retained ownership."

He also mentioned that he got $30 million in stock in 81 and 82 as well,
then he got even more stock options in 1990. No, Tim Patterson was robbed
all right.

DFS

unread,
May 12, 2006, 7:46:32 PM5/12/06
to

Good find - Paterson himself stating MS made DOS, not the other way around.

I think what happened is the options he had while working there in the early
80's would have been worth $30 million had he stayed around. But he left,
and lost them. Then he came back in 1990 and did OK financially - but not
$30 million OK.

Linonut

unread,
May 12, 2006, 9:25:30 PM5/12/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

> The quote is unrelated, but the circumstances are identical (actions


> attributed to Bill Gates that have no factual foundation yet are repeated so
> often they're taken as fact), and thus it does negate what you said. For
> every reference you can find that says Microsoft lied and told IBM they
> already owned an operating system for the PC (if you can even find ONE that
> says that), I can find a reference that says something different, or
> contradicts that.
>
> This wiki entry, for instance: http://en.wikipedia.org/wiki/QDOS
>
> Labeling Roedy's claim of MS "lying to IBM about having a DOS ready to fly"
> a matter of public record just because it's been told over and over and over
> by MS-hating *nix goons is the only dubious thing in this thread. Unless
> you were there and have the actual dates and terms of the development
> contract signed by IBM and Microsoft, it's just lurid fantasy for MS-haters.

Unfortunately, your wiki quote does not corroborate your claim that the
MS lie to IBM never happened. In fact, it also discredits Gates claim
about what happened with Gary Kildall.

> Oh, and it's definitely a matter of public record that many Linux distro
> vendors have promised to release code they don't yet have. Worse yet, they
> won't even pay the developers for it. At least MS paid Tim Paterson $50,000
> for his CP/M clone (and later hired him at MS and he got wealthy). Linux
> vendors just bundle the apps and sell them with no regard whatsoever for the
> developer. Now that's cutthroat, dirty OSS dealing.

It's also complete bullshit.

My belief is that you either have the Big Lie down pat, or you're just
jerking our chains.

--
Tux rocks!

Linonut

unread,
May 12, 2006, 9:28:09 PM5/12/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

> Erik Funkenbusch wrote:


>> On Fri, 12 May 2006 18:51:38 -0400, DFS wrote:
>>
>>> This wiki entry, for instance: http://en.wikipedia.org/wiki/QDOS
>>
>> Or this:
>>
>> http://www.forbes.com/asap/1997/1201/070.html
>>
>> "When Microsoft offered to buy DOS outright from Seattle Computer,
>> Seattle was a hardware company, not a software company, so it made
>> sense to sell. Microsoft paid $50,000. It was a good deal as far as
>> Im concerned. DOS became big only because of Microsofts muscle. It
>> wouldnt have been anything if Seattle Computer had retained
>> ownership."
>>
>> He also mentioned that he got $30 million in stock in 81 and 82 as
>> well, then he got even more stock options in 1990. No, Tim Patterson
>> was robbed all right.

There goes Erik, hijacking the topic again.

> Good find - Paterson himself stating MS made DOS, not the other way around.

Except that he's being a bit disingenous. He didn't sell "DOS". He
sold "QDOS".

--
Tux rocks!

DFS

unread,
May 12, 2006, 10:18:13 PM5/12/06
to
Linonut wrote:
> After takin' a swig o' grog, DFS belched out this bit o' wisdom:
>
>>
>> This wiki entry, for instance: http://en.wikipedia.org/wiki/QDOS
>>
> Unfortunately, your wiki quote does not corroborate your claim that
> the MS lie to IBM never happened.

You know what? I have to give up on this one, and accept that MS *probably*
did tell IBM they had a PC operating system they didn't actually have. Or
maybe they told them they *could develop* it, or they were working on one.
Nobody here knows what was really said or agreed to, but after reading that
MS also didn't tell QDOS developer Tim Paterson they were reselling the QDOS
port to IBM (after which Seattle Computer Products sued MS and won - how I
don't know, because by then MS owned the rights to QDOS), I've come to the
conclusion MS very likely wouldn't fully reveal just one side of a 2-sided
arrangement.

You know what else? I don't see it in any way as an indictment of
Microsoft; in fact, it shows Gates' business and technological acumen. As
far as I can discern, nothing illegal (or immoral for that matter) occurred:
delivering something after being contracted to deliver is normal business
process. The worst that can be said, and only if you're a real bleeding
heart, is they took advantage of Tim Paterson. But that's life. Because he
was small-time, Paterson wasn't in a position to know IBM was going to buy
an operating system. Microsoft was. But Microsoft paid him fairly for
rights to his code, and they paid him for the port to IBM.

Now then, does Suse ask permission from every OSS developer to include their
apps in the distros they sell and profit from?

> In fact, it also discredits Gates
> claim about what happened with Gary Kildall.

That's another story that differs from site to site to site. This page
http://www.freeenterpriseland.com/BOOK/KILDALL.html says "When IBM called,
Bill Gates told them that CP/M wasn’t his and directed them to Gary
Kildall."


>> Oh, and it's definitely a matter of public record that many Linux
>> distro vendors have promised to release code they don't yet have.
>> Worse yet, they won't even pay the developers for it. At least MS
>> paid Tim Paterson $50,000 for his CP/M clone (and later hired him at
>> MS and he got wealthy). Linux vendors just bundle the apps and sell
>> them with no regard whatsoever for the developer. Now that's
>> cutthroat, dirty OSS dealing.
>
> It's also complete bullshit.

Why? Do the distro vendors not exploit the developers? What else would you
call selling someone else's product for a profit and not giving anything
back to the people that produced the products?

You probably don't remember this closely-related exchange you and I had
2005-Apr-29, but it went like this (the thread was '64 more nails in Linux
coffin'):

"DFS: I make my own living writing my own code. I don't need to piggyback
on anybody else. I would never take wholesale batches of GPL or BSD or any
other code, slap a new name on it and try to sell it.

Linonut: That is a noble sentiment, and one I think we all agree with."


> My belief is that you either have the Big Lie down pat, or you're just
> jerking our chains.

Just talking.

Greg Cox

unread,
May 13, 2006, 12:18:08 AM5/13/06
to
In article <7ib9g.40722$iB2....@bignews4.bellsouth.net>,
nospam@dfs_.com says...

> Linonut wrote:
> > After takin' a swig o' grog, DFS belched out this bit o' wisdom:
> >
> >>
> >> This wiki entry, for instance: http://en.wikipedia.org/wiki/QDOS
> >>
> > Unfortunately, your wiki quote does not corroborate your claim that
> > the MS lie to IBM never happened.
>
> You know what? I have to give up on this one, and accept that MS *probably*
> did tell IBM they had a PC operating system they didn't actually have. Or
> maybe they told them they *could develop* it, or they were working on one.
> Nobody here knows what was really said or agreed to, but after reading that
> MS also didn't tell QDOS developer Tim Paterson they were reselling the QDOS
> port to IBM (after which Seattle Computer Products sued MS and won - how I
> don't know, because by then MS owned the rights to QDOS), I've come to the
> conclusion MS very likely wouldn't fully reveal just one side of a 2-sided
> arrangement.

I worked at Microsoft around this time so maybe I can shed a little
light on the subject. Seattle Computer Products was a local computer
hardware manufacturer. They sold, among other things, an S100 based
computer with an 8086 CPU at the heart. This used a dumb terminal for
user I/O connected via a serial line and 8 inch floppy drives. Tim
Patterson wrote QDOS but he didn't own it. He was just an employee of
Seattle Computer Products. SCP sold QDOS to Microsoft for $50,000.
Also in the contract was a provision that SCP received copies of all
future releases of MS-DOS royalty-free. I believe the interesting
paragraph centered around the right that SCP could distribute 1 copy of
MS-DOS "with each SCP computer sold". That was OK with Bill Gates since
SCP didn't sell very many computers and wouldn't hit Microsoft's bottom
line very hard.

Now skip ahead a couple of years. Microsoft is selling many many copies
of MS-DOS to OEMs such as IBM, Vector, Tandy, DEC, and Zenith, for big
$$$. Things are not so good at SCP. All those big name computer OEMs
have pretty much driven SCP out of business. The owner of SCP wants
some of those MS-DOS royalties so he sues Microsoft. Here's where SCP's
owner got creative. By this time the cost for the cheapest Intel 8088
CPU has hit around $15. He starts selling a boxed package of IBM-
compatable MS-DOS with an Intel 8088 chip in the box. By doing this he
felt he was within the requirements of the contract with Microsoft only
to include MS-DOS packaged "with an SCP computer". Now he's directly
competing with Microsoft selling Microsoft's own product at virtually no
cost to him! I also remember a rumor going around at that time that
there were a couple of major OEMs investigating whether to buy SCP for
the sole purpose of getting ownership of a contract that gave them free
copies of MS-DOS in perpetuity. This rumor may just have been spread by
SCP's owner to pressure Microsoft. I don't know. But I'm sure it made
Bill Gates sweat thinking of it...

Backed into a corner, Bill Gates settled the lawsuit by buying back the
perpetual royalty-free MS-DOS contract from SCP for a cool million
dollars. This is the only time I have heard of Bill Gates getting
nailed like this with one of his own contracts.

Now lurch back in time to cover Tim Patterson. He left SCP to join
Microsoft some months after the initial sale of QDOS but while work was
still going on getting it to run on IBM's hardware. He then went on to
fame and fortune. I saw him on TV a couple of years ago. He had
retired and was building and fighting robots. I wish I could remember
the show's name but I believe it was filmed in San Francisco.

Anyway, I don't believe there was any deception on Microsoft's part to
IBM. IBM hadn't even finialized the design when the contract was signed
so there was no way Bill Gates could claim they had anything even close
to ready at that time. In any case, IBM also contracted at the same
time for several computer languages (BASIC, FORTRAN, Pascal, and an 8086
assembler). I don't remember how much work had to be done to get BASIC
ready but the Pascal and FORTRAN compilers, both written in Pascal, as
well as the 8086 assembler had to be written from scratch. We're
talking, of course, about months of work. Given what I saw and heard at
the time, I believe that the claim that Bill Gates had told IBM that he
had an OS "ready to go" is, to put it politely, pure fiction.

Did Bill Gates tell SCP's owner about IBM before signing the QDOS
contract? I doubt it. He didn't have to. I don't even think he had
any kind of moral obligation here. IBM would certainly not have bought
QDOS directly from SCP. They would have had to assume the
responsibility of spending man-months of work to get it running on their
PC. They didn't want to do any software development in-house for the
PC. That's why they went to Microsoft in the first place. And SCP's
owner must have known Bill Gates had a customer in mind for QDOS.
$50000 was a ton of money to Microsoft in those days. Why spend that
kind of money without a plan already in place to use the product?

Anyway, that's my (long-winded) take on that period of history.

--
"There are 10 kinds of people in the world:
those that understand binary and those that don't." - Unknown

Linonut

unread,
May 13, 2006, 8:10:36 AM5/13/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

> "DFS: I make my own living writing my own code. I don't need to piggyback


> on anybody else. I would never take wholesale batches of GPL or BSD or any
> other code, slap a new name on it and try to sell it.
>
> Linonut: That is a noble sentiment, and one I think we all agree with."
>

> Just talking.

Obviously, as I am extremely doubtful that those two quotes ever
appeared together previously in any posting.

--
Tux rocks!

Linonut

unread,
May 13, 2006, 8:19:34 AM5/13/06
to
After takin' a swig o' grog, Greg Cox belched out this bit o' wisdom:

> I worked at Microsoft around this time so maybe I can shed a little
> light on the subject.
>

> . . .


>
> Did Bill Gates tell SCP's owner about IBM before signing the QDOS
> contract? I doubt it. He didn't have to. I don't even think he had
> any kind of moral obligation here. IBM would certainly not have bought
> QDOS directly from SCP. They would have had to assume the
> responsibility of spending man-months of work to get it running on their
> PC. They didn't want to do any software development in-house for the
> PC. That's why they went to Microsoft in the first place. And SCP's
> owner must have known Bill Gates had a customer in mind for QDOS.
> $50000 was a ton of money to Microsoft in those days. Why spend that
> kind of money without a plan already in place to use the product?
>
> Anyway, that's my (long-winded) take on that period of history.

Thanks.

--
Tux rocks!

M

unread,
May 13, 2006, 9:33:21 AM5/13/06
to
Greg Cox wrote:

Fascinating reading :-)

So how big was Microsoft when you started working for them?
I thought they where still working out of a garage when they signed the deal
with IBM?

The thing that I have always wondered about is how Bill Gates ever managed
to get his foot in the door and get a contract with IBM to deliver an OS? I
would have expected a company the size of IBM to only talk to other
companies that where of a 'reasonable' size.

--
Regards,
M

http://za1012001.googlepages.com/home

Greg Cox

unread,
May 13, 2006, 2:06:37 PM5/13/06
to
In article <Bel9g.68530$wl.4...@text.news.blueyonder.co.uk>,
ihatespam...@spamgourmet.com says...

I joined Microsoft in October of 1980 and was employee number thirty-
something. At that time Microsoft had a good business selling
programming languages such as BASIC, FORTRAN, and APL for the Intel 8080
to various OEMs. They were also already working on Xenix, which was
licensed UNIX Version 7 from AT&T, and had a seperate division called
Microsoft Consumer Products. MCP was selling a board for the Apple ][
that had a Z80 CPU on it. This was done so they could resell Digital
Research CP/M along with Microsoft programming languages.

>
> The thing that I have always wondered about is how Bill Gates ever managed
> to get his foot in the door and get a contract with IBM to deliver an OS? I
> would have expected a company the size of IBM to only talk to other
> companies that where of a 'reasonable' size.
>
>

The reason IBM initially came to Microsoft was for the programming
languages. Once IBM decided to farm out all the software for their PC,
it was no surprise they came to Microsoft since it was already a big
name in a very small (relatively speaking) microcomputer industry.

M

unread,
May 13, 2006, 2:57:41 PM5/13/06
to
Greg Cox wrote:

Thanks Greg :-) *Very* Interesting to talk to someone with first hand
experience of Microsoft. Seems like you have corrected some misconceptions
I had about Microsoft.

Linonut

unread,
May 13, 2006, 4:40:17 PM5/13/06
to
After takin' a swig o' grog, M belched out this bit o' wisdom:

> Greg Cox wrote:
>
>>> > I worked at Microsoft around this time so maybe I can shed a little
>>> > light on the subject.
>>>

>>> So how big was Microsoft when you started working for them?
>>> I thought they where still working out of a garage when they signed the
>>> deal with IBM?
>>
>> I joined Microsoft in October of 1980 and was employee number thirty-
>> something. At that time Microsoft had a good business selling
>> programming languages such as BASIC, FORTRAN, and APL for the Intel 8080
>> to various OEMs. They were also already working on Xenix, which was
>> licensed UNIX Version 7 from AT&T, and had a seperate division called
>> Microsoft Consumer Products. MCP was selling a board for the Apple ][
>> that had a Z80 CPU on it. This was done so they could resell Digital
>> Research CP/M along with Microsoft programming languages.
>>

>> The reason IBM initially came to Microsoft was for the programming
>> languages. Once IBM decided to farm out all the software for their PC,
>> it was no surprise they came to Microsoft since it was already a big
>> name in a very small (relatively speaking) microcomputer industry.
>>
>
> Thanks Greg :-) *Very* Interesting to talk to someone with first hand
> experience of Microsoft. Seems like you have corrected some misconceptions
> I had about Microsoft.

I remember liking Microsoft around, say 1985. Using their FORTRAN, I
thought the manual was pretty good. Didn't like DOS much, though.
Thought Windows was a cruel joke compared to my Atari ST.

About 5 years later I was coding a lot of assembler for DOS, then Win
3.0 came out, and I started using it. Transferred from Cakewalk on DOS
to Cakewalk on Windows.

In 1995, I thought Word and IE were decent, but I liked Borland's C/C++
much more than Microsoft's.

In 2001, I discovered Linux, and things got really fun.

So my question would be, as time went on, what happened to Microsoft?
In your opinion, anyway. I got kind of jaded on them when I found out
about some of the rather naughty things they were alleged to have done.

--
/\ STOP! This post has not passed Microsoft Logo testing to verify its
/ \ compatibility with Microsoft FUD. Microsoft strongly recommends
/ !! \ you stop reading this post, and consult a poster with Logo
/______\ certification. [ Continue Anyway ] [ STOP Reading ]

M

unread,
May 13, 2006, 6:00:35 PM5/13/06
to
Linonut wrote:

I thought my Atari ST was great :-) Bought a proper Assembler for it and
learnt 68000 Assembler.

DOS was OK but I used to laugh at PC's of the time because you could see
them drawing the Menus in Windows, but with both Atari and Amiga they just
appeared.

>
> About 5 years later I was coding a lot of assembler for DOS, then Win
> 3.0 came out, and I started using it. Transferred from Cakewalk on DOS
> to Cakewalk on Windows.
>
> In 1995, I thought Word and IE were decent, but I liked Borland's C/C++
> much more than Microsoft's.

When I first started writting code on a PC (they where 286) I had Mix C at
the time. However I got to a point in my project that it would not compile.
A friend had Borland C compiler, so I used that. It was a lot fussier about
prototypes, and once I got it to compile again then Mix C would compile it.
I have never really used Borland products, but to the best of my knowledge
they where always very good.

I quite liked Windows 95 and NT version 4 when they came out. I thought
Microsoft Office seem to be better than Lotus Smartsuit.

>
> In 2001, I discovered Linux, and things got really fun.
>

First time I saw linux, well that must have been somewhere around 1997. A
bloke from a US university came over and set a linux box up. It was clear
at that time you had to have quite a bit of knowledge to set one up. Took
him over half a day before everything was up and running (may be longer I
can't remember).

First time I installed Linux for myself I think was back in October 2005.

> So my question would be, as time went on, what happened to Microsoft?
> In your opinion, anyway. I got kind of jaded on them when I found out
> about some of the rather naughty things they were alleged to have done.
>

Finding out what they get up to certainly doesn't help, but for me there are
a number of reasons for being interested in linux:

1. People at work said it was really good so I decided to give it a try and
have been pleasantly surprised.
2. The Security aspect I really like. Anti-virus and Anti spyware after all
are 'shutting the stable door after the horse has bolted'.
3. Access to a free and stable OS without all that activation stuff etc.
4. Access to loads of free software, all I have to do it go to my package
manager (or visit the distro's web site for the appropriate help).

and so on...

I'm not one of these people who hates windows, I still have got windows, and
will keep it, at least for the time being. I do prefer linux, and it is now
the OS I most use when I am using my own PC's.

I suppose for 'personal use' windows is just becoming less and less
relevant, and I can only see that situation increasingly being so, as linux
and Open Source Software continues to improve.

DFS

unread,
May 13, 2006, 9:03:33 PM5/13/06
to
Thanks for the skinny.

It's interesting stuff - especially SCP selling a bundled OS and chip (I bet
that was a lesson learned).

Anyway, it sounds like most everyone came out OK: Microsoft got an OS for
IBM, Paterson got paid, and SCP got paid.

How about you? What were you doing for MS way back then?

DFS

unread,
May 13, 2006, 9:03:40 PM5/13/06
to

There's nothing wrong with accusing me of lying as long as you apologize
when you're proven wrong. I told you the thread was '64 more nails in Linux
coffin'.


Greg Cox

unread,
May 13, 2006, 9:25:51 PM5/13/06
to
In article <5lv9g.31425$QU3....@bignews8.bellsouth.net>,
nospam@dfs_.com says...

> Thanks for the skinny.
>
> It's interesting stuff - especially SCP selling a bundled OS and chip (I bet
> that was a lesson learned).
>
> Anyway, it sounds like most everyone came out OK: Microsoft got an OS for
> IBM, Paterson got paid, and SCP got paid.
>
> How about you? What were you doing for MS way back then?
>

I was originally hired to be the 2nd tech support guy. We handled tech
support for all Microsoft languages worldwide. About a year later I was
able to move into a job doing 8086 assembler. If you have heard about
the MultiTools product line, I was the guy responsible for the p-code
interpreter that executed the application code. I customized versions
of the interpreter for running on various OEM's MS-DOS computers. This
was before everyone standardized on the IBM-compatable model so each OEM
had a different I/O design for keyboard, video, etc. I also spent hours
pouring over Intel 8086/8088 manuals counting individual instruction
cycle times trying to make the interpreter as fast as possible. It was
an interesting challenge - design several different ways of coding a
function and then figure out which one executes with the lowest number
of CPU cycles...

I ended up just getting a wheelbarrow load of money out of Microsoft
when I retired in 1999. Nothing like many of the others from my era but
I'm not greedy enough to complain. I just tell myself I happened to hit
the lottery and leave it at that.

Linonut

unread,
May 14, 2006, 11:05:57 AM5/14/06
to

That's okay, you won't be able to prove it.

Even if you do, it will undoubted be taken out of context.

DFS

unread,
May 15, 2006, 9:24:29 AM5/15/06
to
Linonut wrote:
> After takin' a swig o' grog, DFS belched out this bit o' wisdom:
>
>> Linonut wrote:
>>> After takin' a swig o' grog, DFS belched out this bit o' wisdom:
>>>
>>>> "DFS: I make my own living writing my own code. I don't need to
>>>> piggyback on anybody else. I would never take wholesale batches of
>>>> GPL or BSD or any other code, slap a new name on it and try to sell
>>>> it.
>>>>
>>>> Linonut: That is a noble sentiment, and one I think we all agree
>>>> with."
>>>>
>>>> Just talking.
>>>
>>> Obviously, as I am extremely doubtful that those two quotes ever
>>> appeared together previously in any posting.
>>
>> There's nothing wrong with accusing me of lying as long as you
>> apologize when you're proven wrong. I told you the thread was '64
>> more nails in Linux coffin'.
>
> That's okay, you won't be able to prove it.

Of course I can, or I would never have said it.


> Even if you do, it will undoubted be taken out of context.

The original context was a hypothetical situation where I took Gnumeric,
altered it slightly, and sold it. I would never actually do that with
anyone's code, and you commended me for it.

But that was then; today you're talking out of a different side of your
mouth and now you say it's OK for Linux distro vendors to sell other's GPL
code.

Or have I misunderstood?


jody.g...@gmail.com

unread,
May 15, 2006, 10:58:34 AM5/15/06
to
> The original context was a hypothetical situation where I took Gnumeric,
> altered it slightly, and sold it. I would never actually do that with
> anyone's code, and you commended me for it.

As long as your alterations were publicly available there would be no
problem with the sale. This is not hypothetical. There are several
commercial entities that are using gnumeric, goffice, libgsf as part of
their offering. All are active contributors to the projects. We've
benefited from the additional developers.

Jody Goldberg
Gnumeric Maintainer.

DFS

unread,
May 15, 2006, 11:05:35 AM5/15/06
to
jody.g...@gmail.com wrote:
>> The original context was a hypothetical situation where I took
>> Gnumeric, altered it slightly, and sold it. I would never actually
>> do that with anyone's code, and you commended me for it.
>
> As long as your alterations were publicly available there would be no
> problem with the sale. This is not hypothetical.

It is for me; I would never do it.

Linonut

unread,
May 15, 2006, 12:51:34 PM5/15/06
to
After takin' a swig o' grog, DFS belched out this bit o' wisdom:

> The original context was a hypothetical situation where I took Gnumeric,


> altered it slightly, and sold it. I would never actually do that with
> anyone's code, and you commended me for it.

I sure don't remember that one.

If you altered it and sold it, that's fine, as long as you provide the
source.

> But that was then; today you're talking out of a different side of your
> mouth and now you say it's OK for Linux distro vendors to sell other's GPL
> code.

What we have here...

...is a failure

...to communicate

> Or have I misunderstood?

Actually, I've kind of lost the run of this thread.

The Ghost In The Machine

unread,
May 17, 2006, 10:34:13 AM5/17/06
to
In comp.lang.java.advocacy, asj
<kali...@yahoo.com>
wrote
on 9 May 2006 07:26:28 -0700
<1147184788....@g10g2000cwb.googlegroups.com>:
>
> Erik Funkenbusch wrote:
>> On 9 May 2006 06:12:18 -0700, asj w
>> > So, what's new?
>> >
>> > Here's a new plugin to convert all dem C# apps to Java:
>> > https://net2java.dev.java.net/DNJGuide.html
>>
>> And here's a JVM written entirely in .NET.
>
> No swing, no awt,etc, plus lax security..hmmm... however, they do note
> this will allow .net developers to develop in Java. But running the
> jvm on top of another framework - that might be one slow process! And
> what ever happened to J#? Just another flop like microsoft J++ huh?
>
> * Posted via Opera Mini Java Browser on Nokia 9300.
>

Does the JVM include the API? An interesting question.

--
#191, ewi...@earthlink.net
Windows Vista. Because it's time to refresh your hardware. Trust us.

Oliver Wong

unread,
May 18, 2006, 10:44:27 AM5/18/06
to

"The Ghost In The Machine" <ew...@sirius.tg00suus7038.net> wrote in message
news:a9orj3-...@sirius.tg00suus7038.net...

>
> Does the JVM include the API? An interesting question.

It doesn't. If you download the "JRE", you get the JVM and the class
libraries. The JVM itself does not include the class libraries.

- Oliver

Vitaly

unread,
May 18, 2006, 12:47:34 PM5/18/06
to
See:
http://www.simtel.net/product.php[id]95126[SiteID]simtel.net

It is a map of .NET to the regular JNI. The only difference is that .NET JNI
is slightly Object-Oriented.


"Oliver Wong" <ow...@castortech.com> wrote in message
news:Qn18g.10986$fV1.10597@edtnps82...
>
> "asj" <kali...@yahoo.com> wrote in message
> news:1147180338....@v46g2000cwv.googlegroups.com...


>>
>> Here's a new plugin to convert all dem C# apps to Java:
>> https://net2java.dev.java.net/DNJGuide.html
>

> I took a look at it, and it seems to require a mapping from the .NET
> API library to the J2SE API library. Unfortunately, sometimes there
> doesn't exist a one-to-one mapping between a class in one library to the
> other. The page doesn't explain what it plans to do to handle those cases.
>
> I.e. the easy parts are done, but the hard parts aren't even addressed,
> which causes me to lack confidence in this project.
>
> - Oliver


Oliver Wong

unread,
May 19, 2006, 10:14:14 AM5/19/06
to
[post reordered]

"Vitaly" <ns_c...@bezeqint.net> wrote in message
news:446c...@news.bezeqint.net...


>
> "Oliver Wong" <ow...@castortech.com> wrote in message
> news:Qn18g.10986$fV1.10597@edtnps82...
>>
>> "asj" <kali...@yahoo.com> wrote in message
>> news:1147180338....@v46g2000cwv.googlegroups.com...
>>>
>>> Here's a new plugin to convert all dem C# apps to Java:
>>> https://net2java.dev.java.net/DNJGuide.html
>>
>> I took a look at it, and it seems to require a mapping from the .NET
>> API library to the J2SE API library. Unfortunately, sometimes there
>> doesn't exist a one-to-one mapping between a class in one library to the
>> other. The page doesn't explain what it plans to do to handle those
>> cases.
>>
>> I.e. the easy parts are done, but the hard parts aren't even
>> addressed, which causes me to lack confidence in this project.
>>
> See:
> http://www.simtel.net/product.php[id]95126[SiteID]simtel.net
>
> It is a map of .NET to the regular JNI. The only difference is that .NET
> JNI is slightly Object-Oriented.

Looks like a tool for writing JNI code in C# (as opposed to unmanaged
C++). It'll let you call .NET code from within Java, but it doesn't actually
convert C# source code into Java source code.

- Oliver

0 new messages