Welcome, Guest. Please login or register.

Author Topic: A501 memory card detection  (Read 1209 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline kamigaTopic starter

  • Full Member
  • ***
  • Join Date: Oct 2005
  • Posts: 165
    • Show only replies by kamiga
A501 memory card detection
« on: October 24, 2013, 04:21:04 AM »
Does anyone know, besides PIN 32 on CNX (aka /EXRAM on Agnus), what checks the A500 performs to consider the A501 online and available for use?

Does the boot sequence include writing a byte/word out to the memory, and then reading it back in? Prior to making it available for use?

I've got pin 32 grounded, and booted off a workbench disk, "avail" still shows only the initial onboard 512k.

Thanks
kamiga
 

Offline AmigaClassicRule

  • Hero Member
  • *****
  • Join Date: Oct 2011
  • Posts: 956
    • Show only replies by AmigaClassicRule
Re: A501 memory card detection
« Reply #1 on: October 24, 2013, 04:30:54 AM »
Quote from: kamiga;750982
Does anyone know, besides PIN 32 on CNX (aka /EXRAM on Agnus), what checks the A500 performs to consider the A501 online and available for use?

Does the boot sequence include writing a byte/word out to the memory, and then reading it back in? Prior to making it available for use?

I've got pin 32 grounded, and booted off a workbench disk, "avail" still shows only the initial onboard 512k.

Thanks
kamiga


If you have a problem with yours...I have a spare one I can give you for free 100%. All you have to do is pay for shipping and handling which is not much and it is all yours.

I bought one thinking my A500 will come with 512 KB CHIP RAM..but it came with A501 itself...so now I have a spare one not knowing what to do with it. You can have it for free. Just pay for shipping and handling.
 

Offline Zac67

  • Hero Member
  • *****
  • Join Date: Nov 2004
  • Posts: 2890
    • Show only replies by Zac67
Re: A501 memory card detection
« Reply #2 on: October 24, 2013, 07:31:40 AM »
Detection of Chip RAM and $C0 memory works by (crudely) testing it. The _EXRAM signals Gary to map the $C00000 memory accordingly (ie. generate chip select for Agnus, link busses, etc.).
« Last Edit: October 24, 2013, 07:34:25 AM by Zac67 »
 

Offline kamigaTopic starter

  • Full Member
  • ***
  • Join Date: Oct 2005
  • Posts: 165
    • Show only replies by kamiga
Re: A501 memory card detection
« Reply #3 on: October 24, 2013, 04:08:55 PM »
Quote from: Zac67;750988
Detection of Chip RAM and $C0 memory works by (crudely) testing it. The _EXRAM signals Gary to map the $C00000 memory accordingly (ie. generate chip select for Agnus, link busses, etc.).


@ACR: Sent you a PM. I could definitely use one.

@Zac67: Thanks for this. I was thinking, "man, it would be nice to see the actual code for this, and I thought, hrrrmmmm, where would that code is located....right...in kickstart rom" ....and then I remembered this link!

http://wandel.ca/homepage/execdis/exec_disassembly.txt

        ; $C00000 Expansion RAM Checker
        ; -----------------------------

        ; The following routine checks for the presence of memory
        ; in the $C00000 - $DC0000 area.  This is a nontrivial exercise,

Looks like the relevant code is around line number 859.

Very cool.

Thanks guys.
kamiga
 

Offline psxphill

Re: A501 memory card detection
« Reply #4 on: October 24, 2013, 09:13:07 PM »
Quote from: kamiga;750982
Does anyone know, besides PIN 32 on CNX (aka /EXRAM on Agnus), what checks the A500 performs to consider the A501 online and available for use?

Kickstart writes somewhere in the c00000 range and reads the results back. IIRC if you don't have memory there then the custom chip registers appear there, so the location chosen corresponds to where one of the read only registers would appear.
 

Offline Zac67

  • Hero Member
  • *****
  • Join Date: Nov 2004
  • Posts: 2890
    • Show only replies by Zac67
Re: A501 memory card detection
« Reply #5 on: October 25, 2013, 07:39:38 PM »
Quote from: kamiga;751018
http://wandel.ca/homepage/execdis/exec_disassembly.txt


*LOL* Actually I did the very same thing with 1.3 Exec when I went to university (for a while...). I'm still amazed by how compact the code was.