khval / NallePuh

Paula audio and CIAA/CIAB emulation for AmigaOS
GNU General Public License v2.0
4 stars 0 forks source link

processor's auto-vector interrupt table #26

Closed khval closed 11 months ago

khval commented 11 months ago

These three signals correspond to seven interrupt priority levels in the 68000. If the priority of the new interrupt is greater than the current processor priority, an interrupt sequence is initiated. The priority level of the new interrupt is used to index into the top seven words of the processor address space. The odd byte (a vector number) of the indexed word is fetched and then shifted left by two to create an offset into the processor's auto-vector interrupt table. The vector offsets used are in the range of $064 to $07C.

https://wiki.amigaos.net/wiki/Exec_Interrupts

Should I monitor this table?

Hypexed commented 11 months ago

You shouldn't need too as anything using those vectors directly is hitting the hardware. Only games and WHDLoad patches that take over the system should be doing that. And anything that pokes around in 68K vectors will likely not work. It should be enough to use system interrupts and monitor any of those. It already implements audio interrupts.

khval commented 11 months ago

The thing is that we don’t know what Amiga developers do, they are all crazy. On AmigaOS4, they do not seam to be used by anything, only one vector seams to be in use for VBL I think.

the table is small. Doing the calc $7C-$64=$18+4 ($18+4)/4 = 0 to 7 interrupts. And should match the IPL0, IPL1, IPL2, lines for interrupt exception of 68000

khval commented 11 months ago

Never mind, it looks like 0x64 is protected, and it throws a DSI error, it does not even return the correct values, it looks like AmigaOS4.1 exception handler does not handle anything. It returns what ever the source address was.