[comp.lang.c] Zortech problems

nelson_p@apollo.HP.COM (Peter Nelson) (02/15/90)

   A while back I posted a question about allocating large 2
   dimensional arrays AND ACCESSING THEM AS 2 DIMENSIONAL
   ARRAYS.   Specifically, I wanted to allocate a number of
   2d arrays in which no individual array would exceed 64K
   but the total for all of them would exceed 64K.

   Compilers which support the 'huge' memory model, like 
   Microsoft's have no problem with this ....

   char array1[200][200]
   char array2[200][200]

                                             
   The Zortech runs out of memory with this.  Of course you
   can work around it by mallocating the space.  If you want
   to retain something like the desired data structure you can 
   mallocate a row of pointeres to columns of 1d arrays, etc, etc.
   But why does Zortech make you go to this trouble?

   Anyway, I've run into some other problems too:

   My application involves Cellular Automata.   Such programs 
   run for hours in graphics mode.   I also have fractal programs
   that run for a long time.   

   What if I have a 1-hour program that I want to stop after 5 
   minutes because I don't like the way it's turning out?   I could
   type Break or ctrl-C except that once Zortech enters graphics
   mode it disables this feature!  And, as far as I can tell, none
   of the "get" string or character functions (getc, getch, etc)
   Zortech supplies will return without *waiting for a keystroke*,
   so I can't write a routine which periodically checks to see if
   anyone has typed "quit" or something from the keyboard.  I imagine
   there must be some DOS call that can fix this.   But why does
   Zortech create the need to find a workaround in the first place?
   Zortech itself had no helpful suggestions on this either except to 
   reboot the machine (gee, thanks) but one of their experts is 
   going to take a closer look at this issue.

   An even more glaring problem is the apparent lack of any way
   to output text in graphics mode!!!  I was so surprised when I 
   saw this that I called the Zortech office to make sure.  They 
   confirmed it: there is no way to put text on the screen with their
   "improved" Flash Graphics package.    I'v been in the computer
   graphics biz since 1982 and I've never seen a graphics package 
   or set of graphics library calls that didn't offer some rudimentary
   text capability!   Even my $70 QuickC can output text in graphics
   mode!   

   Finally, I tried running one of my programs, which ran just fine
   on my own Hercules monochrome display, on a friend's 286 system
   with a Paradise VGA card.  Zortech sez that at fg_init time they
   check to see what kind of graphics card is present and set up
   to output to that.  No such luck.  The software mangled the timing
   of the VGA display and outputted ca-ca.   I called Zortech and they
   suggested there was something wrong with the card.   My friend has
   two kids and LOTS of game sofware and has never had any other problems.

   I've only used a tiny subset of Zortech's C and C++ and library
   features and I'm dismayed at the number of problems I've already
   found.   Right now Zortech is the only game in town for C++ on a PC. 
   But when Microsoft and Borland release their long-awaited products
   Zortech runs a serious risk of being completely blown away if it
   doesn't clean up its act fast.   

                                                  ---Peter

peter@ficc.uu.net (Peter da Silva) (02/15/90)

In article <48a441bf.20b6d@apollo.HP.COM> nelson_p@apollo.HP.COM (Peter Nelson) writes:
>    What if I have a 1-hour program that I want to stop after 5 
>    minutes because I don't like the way it's turning out?   I could
>    type Break or ctrl-C except that once Zortech enters graphics
>    mode it disables this feature!

Good for them. The way most C compilers implement 'BREAK' is a total sham.
DOS does not provide the support to do the job right, so DOS programs have
to poll the keyboard periodically looking for ^C (yes, I know it's a *little*
more complicated than that, but it comes down to checking for ^C periodically).

Since you're doing that polling anyway, why not do something like:

	while(stuff is going on)
	{
		do useful work();
		if(kbhit()) {
			switch(getch()) {
				case CTRL('C'): set exit flag;
				...
			}
		}
		if(exit flag)
			break;
	}
	clean_up_after_yourself();

After all, this is what you're doing anyway. Why not do it explicitly?

>    And, as far as I can tell, none
>    of the "get" string or character functions (getc, getch, etc)
>    Zortech supplies will return without *waiting for a keystroke*,
>    so I can't write a routine which periodically checks to see if
>    anyone has typed "quit" or something from the keyboard.

See above. kbhit() is a handful of lines long. If Zortec doesn't provide
one, a few minutes perusal of your DOS manual should handle it.

I'm directing followups to comp.sys.ibm.pc.programmer. Congratulations on
being the first resident of the new group.

>    Zortech itself had no helpful suggestions on this either except to 
>    reboot the machine (gee, thanks) but one of their experts is 
>    going to take a closer look at this issue.

Sounds like Zortech needs a few new experts.
-- 
 _--_|\  Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
/      \
\_.--._/ Xenix Support -- it's not just a job, it's an adventure!
      v  "Have you hugged your wolf today?" `-_-'

bright@Data-IO.COM (From: bright@sauk.Data-IO.COM (Walter Bright)) (02/17/90)

In article <48a441bf.20b6d@apollo.HP.COM> nelson_p@apollo.HP.COM (Peter Nelson) writes:
<   What if I have a 1-hour program that I want to stop after 5 
<   minutes because I don't like the way it's turning out?   I could
<   type Break or ctrl-C except that once Zortech enters graphics
<   mode it disables this feature!

Not hardly. The graphics package does nothing with ^C. ^C is only checked
for by DOS when you call a DOS function. The graphics package does not
call DOS. If you want ^C checking, you'll need to sprinkle in a few
calls to DOS inbetween calls to the graphics routines.

<  And, as far as I can tell, none
<   of the "get" string or character functions (getc, getch, etc)
<   Zortech supplies will return without *waiting for a keystroke*,

Notice the standard function kbhit(), on pg. 245, which does exactly this.

<   An even more glaring problem is the apparent lack of any way
<   to output text in graphics mode!!!

I suppose it's glaring if you hadn't noticed the function fg_putc()
on pg. 182.

<   Finally, I tried running one of my programs, which ran just fine
<   on my own Hercules monochrome display, on a friend's 286 system
<   with a Paradise VGA card.  Zortech sez that at fg_init time they
<   check to see what kind of graphics card is present and set up
<   to output to that.  No such luck.  The software mangled the timing
<   of the VGA display and outputted ca-ca.

This'll happen if you do not have a multisync monitor and fg_init
switches it into a mode that your monitor does not support. Set
the environment variable FG_DISPLAY to a mode that both your graphics
board *and* your monitor support. See page 177-178 of your manual.

<   I've only used a tiny subset of Zortech's C and C++ and library
<   features and I'm dismayed at the number of problems I've already
<   found.

DOS programming, graphics programming, and C++ programming are all
complex subjects. All the 'problems' you're having appear to be caused
by lack of familiarity with these topics. I recommend that you read:

	1. Zortech C++ Function Reference
	2. MS-DOS Technical Reference
	3. Programmer's Guide to PC and PS/2 Video Systems

kgreen@dukeac.UUCP (Kendall B Green) (02/18/90)

fg_puts works to output text strings to the graphic screen.
khbit works to check the keyboard for input.
I have put the following in my environment SET FG_DISPLAY=HERCFULL and
I never have any problems with fg_init not knowing what kind of display 
adapter I have.  Peter may have to change the set the environment for his
friends VGA board.

Peter Nelson should have read the Zortech manuals and studied the source 
code provided before flaming Zortech!  
-- 
Kendall B. Green
Duke University Medical Center
Durham, NC 27710
kgreen@dukeac.ac.duke.edu   or ...mcnc!escgate!dukeac!kgreen

Bob.Stout@p6.f506.n106.z1.fidonet.org (Bob Stout) (02/18/90)

In an article of <14 Feb 90 16:48:00 GMT>,  (Peter Nelson) writes:

 >   A while back I posted a question about allocating large 2 dimensional 
 >   arrays AND ACCESSING THEM AS 2 DIMENSIONAL ARRAYS.
 >   [...discussion follows of malloc'ing vs. huge model...]
 >   But why does Zortech make you go to this trouble?

  As Walter Bright pointed out, this is a philosophical difference. The ZTC  
code will run faster than code using huge pointer manipulation, though the  
latter is admittedly easier to write. The bottom line is to blame Intel for  
the segmented architecture.

 >   As far as I can tell, none of the "get" string or character functions 
 >   (getc, getch, etc) Zortech supplies will return without *waiting for a 
 >   keystroke*, so I can't write a routine which periodically checks to see 
 >   if anyone has typed something from the keyboard.  There must be some DOS 
 >   call that can fix this.   But why does  Zortech create the need to find a 
 >   workaround in the first place?

  All of the calls you mention are either ANSI or compatible with MSC/TC. The  
easiest way to do what you want is to use the kbhit() function - the same non-
ANSI function you'd use from MSC or TC. This is not a Zortech "feature", but  
one common to most popular DOS C compilers.

 >   An even more glaring problem is the apparent lack of any way
 >   to output text in graphics mode!!!  

  While you have the library reference open to look up kbhit(), you might  
flip to pages 182 and 185 and see if fg_putc() or fg_puts() might be what  
you're looking for. Amazing what goodies you can find when you look through  
the documentation! (BTW, thes functions do work as described - I tried them  
before posting the message.)

 >   Finally, I tried running one of my programs on a friend's 286 system
 >   with a Paradise VGA card.  The software mangled the timing of the VGA 
 >   display and outputted ca-ca.

  Making FG compatible with all the various cards in the aftermarket has been  
an ongoing and evolutionary process with Zortech. Rather than deal with the  
overworked, underinformed tech support folks in Boston, I suggest you contact  
Joe Huffman, the author of the FG library directly via Walter Bright's BBS at  
206-822-6907 (8 data, 1 stop, no parity, connect, then hit space twice).

 >   I've only used a tiny subset of Zortech's C and C++ and library
 >   features and I'm dismayed at the number of problems I've already
 >   found.

  As noted, reading the manual *does* help. Two of your three gripes in this  
message had answers in the documentation. Your original multi-dimensional  
array problem has its roots in the Intel segmented architecture and the  
various ways different compiler writers choose to deal with the implications.  
Again, Walter's approach is justifiable and fully documented in the manuals.

 >   Right now Zortech is the only game in town for C++ on a PC. 
 >   But when Microsoft and Borland release their long-awaited products
 >   Zortech runs a serious risk of being completely blown away if it
 >   doesn't clean up its act fast.   

  I've been using Walter's compilers for the past 5 years starting with  
Datalight C despite continuing predictions that the "next release" by Borland  
or Microsoft would blow him away. I still use his compilers because they're  
the best for the work I do (your mileage may vary). Ultimately, most people  
choose compilers based on what they're comfortable with rather than technical  
merit. People pay me to write code using all sorts of different compilers so I  
can't afford to get too comfortable with any one of them, though I will admit  
a preference for Walter's compilers. Note that my loyalty is to the compiler,  
*not* to Zortech. (I actually preferred dealing with Datalight, but that's  
water under the bridge.) 

nelson_p@apollo.HP.COM (Peter Nelson) (02/22/90)

 Walter Bright posts...

:DOS programming, graphics programming, and C++ programming are all
:complex subjects. All the 'problems' you're having appear to be caused
:by lack of familiarity with these topics. I recommend that you read:

 But remember, that ALL of these questions, and many others, were
 brought to the Zortech tech support staff first.   And were only
 passed on to the net when they didn't know the answers! 

 [ Btw, 'graphics programming' is what I do for a living; I'm quite
   certain I know at least as much about it than anyone at Zortech. 
   This does not mean that I know much about what passes for computer
   graphics in the PC world.   And the "flash graphics" library
   is Zortech's creation so it isn't unreasonable to assume that 
   they know how to make it work. ]

  ...and Peter da Silva posts
:>    Zortech itself had no helpful suggestions on this either except to 
:>    reboot the machine (gee, thanks) but one of their experts is 
:>    going to take a closer look at this issue.
:
:Sounds like Zortech needs a few new experts.

 Zortech clearly needs to bolster their tech support.  The people
 I've spoken to there have seemed sincere but I don't think there
 is a *single case* where they knew the answer to any of my 
 questions!    

 I've had better luck with their BBS.  Walter Bright and Joe Huffman
 monitor the board (I think its Walter's board) and have proven 
 very knowledgable.   But I'm unclear what their relation is with
 the company.  The company is in London, UK, and Alington, Mass. 
 Why is the BBS in Washington State?   The people in Arlington
 are a little vague on what Walter and Joe's relationship is with
 Zortech; I get the impression that they are some kind of consult-
 ants who write a lot of their code.   But Walter's "Organization:" is
 listed as "Data-IO Corporation; Redmond, WA".   Also calling a BBS
 in a distant state, and then calling back several times to see
 if anyone might have left an answer on the board and then doing
 followup questions/answers is very expensive compared to a short
 phone conversation with knowledgable staff.

 They seem to have a good product.  It is certainly much improved over
 vers. 1.07.  But their customer support is easily the WORST that
 I've ever encountered in this industry!   Given that this was the 
 single most expensive piece of software that I've ever bought I
 think I could have expected more professionalism.

 Zortech must develop an IN-HOUSE source of technical expertise.  It is very 
 unprofessional for a tech support staff to send people to a private
 BBS to answer questions about their product.   I feel like their company
 is being run as a hobby.   They can get by like this only as long as 
 they have no serious competition in C++.  That won't be for long.
                             

 Latest stumper:  My new VGA card supports 640X480 X 256 colors.  I
 called yesterday to ask them how I can write code to use more than
 16 colors.  They said they would "get back to me".    Stay tuned.
                                 
                                                 ---Peter

cs551djc@iitmax.IIT.EDU (Daniel Ciarlette) (02/22/90)

In article <48c74cd1.20b6d@apollo.HP.COM> nelson_p@apollo.HP.COM (Peter Nelson) writes:
> Walter Bright posts...
>:DOS programming, graphics programming, and C++ programming are all
>:complex subjects. All the 'problems' you're having appear to be caused

We must not forget that by Walter Bright replying to this message that it 
implies that he actually READS the stuff we post.  I wish people at 
Microsoft and Borland could give me personal service by the people that
actually write their stuff.  Also, Zortech does nothing to hide their bugs.
It's nearly impossible to get information about bugs in other compilers.
In my 2.06 upgrade I believe there was a list of bugs (and C++ v2.0 features)
that was listed to help me out.  I've never really had a problem with
Zortech's v2.0 C++ product.  But, I did find a deficiency and I posted it
to the Byte Information Exchange (BIX) on their conference.  I send it to
Walter and he responded to me.  I call that personal service.  Everyone
keeps saying that Zortech is in for problems when Borland & Microsoft
(let's not forget TopSpeed) come out with C++.  Well, I agree their support
is not the best.  It's better than a year ago.  Also, let's wait and see
how Microsoft, Borland and TopSpeed do.  C++ isn't as easy to implement as
C.

Saying the others will stomp on Zortech when they come out is like saying
Chevy's new secret line will beat out Ford's existing line of trucks.  It
may, but then why aren't they out?  Please, I am not saying Zortech's the
answer to everything.  I agree they have problems I just thought that the
word of a satisfied customer should be heard.

Dan Ciarlette

coy@ssc-vax.UUCP (Stephen B Coy) (02/23/90)

In article <48c74cd1.20b6d@apollo.HP.COM>, nelson_p@apollo.HP.COM (Peter Nelson) writes:
>  Latest stumper:  My new VGA card supports 640X480 X 256 colors.  I
>  called yesterday to ask them how I can write code to use more than
>  16 colors.  They said they would "get back to me".    Stay tuned.
>                                  
>                                                  ---Peter

Why should Zortech know anything about programming your vga card?
640x480x256 is a non-standard vga mode.  You'd be much better off
calling the board manufacturer or posting a request for code to
comp.sys.ibm.pc.  Your complaints about Zortech's support may be
justified but most of your problems would have been solved by
reading the manual.  Pour yourself a homebrew, find a fireplace,
curl up any read the manual.  Most of all, relax.  We'll all be
happier.

Stephen Coy
uw-beaver!ssc-vax!coy

bright@Data-IO.COM (Walter Bright) (02/24/90)

In article <48c74cd1.20b6d@apollo.HP.COM> nelson_p@apollo.HP.COM (Peter Nelson) writes:
< The company is in London, UK, and Alington, Mass. 
< Why is the BBS in Washington State?

	Zortech has offices in London, Arlington and Seattle. So what?

< But Walter's "Organization:" is
< listed as "Data-IO Corporation; Redmond, WA".

	Data I/O is kind enough to let me use their Usenet connection.
	Zortech doesn't have a VAX.

< They can get by like this only as long as 
< they have no serious competition in C++.  That won't be for long.

	People have been predicting the imminent demise of Zortech (and
	previously Datalight) since day 1. The usual reason given is that
	the 'next' release by Borland/Microsoft is just going to blow
	us away. Well, we've been in business for 6 years and do better
	every year. The eternal next release, when it materializes,
	usually evokes the comment "yeah, but the 'next' release ..." :-)

	The compiler was started back in 1983. The universal comment I
	got from everyone was "Why are you doing that? You can't possibly
	compete against the 'big' companies." They're quite wrong.

mark@intek01.UUCP (Mark McWiggins) (02/26/90)

gsarff@meph.UUCP (Gary Sarff) writes:

> ...  Of course this point is irrelevant to
>the actual quality of their compiler, and the fact that the pc user wanting
>C++ really doesn't have much choice _but_ Zortech...

Say WHAT!?  We sell 2.0 for the 80286 and 80386, Guidelines supports the 286
with 2.0, Glockenspiel/Oasys has a version (don't know if they're at 2.0 yet),
I think Comeau has a DOS version ...

Sounds like a lot of choices to me, unless by "pc user" you meant somebody
developing on an 8088.  Maybe it's time for The Guy With The Product List to
post his latest version.

-- 
Mark McWiggins			Integration Technologies, Inc. (Intek)
+1 206 455 9935			DISCLAIMER:  I could be wrong ...
1400 112th Ave SE #202		Bellevue WA  98004
uunet!intek01!mark		Ask me about C++!

feg@clyde.ATT.COM (Forrest Gehrke,2C-119,7239,ATTBL) (02/26/90)

In article <48cc3c8b.20b6d@apollo.HP.COM>, nelson_p@apollo.HP.COM (Peter Nelson) writes:
>  I was quite nonplussed by some email I received from Walter Bright 
>  on his BBS in Washington State in which he said that my criticism
>  of Zortech in a "public" and "insulting" manner was "not appreciated".
>  And that I should restrict my "public comments to polite requests
>  for help".
> 


This was good advice from Walter.  It was private to you.  Why tell us
about it?

>  perfectly legal C code or generate buggy results.  The Zortech product has been 
>  very well behaved.  Most of my complaints about it from a technical view-
>  point are related to features it doesn't support such as a "huge" 
>  memory model or 256 colors in 640X480 VGA.   For most people these 
>  would be minor or philosophical issues. 
>                                   

Your memory is a little short.  Your original and loudest complaints
were the result of failing to RTFM!  Walter brought that failing
to your attention.  Now you are covering with minor squawks.  Tell
me what compiler doesn't have them, even after a half dozen
releases, e.g. MSC V5.1?

Forrest Gehrke feg@clyde.ATT.COM

schwartz@dinl.uucp (Michael Schwartz) (02/28/90)

<re: other PC products>
I believe the author was referring to the major expense of both a 
C++ to C compiler, added to the cost of a C to object compiler.  
Zortech appears to have the competition beat by half ;->
Michael
-- 
-----------------------
schwartz@pogo.den.mmc.com  "Expect everything ... 
mschwartz@mmc.com                   and the unexpected never happens." 
ncar!dinl!schwartz                               --the phantom tollbooth

DISCLAIMER:  The opinions expressesed are not necessarily those of my 
	     employer or myself.