![]() |
![]() |
![]() |
#1 |
Registered User
![]() Join Date: Aug 2016
Location: germany
Posts: 58
|
Interrupt jmp to $0
Hello,
we encountered a strange behaviour of our Amiga1000 which is also seen in the WinUAE-Emu. But the cause for this is unclear to us, so maybe someone has a clue, what WinUAE is doing exactly to have this result. situation: the code runs in kickstart-memory (fc0000->ffffff) after being called by cold-capture vector and then suddenly it is interrupted and a jump is executed to the address which is stored at $0. (see the red-marked data in the image of the winuae-debugger). the intreqr-register holds a value of $3000 which should trigger an interrupt at $78 (marked in blue in the image). we expect an interrupt for disk-handling to arrive, but this should not use the value at adress 0 for the destination. so what causes this jump to $0 /to the address there? |
![]() |
![]() |
#2 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 49
Posts: 5,098
|
Easy way to debug that.
First set a breakpoint at 0, then set history to for ex 100: Code:
f 0 H 100 |
![]() |
![]() |
#3 |
Defendit numerus
![]() Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 50
Posts: 3,127
|
My crystal ball tells me you have something like this at end of 24-bit memory:
00FFFFF0 0000 0000 0000 0000 0000 0000 0000 0000 Amiga do not use Autovector for IRQs.. |
![]() |
![]() |
#4 |
Registered User
![]() Join Date: Aug 2016
Location: germany
Posts: 58
|
not that easy ![]() the breakpoint to adress $0 will not help as the PC never reaches $0 in this scenario.. only the value from $0 is taken for the jump to the next instruction.. and i took the value as a breakpoint (as you can see in the attached screenshot)... but the "History" does not show any jump or specific command for this.. only the PC suddenly changes to the new value (see the red line in the screenshot). ![]() |
![]() |
![]() |
#5 |
Defendit numerus
![]() Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 50
Posts: 3,127
|
Ok, it took me a while but I found my post on why it happens
![]() http://eab.abime.net/showpost.php?p=1157566&postcount=8 |
![]() |
![]() |
#6 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 49
Posts: 5,098
|
oh you already know "H"... read too fast. There's also the "il" command that can breakpoint on interrupts. You can specify mask. Just ... a lot of values to try because the command doesn't tell you which interrupt did it.
|
![]() |
![]() |
#7 |
Registered User
![]() Join Date: Aug 2016
Location: germany
Posts: 58
|
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
CIA periodic interrupt | jotd | Coders. Asm / Hardware | 12 | 02 January 2021 22:22 |
Blitter interrupt during VERTB interrupt | phx | Coders. Asm / Hardware | 32 | 03 December 2017 12:34 |
Q: Copper Interrupt | Herpes | Coders. Asm / Hardware | 3 | 25 April 2016 14:31 |
Interrupt 7 | BigT | support.WinUAE | 2 | 07 September 2013 23:25 |
Level 7 interrupt | Kintaro | support.WinUAE | 1 | 21 January 2004 18:31 |
|
|