source: trunk/libs/newlib/src/libgloss/m68k/mvme.S @ 480

Last change on this file since 480 was 444, checked in by satin@…, 7 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 3.3 KB
Line 
1/* mvme.S -- board support for m68k
2 *
3 * Copyright (c) 1995, 1996 Cygnus Support
4 *
5 * The authors hereby grant permission to use, copy, modify, distribute,
6 * and license this software and its documentation for any purpose, provided
7 * that existing copyright notices are retained in all copies and that this
8 * notice is included verbatim in any distributions. No written agreement,
9 * license, or royalty fee is required for any of the authorized uses.
10 * Modifications to this software may be copyrighted by their authors
11 * and need not follow the licensing terms described here, provided that
12 * the new terms are clearly indicated on the first page of each file where
13 * they apply.
14 */
15
16#include "asm.h"
17
18        .title "mvme.S for m68k-coff"
19
20        .align  2
21        .text
22        .global SYM (_exit)
23        .global SYM (outln)
24        .global SYM (outbyte)
25        .global SYM (putDebugChar)
26        .global SYM (inbyte)
27        .global SYM (getDebugChar)
28        .global SYM (havebyte)
29        .global SYM (exceptionHandler)
30
31        .set    vbr_size, 0x400
32        .comm   SYM (vbr_table), vbr_size
33
34/*
35 * _exit -- Exit from the application. Normally we cause a user trap
36 *          to return to the ROM monitor for another run.
37 */
38SYM (_exit):
39        unlk    a6
40        trap IMM(15)
41        .word return
42
43        .align  2
44
45/*
46 * inbyte -- get a byte from the serial port
47 *      d0 - contains the byte read in
48 */
49        .align  2
50SYM (getDebugChar):             /* symbol name used by m68k-stub */
51SYM (inbyte):
52        link    a6, IMM(-8)
53        trap    IMM(15)
54        .word   inchr
55        moveb   sp@, d0
56        extw    d0
57        extl    d0
58        unlk    a6
59        rts
60
61/*
62 * outbyte -- sends a byte out the serial port
63 *      d0 - contains the byte to be sent
64 */
65        .align  2
66SYM (putDebugChar):             /* symbol name used by m68k-stub */
67SYM (outbyte):
68        link    fp, IMM(-4)
69        moveb   fp@(11), sp@
70        trap    IMM(15)
71        .word   outchr
72        unlk    fp
73        rts
74
75/*
76 * outln -- sends a string of bytes out the serial port with a CR/LF
77 *      a0 - contains the address of the string's first byte
78 *      a1 - contains the address of the string's last byte
79 */
80        .align  2
81SYM (outln):
82        link    a6, IMM(-8)
83        moveml  a0/a1, sp@
84        trap    IMM(15)
85        .word   outln
86        unlk    a6
87        rts
88
89/*
90 * outstr -- sends a string of bytes out the serial port without a CR/LF
91 *      a0 - contains the address of the string's first byte
92 *      a1 - contains the address of the string's last byte
93 */
94        .align  2
95SYM (outstr):
96        link    a6, IMM(-8)
97        moveml  a0/a1, sp@
98        trap    IMM(15)
99        .word   outstr
100        unlk    a6
101        rts
102
103/*
104 * havebyte -- checks to see if there is a byte in the serial port,
105 *             returns 1 if there is a byte, 0 otherwise.
106 */
107SYM (havebyte):
108        trap    IMM(15)
109        .word   instat
110        beqs    empty
111        movel   IMM(1), d0
112        rts
113empty:
114        movel   IMM(0), d0
115        rts
116
117/*
118 * These constants are for the MVME-135 board's boot monitor. They
119 * are used with a TRAP 15 call to access the monitor's I/O routines.
120 * they must be in the word following the trap call.
121 */
122        .set inchr, 0x0
123        .set instat, 0x1
124        .set inln, 0x2
125        .set readstr, 0x3
126        .set readln, 0x4
127        .set chkbrk, 0x5
128
129        .set outchr, 0x20
130        .set outstr, 0x21
131        .set outln, 0x22
132        .set write, 0x23
133        .set writeln, 0x24
134        .set writdln, 0x25
135        .set pcrlf, 0x26
136        .set eraseln, 0x27
137        .set writd, 0x28
138        .set sndbrk, 0x29
139
140        .set tm_ini, 0x40
141        .set dt_ini, 0x42
142        .set tm_disp, 0x43
143        .set tm_rd, 0x44
144
145        .set redir, 0x60
146        .set redir_i, 0x61
147        .set redir_o, 0x62
148        .set return, 0x63
149        .set bindec, 0x64
150
151        .set changev, 0x67
152        .set strcmp, 0x68
153        .set mulu32, 0x69
154        .set divu32, 0x6A
155        .set chk_sum, 0x6B
Note: See TracBrowser for help on using the repository browser.