[comp.sys.apple2] Hyper C: aux memory for anchored variables

daye@jacobs.cs.orst.edu (Garion) (01/15/91)

I really need to know the following:

	1. How does hyper c react when aux memory is freed (the ram
	   disk is disabled)?
	2. If I can free aux memory, can I store anchored variables
	   there?
	3. No one I've asked knows, but what does error 0x0a from the
	   hyper c assembler mean?  I got a brief reference to its
	   name from Andy, but I don't know what it means or what
	   to do about it.  I figure it probably is a memory overflow
	   or something, because I have a root segment of a program
	   I am working on that is about 10+K of nothing but variables.
	   I had to do this to make the variables available to all overlays
	   and so forth.

I guess it should be obvious that this aux memory is needed to store that
10K of variables so I can have room to actually run the program...a few
variables are 24x80 arrays, but I can probably eliminate at least on of
those.

Anyone have any ideas?  Maybe storing into a disk file for reference, but
I'm not experienced enough with C to do any kind of complex disk I/O stuff,
and I definitely get frustrated easily. 

Advanced thanks to all whom may reply to the e-mail address both at the
top *AND* the bottom of this article!
--
|  Internet-----           | 'I'll have to teach you a few of my spells.  I    |
|  daye@jacobs.cs.orst.edu |  have one..a fireball..let's see, how did that    |
|  daye@nyssa.cs.orst.edu  |  go..?' - If you don't know, you don't need to    |
         My opinions are my own.  I have opinions, therefore I am....

ericmcg@pnet91.cts.com (Eric Mcgillicuddy) (01/26/91)

>        1. How does hyper c react when aux memory is freed (the ram
>           disk is disabled)?
>        2. If I can free aux memory, can I store anchored variables
>           there?
>        3. No one I've asked knows, but what does error 0x0a from the
>           hyper c assembler mean?  I got a brief reference to its

I do not believe that HyperC cares that /RAM is not active, at least not with
the application running. It may have problems during development if you tell
it to use it for working files. It wasn't large enough for me so I got a 512k
board for this. I would say that there is no problem killing /RAM as long as
remember to reinstall it before quitting. (Apple's guidelines)

You can store whatever you want in aux memory, however you will have to write
your own access module in assembler to use them. Anchored variables occupy a
fixed location in memory, but the compiler assumes that they are in main
memory, you must switch banks first and you have a good chance of switching
out the code that is accessing the variables.

I would suggest that you retain /RAM, but write the variables out to the
RAMdisk as you considered doing to a floppy. This removes many of your
problems will finding a solution to your problem. If you consider the address
of an anchored variable as the offset from 0x0000 then you can use Set_Mark in
the Prodos MLI to access the same variable using the same offset within the
file on /RAM. Note that RAM disk pretty close to just as fast as 'regular'
memory and is much easier to use than aux switching. (Let the Apple
programmers worry about the nitty details of switching banks)

I can not help you with the error code, it s not listed anywhere in the
documentation. If you have a header <errors.h> perhaps this could help, I
don't know.


UUCP: bkj386!pnet91!ericmcg
INET: ericmcg@pnet91.cts.com