| traps.s -- define trap linkages for C routines | ------- ----------------------------------- | Version 8 -- 1987-06-08 -- D.N. Lynx Crowe | Caution: these are serially re-useable, but NOT reentrant, so | don't use them in interrupt processing code. | An exception is made for ROMP in _trap15 for breakpoints so that the | debug code can be debugged. .text .xdef _trap1 .xdef _trap13,_trap14 .xdef _xtrap15 .xdef tr1sav,tr13sav,tr14sav .xdef tr1rmp,tr13rmp,tr14rmp | _trap1 -- provide access to BDOS functions | ------ -------------------------------- _trap1: move.l (a7)+,tr1sav | Save return address trap #1 | Do the trap move.l tr1sav,-(a7) | Restore return address rts | Return to caller | _trap13 -- provide access to BIOS functions | ------- -------------------------------- _trap13: move.l (a7)+,tr13sav | Save return address trap #13 | Do the trap move.l tr13sav,-(a7) | Restore return address rts | Return to caller | _trap14 -- provide access to extended BIOS functions | ------- ----------------------------------------- _trap14: move.l (a7)+,tr14sav | Save return address trap #14 | Do the trap move.l tr14sav,-(a7) | Restore return address rts | Return to caller | _xtrap15 -- Setup initial register trap for ROMP | -------- ------------------------------------ _xtrap15: trap #15 | TRAP into ROMP rts | Return (usually won't happen) .page | RAM storage areas | ----------------- .bss .even tr1sav: ds.l 1 | Return address for trap1 tr13sav: ds.l 1 | Return address for trap13 tr14sav: ds.l 1 | Return address for trap14 tr1rmp: ds.l 1 | Save area for tr1sav for ROMP tr13rmp: ds.l 1 | Save area for tr13sav for ROMP tr14rmp: ds.l 1 | Save area for tr14sav for ROMP .end