[4f508e6] | 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 |
|
---|
[f40a309] | 12 | .text
|
---|
[4f508e6] | 13 |
|
---|
[f40a309] | 14 | .xdef _trap1
|
---|
| 15 | .xdef _trap13,_trap14
|
---|
| 16 | .xdef _xtrap15
|
---|
[4f508e6] | 17 |
|
---|
[f40a309] | 18 | .xdef tr1sav,tr13sav,tr14sav
|
---|
| 19 | .xdef tr1rmp,tr13rmp,tr14rmp
|
---|
[4f508e6] | 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 |
|
---|
[f40a309] | 47 | .page
|
---|
[4f508e6] | 48 |
|
---|
| 49 | | RAM storage areas
|
---|
| 50 | | -----------------
|
---|
[f40a309] | 51 | .bss
|
---|
| 52 | .even
|
---|
[4f508e6] | 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 |
|
---|
[f40a309] | 62 | .end
|
---|