View Single Post
Old 26 May 2019, 21:32   #9
BlankVector
Registered User
 
Join Date: Jun 2012
Location: France
Posts: 183
(FYI I have reimplemented AUTOCONFIG in EmuTOS. This works fine, I will push that later to official sources).

I don't know where, but for sure there is confusion here.
I followed your algorithm, I understood well the first time.
And I can check the values by using the MEM1 tab of the WinUAE debugger.

In WinUAE configuration, I select:
Settings > Hardware > ROM > Board type: New UAE (128k, ROM, Direct)

In WinUAE debug log, I can see:

Code:
Card 02: 'UAE Boot ROM'
  d2.01.40.00.19.66.00.00.02.03.00.80.00.00.00.00
  MID 6502 (1966) PID 1 (01) SER 00000203
  Z2 0x00ea0000 0x00ea0000  128K ROM 0
Note the board adddress: 0x00ea0000.
MID and PID are the ones you told me.

I'm unsure why WinUAE displays "Card 02: 'UAE Boot ROM'", I would have expected "UAE Board" here... But this is not a problem

Then after AUTOCONFIG, WinUAE displays:
00E90000 64K/1 = 64K -- F32 UAE Board
00EA0000 64K/1 = 64K -- F32 UAE Boot ROM

Then EmuTOS finds the 6502/1 board at address 0x00E90000. As I understand, until now this is correct.

Then at 0x00E90048 I see the long value 0x00EB0000.

But at 0x00EB0000, there is nothing. WinUAE debugger displays stars. So there is a problem here, this value is invalid.

Then look at the WinUAE code I quoted:
Code:
        if (aci->prefs->uaeboard > 1) {
            addr = aci->start + 0x10000;
What is that 0x10000 for ??

I have a big suspicion of bug here, because if I subtract that strange 0x10000 value to 0x00EB0000 (the long value at offset 0x48), result is 0x00EA0000 and I *do* find the UAE Boot ROM there, with usual traps, etc.

As you see, I precisely followed your algorithm. But it doesn't give the right address.
BlankVector is offline  
 
Page generated in 0.11205 seconds with 11 queries