home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.amiga.programmer
- Path: news.shlink.de!wiloyee!chaos
- From: chaos@wiloyee.shnet.org
- Subject: Re: Amiga Memory Map Needed!!!
- X-Newsreader: TIN [version 1.2 PL2]
- Organization: Studentenhochhaus Wedel Deutschland
- Message-ID: <DLJMu5.3KE@wiloyee.shnet.org>
- References: <4dl0pe$1jr0@serra.unipi.it> <13213494@sourcery.han.de>
- Date: Sun, 21 Jan 1996 18:18:04 GMT
-
-
- instead of "kewl koder$" versus oslamic programmers here is some real help:
-
-
- amiga memory map that you can count on for all existing commodore amigas
-
- $000000-$1fffff Chip RAM
- $a00000-$bfffff Hardware: CIA (parallel, serial, disk, timers, and more)
- $dff000-$dfffff Hardware: custom chips (graphic, sound, disk, ser, mouse
- and more)
- $f80000-$ffffff Kickstart ROM
-
-
- you can use this to orientate yourself, but you should NEVER rely on this.
- there is absolutely no way of telling were fast ram is, since there are a
- few dozen locations where it usually can be found, and there are even more
- strange configurations.
-
- the only practical way of gettin RAM is to call the operating system. even
- if you plan to take completly over the maschine, you need to query the OS
- for the memory location before you kick it out of your computer. so even if
- you are the worst hardware hacker, please check correctly for memory.
- it is not even safe to assume that chip ram starts at $000000, since there
- is pretty few space there if someone wants to build an Amiga with 16 MB of
- chipmem.
-
- as you see, the memory map is totally useless, but it's good to know
- anyway. if you need advice about coding the hardware, try to get the
- "hardware reference manual" from commodore. it's all in there (except AGA),
- including memory map.
-
-
- by the way, there was some guessing why $4 is the base adress of the OS. if
- we look a bit close to the memory map:
-
- $000000 Reset Vector: Initial SP
- $000004 Reset Vecotr: Initial Pc
- $000008-$0003ff Interrupt and exception vectors
- $000400- rest of chip memory
-
- $0 and $4 are only used for reset. in case of reset, a special hardware
- get's enabled that provides these vectors from ROM. therefore these RAM-
- vectors are totally useless, free memory. Commodore deceided to leave $0
- untouched and use $4 for the Exec-Base adress.
-
- $0 is a very important adress for buggy programs: if you make an error, you
- might get a pointer (or adress register) with 0. if you now use this
- NULL-Pointer, you will access $0. So it is good to have nothing important at
- this adress. if you want to check your programms for this error, simply put
- a easy to see constant in this adress, like $aaaaaaaa or $BADC0DE. if this
- number appears in one of your registers, get alarmed. if the value of adress
- $0 changes, even worse.
-
- perhaps this is the reason, why commodore used $4 and not $0.
-
-
- dierk "chaos" ohlerich
-
-