[comp.graphics] Rayshade for DOS is here!

enzerinkp@topaz.ucq.edu.au (04/16/91)

Well folks, I have Rayshade compiling and linking successfully under DOS.
Now guess what? It doesn't run! As some people have pointed out, Rayshade needs
a LOT of memory. DOS is limited to 640k normally with extra memory available
but not readily accessable. (Expanded and entended memory)

I assume that Rayshade can't find enough memory to even initialise itself, let
alone do anything. The program terminates with an:

'abnormal program termination' error.

I'm at a bit of a loss as to where to go from here. Could anyone tell me of
their experiences with memory problems on a UNIX platform so that I at least
have an idea of where I'm going.

I here that some images require megabytes of memory to complete. What happens
if your machine doesn't have that much memory?

Any coments greedily accepted!

Regards Peter

-- 
                  Hello, Hello. What's going on here then?
^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
Peter Enzerink                                       ENZERINKP@TOPAZ.UCQ.EDU.AU
University College of Central Queensland

dewolfe@ug.cs.dal.ca (Anarchy for Peace) (04/16/91)

In article <1991Apr16.121537.7023@topaz.ucq.edu.au> enzerinkp@topaz.ucq.edu.au writes:
>Well folks, I have Rayshade compiling and linking successfully under DOS.
>Now guess what? It doesn't run! As some people have pointed out, Rayshade needs
>a LOT of memory. DOS is limited to 640k normally with extra memory available
>but not readily accessable. (Expanded and entended memory)
>
>I assume that Rayshade can't find enough memory to even initialise itself, let
>alone do anything. The program terminates with an:
>
>'abnormal program termination' error.
>
>I'm at a bit of a loss as to where to go from here. Could anyone tell me of
>their experiences with memory problems on a UNIX platform so that I at least
>have an idea of where I'm going.
>
>I here that some images require megabytes of memory to complete. What happens
>if your machine doesn't have that much memory?
>

I have ported rayshade 4.0 to the Amiga and had no problems linking, compiling
or whatever.  However when I run it, I have to give it a HUGE stack.  I run
out of my default stack (4000) on even the simplest of the test images.  I have
even had to have it up around 800K for the mtv test image.  So, what you might
try doing is using the DOS stack command to set the stack higher.  As for heap
requirements, 640K will get you through some of the simpler stuff, but after
setting your stack, you won't have anywhere that much left.

I have a 4 Meg A3000, if that's any help.

--
Colin DeWolfe
dewolfe@ug.cs.dal.ca

>Any coments greedily accepted!
>
>Regards Peter
>
>-- 
>                  Hello, Hello. What's going on here then?
>^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
>Peter Enzerink                                       ENZERINKP@TOPAZ.UCQ.EDU.AU
>University College of Central Queensland

joe@proto.com (Joe Huffman) (04/17/91)

enzerinkp@topaz.ucq.edu.au writes:

>I'm at a bit of a loss as to where to go from here. Could anyone tell me of
>their experiences with memory problems on a UNIX platform so that I at least
>have an idea of where I'm going.

I did the port of the Zortech MSDOS compiler and graphics library to SCO
UNIX.  It allows you do things like:

  char *ptr = malloc(5000000); /* Yes -- 5 Megabytes */

and keep on running.  You may see the disk access light come on a lot as 
you access various portions of the memory but your malloc()'s don't start
failing nearly as quickly as they do under DOS.  And also they aren't 
limited to 64 Kbyte chunks like under DOS.

Similar things can be said for use of the Pharlap 386 DOS extender running
under DOS.  It's a refreshing change from the constraints of MSDOS memory.

If you were to use the Zortech graphics library (I wrote it -- yes I am 
pluggin my own product and am not in an unbiased position) you could compile
and run the code with very few (if any) changes under MSDOS, SCO UNIX, OS/2,
and the PharLap 386 DOS extender.

I don't know Rayshade but there are other problems that you may having 
that are unrelated to available memory -- like ints are 16 bits under DOS
but it may depend on haveing 32 bit ints.  Trace through program with a 
debugger or put enough printf()'s in the program to isolate where the error 
message is coming from.

Good luck...
-- 
joe@proto.com

Bruce.Holloway@f507.n143.z1.FIDONET.ORG (Bruce Holloway) (04/19/91)

Yeah, I had the same problem -- out of memory -- when I tried to get PBMPLUS 
working on the PC. Only with A-LOT-OF-CHANGES did I get it to work. Unix 
systems have Virtual Memory to play with. You're going to have to implement 
that in your program to get anything done. I got it working, but the 
performance was extremely poor.

My advice: Get OS/2. I understand that it has a saner method of allocating 
memory. I think it's only about $150.00 now. I don't know if C++ works under 
it.

- Bruce


--  
From: Bruce Holloway via/on Fido's Kennel, Fidonet 1:143/8
uucp: amdahl.com!kennel!507!Bruce.Holloway
arpa: Bruce.Holloway@f507.n143.z1.FIDONET.ORG