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
|
---|