[3ae31e9] | 1 | *
|
---|
| 2 | * traps.s -- define trap linkages for C routines
|
---|
| 3 | * ------- -----------------------------------
|
---|
| 4 | * Version 8 -- 1987-06-08 -- D.N. Lynx Crowe
|
---|
| 5 | *
|
---|
| 6 | * Caution: these are serially re-useable, but NOT reentrant, so
|
---|
| 7 | * don't use them in interrupt processing code.
|
---|
| 8 | *
|
---|
| 9 | * An exception is made for ROMP in _trap15 for breakpoints so that the
|
---|
| 10 | * debug code can be debugged.
|
---|
| 11 | *
|
---|
| 12 | .text
|
---|
| 13 | *
|
---|
| 14 | .xdef _trap1
|
---|
| 15 | .xdef _trap13,_trap14
|
---|
| 16 | .xdef _xtrap15
|
---|
| 17 | *
|
---|
| 18 | .xdef tr1sav,tr13sav,tr14sav
|
---|
| 19 | .xdef tr1rmp,tr13rmp,tr14rmp
|
---|
| 20 | *
|
---|
| 21 | * _trap1 -- provide access to BDOS functions
|
---|
| 22 | * ------ --------------------------------
|
---|
| 23 | _trap1: move.l (a7)+,tr1sav * Save return address
|
---|
| 24 | trap #1 * Do the trap
|
---|
| 25 | move.l tr1sav,-(a7) * Restore return address
|
---|
| 26 | rts * Return to caller
|
---|
| 27 | *
|
---|
| 28 | * _trap13 -- provide access to BIOS functions
|
---|
| 29 | * ------- --------------------------------
|
---|
| 30 | _trap13: move.l (a7)+,tr13sav * Save return address
|
---|
| 31 | trap #13 * Do the trap
|
---|
| 32 | move.l tr13sav,-(a7) * Restore return address
|
---|
| 33 | rts * Return to caller
|
---|
| 34 | *
|
---|
| 35 | * _trap14 -- provide access to extended BIOS functions
|
---|
| 36 | * ------- -----------------------------------------
|
---|
| 37 | _trap14: move.l (a7)+,tr14sav * Save return address
|
---|
| 38 | trap #14 * Do the trap
|
---|
| 39 | move.l tr14sav,-(a7) * Restore return address
|
---|
| 40 | rts * Return to caller
|
---|
| 41 | *
|
---|
| 42 | * _xtrap15 -- Setup initial register trap for ROMP
|
---|
| 43 | * -------- ------------------------------------
|
---|
| 44 | _xtrap15: trap #15 * TRAP into ROMP
|
---|
| 45 | rts * Return (usually won't happen)
|
---|
| 46 | *
|
---|
| 47 | .page
|
---|
| 48 | *
|
---|
| 49 | * RAM storage areas
|
---|
| 50 | * -----------------
|
---|
| 51 | .bss
|
---|
| 52 | .even
|
---|
| 53 | *
|
---|
| 54 | tr1sav: ds.l 1 * Return address for trap1
|
---|
| 55 | tr13sav: ds.l 1 * Return address for trap13
|
---|
| 56 | tr14sav: ds.l 1 * Return address for trap14
|
---|
| 57 | *
|
---|
| 58 | tr1rmp: ds.l 1 * Save area for tr1sav for ROMP
|
---|
| 59 | tr13rmp: ds.l 1 * Save area for tr13sav for ROMP
|
---|
| 60 | tr14rmp: ds.l 1 * Save area for tr14sav for ROMP
|
---|
| 61 | *
|
---|
| 62 | .end
|
---|