update from Mike Hibler for new VM and other machine support
[unix-history] / usr / src / sys / hp300 / stand / machdep.c
CommitLineData
a8fd2d0d
KM
1/*
2 * Copyright (c) 1988 University of Utah.
3 * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the Systems Programming Group of the University of Utah Computer
8 * Science Department.
9 *
10 * %sccs.include.redist.c%
11 *
12 * from: Utah $Hdr: machdep.c 1.6 88/05/24$
13 *
14 * @(#)machdep.c 7.1 (Berkeley) %G%
15 */
16
17#include "param.h"
18
19/*
20 * Copy bytes within kernel
21 */
22bcopy(from, to, count)
23 register caddr_t from, to;
24 register unsigned count;
25{
26 while (count--)
27 *to++ = *from++;
28}
29
30bzero(to, count)
31 register caddr_t to;
32 register unsigned count;
33{
34 while (count--)
35 *to++ = 0;
36}
37
38bcmp(s1, s2, len)
39 register char *s1, *s2;
40 register int len;
41{
42 while (len--)
43 if (*s1++ != *s2++)
44 return (1);
45 return (0);
46}
47
48trap(fp)
49 struct frame {
50 int dregs[8];
51 int aregs[8];
52 int whoknows;
53 short sr;
54 int pc;
55 short frame;
56 } *fp;
57{
58 static int intrap = 0;
59
60 if (intrap)
61 return;
62 intrap = 1;
63 romprintf("Got unexpected trap, vector = %x, ps = %x, pc = %x\n",
64 fp->frame&0xFFF, fp->sr, fp->pc);
65 romprintf("dregs: %x %x %x %x %x %x %x %x\n",
66 fp->dregs[0], fp->dregs[1], fp->dregs[2], fp->dregs[3],
67 fp->dregs[4], fp->dregs[5], fp->dregs[6], fp->dregs[7]);
68 romprintf("aregs: %x %x %x %x %x %x %x %x\n",
69 fp->aregs[0], fp->aregs[1], fp->aregs[2], fp->aregs[3],
70 fp->aregs[4], fp->aregs[5], fp->aregs[6], fp->aregs[7]);
71 intrap = 0;
72}
73
74nodev()
75{
76 return(0);
77}
78
79#ifdef ROMPRF
80#define ROWS 46
81#define COLS 128
82
83romputchar(c)
84 register int c;
85{
86 static char buf[COLS];
87 static int col = 0, row = 0;
88 register int i;
89
90 switch (c) {
91 case '\0':
92 break;
93 case '\r':
94 case '\n':
95 for (i = col; i < COLS-1; i++)
96 buf[i] = ' ';
97 buf[i] = '\0';
98 romout(row, buf);
99 col = 0;
100 if (++row == ROWS)
101 row = 0;
102 break;
103
104 case '\t':
105 do {
106 romputchar(' ');
107 } while (col & 7);
108 break;
109
110 default:
111 buf[col] = c;
112 if (++col == COLS-1)
113 romputchar('\n');
114 break;
115 }
116}
117#endif