Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!cbmvax!daveh From: daveh@cbmvax.UUCP (Dave Haynie) Newsgroups: comp.sys.amiga Subject: Re: Memory and Thai questions Message-ID: <2155@cbmvax.UUCP> Date: Fri, 24-Jul-87 14:44:16 EDT Article-I.D.: cbmvax.2155 Posted: Fri Jul 24 14:44:16 1987 Date-Received: Sat, 25-Jul-87 15:38:14 EDT References: <1029@goanna.oz> Organization: Commodore Technology, West Chester, PA Lines: 51 in article <1029@goanna.oz>, ajk@goanna.oz (Alan Kent) says: > > > I have a few questions. Sorry about the length. > > o In the back of byte (BIX), it said up to 1.5megs of ram > can be autoconfigured if the memory is at $C00000. I have > got a home-brew board, but when I moved it to this address, > it didnt autoconfig. I could not even access it using a debugger. > Is $C00000 just a feature of the 500? Specific machine version? > I thought the Insider 'autoconfigured' by sitting at this > address. Does the fact that the board is inside the machine > (on the other side of some data buffers perhaps) matter? The hardware question I can answer. The RAM located at $C00000 is an AmigaOS 1.2 feature. This RAM really isn't autoconfigured in the true sense of the word. An autoconfigured board can't be assumed to exist at any address, must be relocatable, and in the current system will always be located in the $200000-$9FFFFF range or the $E80000-$EFFFFF range. It also must have /SLAVE and other complete backplane signals available in most incarnations. Memory that is located at $C00000 will be recognized by system software; basically, every 64K or so of address starting at $C00000 is examined for the presence of memory, instead of the custom chip images that usually occupy this area. The OS will allocate up to around 1.75 meg of this memory as FAST memory. This allocation will occur very early in the boot-up process, so unlike normal autoconfig memory, the OS will locate some of the early system base structures in this extra memory. As I mentioned above, though, $C00000 memory is usually occupied by the custom chips. These chips are address by the OS at the end of this range, but the granularity of the A1000 PAL-based address decoders is limited to 2 meg boundaries, so an A1000 has copies of the custom chip registers located throughout this 2 meg space. In order to get a memory board to show up in this area, you've got to disable the decoding of the custom chips for the range of your memory board. This can be done either by modifying the PAL circuitry, or by using the /OVR bus signal. Modifying the PAL circuitry is certainly not supported by Commodore-Amiga, but it can be done. The /OVR signal has the capability to "override" the decoding done by the Amiga's address decoding PALs. However, it must be asserted very fast, and the worst case for this assertion is in the overlay of the custom chips. If you can assert /OVR from an address decode in 25ns or less, you'll probably be OK; the faster the better. Also, if you do use /OVR, note that /OVR also tri-states the motherboard generated /DTACK signal, so you'll have to create a /DTACK of your own when using /OVR. The A500 achieves memory mapped into $C00000 by means of the GARY chip, which has a memory decoding granularity much finer than the PALs in the A1000. -- Dave Haynie Commodore-Amiga Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh "The A2000 Guy" PLINK : D-DAVE H BIX : hazy "Catch a wave and you're sittin' on top of the world" -Beach Boys