Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1.chuqui 4/7/84; site apple.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!nsc!voder!apple!north From: north@apple.UUCP (Donald N. North) Newsgroups: net.micro.mac Subject: Re: Re: 1.5 Meg Upgrade from MacMemory Message-ID: <7807@apple.UUCP> Date: Mon, 28-Oct-85 21:46:11 EST Article-I.D.: apple.7807 Posted: Mon Oct 28 21:46:11 1985 Date-Received: Wed, 30-Oct-85 05:30:36 EST References: <501@ihwpt.UUCP> <2092@amdahl.UUCP> <509@ihwpt.UUCP> <523@ihwpt.UUCP> <240@well.UUCP> Reply-To: north@apple.UUCP (Donald N. North) Distribution: net Organization: Apple Computer, Inc. Lines: 46 In article <240@well.UUCP> espen@well.UUCP (Peter Espen) writes: >In article <523@ihwpt.UUCP>, dafa@ihwpt.UUCP (David Fay) writes: >> After talking further with MacMemory and with my hardware friends, >> I would like to clarify several issues discussed in my >> previous submissions on the MacMemory 1.5 Megabyte upgrade. >> >> As several people pointed out, I was confused about how screen memory >> location is determined. In fact, screen memory location is determined >> entirely by hardware address decoding. However, in order that programs >> can know about the location of screen memory, the ROM puts a pointer to >> it in the low memory location ScreenBase. This is done by figuring out how >> much memory the Mac has, and then assuming screen memory starts a >> certain distance below the top of memory. Currently, the ROM assumes >> that a Mac can have only 128K or 512K. If you increase memory beyond >> 512K, the current ROM will set ScreenBase incorrectly, so you must >> patch it to point to the actual location of the screen memory. This is >> done by the ROMs that Levco and others provide with their upgrades. >> > > If the screen memory location is determined entirely by hardware >address decoding, then how can the Apple ROM alter the screen memory >location to point to the top of RAM for a 512K Mac? I did the Dr. Dobbs >128 to 512K upgrade on my Mac and I didn't alter any of the hardware >address decoding for screen memory at all. The only thing that the >upgrade did was add the 256K memory chips and add the address decoding >for address lines A17 and A18 to select Memory address line MA8 when > needed. My screen memory never-the-less is right up there at 7a700 >as it should be. I always assumed that was because the ROM was detecting >that I had more than 128K of memory and so was writing the ScreenBase >pointer as 7a700. I still don't understand why that ScreenBase pointer >can't be made to point to whatever the top of memory is. Perhaps >someone out there can clear this up for me. Thanks! > Peter Espen > > In the 128K/512K MAC, the RAM address decode logic only looks at the upper two bits of the address; A<23:22>='00' selects RAM. The display/sound buffers only need the low 16 word-address lines A<16:01> multiplexed (because they occupy less than 64K total). Hardware pullups keep intermediate address bits high during display refresh access memory cycles, thus the hardware location of the display will 'float' automatically to the top of any RAM memory in the low 4 MByte chunk of address space. Since memory 'wraps' from only decoding A<23:22>, a screen address base of $7A700 will handle physical memory sizes of 128K (screen at $3A700) or 512K (screen at $7A700). If one were to set the ROM-generated screenbase at $3FA700, RAM sizes of 128K - 4096K (the limit imposed by hardware) could be handled transparently to the software.