Skip to content

[Question] how to get trap parameters on stack in a handler? #5

Description

@shazz

Hi again :)

I setup the Trap vector to an address where I added the Line-A opcode to trigger a machine68k trap handler. But I cannot find the original trap params on stack...
Can you tell me what I did wrong ?

def trap_handler(self, op, pc):
    logger.info(f"Trap handler called for opcode {op:02X} @{pc:06X}")

    sp = self.machine.cpu.r_reg(15)

    trap_opcode = self.machine.mem.cpu_r16(sp - 10)
    logger.warning(f"GEMDOS trap call at {pc:06x} with stack @{sp:0X} and opcode: {trap_opcode}")

    for i in range(-16, +18, 2):
        logger.warning(f"[{i:0X}]: {self.machine.mem.cpu_r16(sp + i):0X}")

When I print the stack content based on A7, I expected to see the #$2 trap opcode but no...

2025-07-03 12:59:54.901 | INFO     | machine:instr_hook:347 - 0016d4: move.w  #$2, -(A7) | 3f3c0002
2025-07-03 12:59:54.901 | INFO     | machine:instr_hook:347 - 0016d8: trap    #$1 | 4e41584f
2025-07-03 12:59:54.901 | INFO     | machine:instr_hook:347 - fc4d48: dc.w    $a001; opcode 1010 
2025-07-03 12:59:54.901 | INFO     | __main__:trap_handler:59 - Trap handler called for opcode A001 @FC4D48
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:37 - GEMDOS trap call at fc4d48 with stack @6FA and opcode: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-10]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-E]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-C]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-A]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-8]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-6]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-4]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [-2]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [0]: 700
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [2]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [4]: 16DA
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [6]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [8]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [A]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [C]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [E]: 0
2025-07-03 12:59:54.901 | WARNING  | __main__:trap_handler:40 - [10]: 0

Thanks !

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions