Welcome, Guest. Please login or register.

Author Topic: A1200 fast ram above 10MB, where does it go?  (Read 3138 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: A1200 fast ram above 10MB, where does it go?
« on: September 09, 2004, 12:12:39 AM »
@srg86
Quote

FAST RAM, also called Autoconfig/Zorro II expansion space:
$00200000 - $005FFFFF - this is confusing.

It's actually upto 0x009FFFFF.

Quote
at $00A00000 on the A3000 is IO space but on the A1200 is the RAM that came on a PCMCIA "credit card".

0x00A00000 is PCMCIA attribute memory. Actual RAM of PCMCIA memory card appears at 0x00600000 (upto 4MB).

Quote

If WinUAE is anything to go by, if an A1200 expansion card has 8MB on it then the system Fast RAM ends up in:
$00200000 - $009FFFFF

WinUAE doesn't emulate A3000, thus it cannot be used to determine anything about A3000.

Quote
There is also supposely (according to the RKM but not the functional spec) 16MB of Motherboard fast ram at address $7000000 on the A3000 (one of these must be right).

This is correct.

Quote
Anyway, my question is, on an A1200 with an 030/040/060 cpu and more than 10MB total RAM (chip and fast), what happeneds to the memory above 10MB?

It's mapped to 32bit area (>=0x01000000). The address depends entirely on the expansion card. Even different models map the memory to different addresses (say for example Blizzard 1230-I, 1230-II, 1230-III, 1230-IV).
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: A1200 fast ram above 10MB, where does it go?
« Reply #1 on: September 09, 2004, 09:15:02 AM »
@srg86
Quote
Quote
WinUAE doesn't emulate A3000, thus it cannot be used to determine anything about A3000.

IC, What does WinUAE emulate then, an A4000?

The basic settings emulate A500 or A2000. Other combinations aren't seen on real Amigas. Memory configuration or processor setup doesn't quite match, AutoConfig nodes are missing etc. Selecting AGA and 68020 gives close to A1200, but that lacks IDE and PCMCIA emulation...

Quote
Quote
It's mapped to 32bit area (>=0x01000000). The address depends entirely on the expansion card. Even different models map the memory to different addresses (say for example Blizzard 1230-I, 1230-II, 1230-III, 1230-IV).

I suppose you find this out by probing the 32-bit area.

No way. If you need to find memory areas you scan SysSase->MemList for memheaders. mh_Lower is the start address of specific memory area.

Quote
P.S. People moan that the PC's x86 based archetechture is complex with it's real and protected modes, but compaired to the amiga it's actually quite simple.

IMO Amiga memory system with AutoConfig(TM) is very clean and simple. PC with all sorts of segments, protected mode, extended memory is not.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: A1200 fast ram above 10MB, where does it go?
« Reply #2 on: September 09, 2004, 10:11:01 AM »
@srg86
Quote
probing shouldn't hurt

It does hurt. You get bus error exception if you try to read/write non-existing memory. Don't do it.

32bit memory has higher priority than motherboard memory, so you can use AllocMem or AllocVec to allocate it. You don't need to know where it's located, really.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: A1200 fast ram above 10MB, where does it go?
« Reply #3 on: September 09, 2004, 10:21:03 AM »
Quote
Is it just an exception that can be handled or is it like an NMI, very fatal

Regular exception.

Quote
(I am writing my own OS BTW so not using AmigaOS at the time, well that's the plan anyway).

Ok, you need to have autoconfig initialization, else expansion cards won't init (unless if you'll run hosted on top of AmigaOS). This might prove tricky, as some systems add 32bit memory manually in the resident initcode. You either need to emulate part of AmigaOS, or have custom initialization code for these special cards.

I suggest you look into linux or bsd source code for inspiration.