(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.