Path: utzoo!attcan!uunet!philmtl!altitude!pnt!Martin From: Martin@pnt.CAM.ORG (Martin Taillefer) Newsgroups: comp.sys.amiga Subject: Re: Amiga Modula-2 News/Comments/Info Message-ID: Date: 11 Jun 90 03:08:36 GMT References: <2045@mindlink.UUCP> <3084@crash.cts.com> Lines: 23 >In article <3084@crash.cts.com> jcs@crash.cts.com (John Schultz) writes: >In article <2045@mindlink.UUCP> a665@mindlink.UUCP (Anthon Pang) writes: >> 4) the 64K limit applies to TYPEs, too...so AllocMem'ing is not a solution. >>Except for #1, the chances of #2-4 making it into a compiler upgrade, anytime >>rsn, is close to NIL, IMHO. > > Allocating memory (using AllocMem) *is* the solution. You can declare >your type as ARRAY[0..1] of mydata and don't use range checking (who does?). >The compiler will generate the correct code, all it needs to know is the >size of your data. Untrue. As you pointed out later in your message, the access technique used by the compiler can effectively limit various sizes. For one thing, record offsets are accessed with offset(An) which clearly limits records to 32K. Arrays are also limited to this size mainly due to stuff like open array parameters which require the compiler to pass a hidden array length (to support the HIGH() function). This hidden length is passed as a 16-bit value. Offset calculations within arrays are also performed with 16-bit airthmetic. -- ------------------------------------------------------------- Martin Taillefer INTERNET: martin@pnt.CAM.ORG BIX: vertex UUCP: uunet!philmtl!altitude!pnt!martin TEL: 514/640-5734