Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!think!mit-eddie!genrad!decvax!mcnc!ecsvax!ranger From: ranger@ecsvax.UUCP (Rick N. Fincher) Newsgroups: net.micro.apple Subject: Re: //GS addressing and add on memory? Message-ID: <2136@ecsvax.UUCP> Date: Tue, 14-Oct-86 15:57:54 EDT Article-I.D.: ecsvax.2136 Posted: Tue Oct 14 15:57:54 1986 Date-Received: Mon, 20-Oct-86 23:19:33 EDT References: <8610111432.AA01300@ai.wisc.edu> <548@sdcc18.ucsd.EDU> Organization: UNC Educational Computing Service Lines: 28 > In article <8610111432.AA01300@ai.wisc.edu> neves@AI.WISC.EDU ("David M. Neves") writes: > >I have heard that the //GS has a 16 meg address space but also that it > >breaks memory up in 64K chunks. What I want to know is can I define > >big arrays (~ 1 megabyte) in C or Pascal or will I be restricted to > >arrays of size 64K (as you often see in IBM languages)? > > The 65816 sees memory as 64K banks selected by two 8-bit registers. > (A completely specified address is 8+16=24 bits long.) > Though the Memory Manager in the //gs has no trouble dealing with > chunks of memory larger than 64K, compilers may nevertheless hold > program variables to that limit. 64K is the largest array index the > chip conveniently supports. (The X and Y registers are 16 bits > long.) > > Grobbins. True, but it is entirely possible to build data structures larger than 64K in much the same way structures larger than 256 bytes are built with 8 bit registers. Hopefully the compiler designers won't be to lazy and will do this. The 65816 can do other things too because it has the capability to do absolute jumps to a 24 bit address from any bank in memory to any other address in memory. Multimegabyte data structures should be completely possible, but will be slower because of the need to use two registers to access it and increment the data bank register. Rick Fincher ranger@ecsvax.