Cygwin: dirent.h: fix a comment
[newlib-cygwin.git] / libgloss / m68k / mvme.S
blobd2ab37f4a75ede1c77eeacad462d84f0fa3db9aa
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  */
16 #include "asm.h"
18         .title "mvme.S for m68k-coff"
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)
31         .set    vbr_size, 0x400
32         .comm   SYM (vbr_table), vbr_size
35  * _exit -- Exit from the application. Normally we cause a user trap
36  *          to return to the ROM monitor for another run.
37  */
38 SYM (_exit):
39         unlk    a6
40         trap IMM(15)
41         .word return
43         .align  2
46  * inbyte -- get a byte from the serial port
47  *      d0 - contains the byte read in
48  */
49         .align  2
50 SYM (getDebugChar):             /* symbol name used by m68k-stub */
51 SYM (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
62  * outbyte -- sends a byte out the serial port
63  *      d0 - contains the byte to be sent
64  */
65         .align  2
66 SYM (putDebugChar):             /* symbol name used by m68k-stub */
67 SYM (outbyte):
68         link    fp, IMM(-4)
69         moveb   fp@(11), sp@
70         trap    IMM(15)
71         .word   outchr
72         unlk    fp
73         rts
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
81 SYM (outln):
82         link    a6, IMM(-8)
83         moveml  a0/a1, sp@
84         trap    IMM(15)
85         .word   outln
86         unlk    a6
87         rts
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
95 SYM (outstr):
96         link    a6, IMM(-8)
97         moveml  a0/a1, sp@
98         trap    IMM(15)
99         .word   outstr
100         unlk    a6
101         rts
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  */
107 SYM (havebyte):
108         trap    IMM(15)
109         .word   instat
110         beqs    empty
111         movel   IMM(1), d0
112         rts
113 empty:
114         movel   IMM(0), d0
115         rts
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
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
140         .set tm_ini, 0x40
141         .set dt_ini, 0x42
142         .set tm_disp, 0x43
143         .set tm_rd, 0x44
145         .set redir, 0x60
146         .set redir_i, 0x61
147         .set redir_o, 0x62
148         .set return, 0x63
149         .set bindec, 0x64
151         .set changev, 0x67
152         .set strcmp, 0x68
153         .set mulu32, 0x69
154         .set divu32, 0x6A
155         .set chk_sum, 0x6B