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