Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/vax/boot/boot Put the assembly consio routines in a...
details: https://anonhg.NetBSD.org/src/rev/1ece5c4d744f
branches: trunk
changeset: 494984:1ece5c4d744f
user: matt <matt%NetBSD.org@localhost>
date: Wed Jul 19 00:59:20 2000 +0000
description:
Put the assembly consio routines in a separate file so it can deal with
a.out/ELF differences.
diffstat:
sys/arch/vax/boot/boot/consio2.s | 127 +++++++++++++++++++++++++++++++++++++++
1 files changed, 127 insertions(+), 0 deletions(-)
diffs (131 lines):
diff -r 446df1ceb61f -r 1ece5c4d744f sys/arch/vax/boot/boot/consio2.s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/vax/boot/boot/consio2.s Wed Jul 19 00:59:20 2000 +0000
@@ -0,0 +1,127 @@
+/* $NetBSD: consio2.s,v 1.1 2000/07/19 00:59:20 matt Exp $ */
+/*
+ * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed at Ludd, University of Lule}.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <machine/asm.h>
+
+/*
+ * int rom_putchar (int c) ==> putchar() using ROM-routines
+ */
+ENTRY(rom_putchar, 0x0004) # save-mask: R2
+ movl 4(ap), r2 # move argument to R2
+ jsb *_C_LABEL(rom_putc) # write it
+ ret # that is all
+
+
+/*
+ * int rom_getchar (void) ==> getchar() using ROM-routines
+ */
+ENTRY(rom_getchar, 0x0002) # save-mask: R1
+loop: # do {
+ jsb *_C_LABEL(rom_getc) # call the getc-routine
+ tstl r0 # check if char ready
+ beql loop # } while (R0 == 0)
+ movl r1, r0 # R1 holds char
+ ret # we are done
+
+ENTRY(rom_testchar, 0)
+ mnegl $1,r0
+ jsb *_C_LABEL(rom_getc)
+ tstl r0
+ beql 1f
+ movl r1,r0
+1: ret
+
+ENTRY(_rtt, 0)
+ halt
+
+
+/*
+ * int ka630_rom_getchar (void) ==> getchar() using ROM-routines on KA630
+ */
+ENTRY(ka630_rom_getchar, 0x0802) # save-mask: R1, R11
+ movl _C_LABEL(ka630_conspage),r11 # load location of console page
+1: # do {
+ jsb *0x1C(r11) # call the getc-routine (KA630_GETC)
+ blbc r0,1b # } while (R0 == 0)
+ movl r1,r0 # R1 holds char
+ ret # we are done
+
+ENTRY(ka630_rom_testchar, 0)
+ movl _C_LABEL(ka630_conspage),r3
+ jsb *0x1C(r3)
+ blbc r0,1f
+ movl r1,r0
+1: ret
+
+/*
+ * int ka630_rom_putchar (int c) ==> putchar() using ROM-routines on KA630
+ */
+ENTRY(ka630_rom_putchar, 0x802) # save-mask: R1, R11
+ movl _C_LABEL(ka630_conspage),r11
+ # load location of console page
+1: # do {
+ jsb *0x20(r11) # is rom ready? (KA630_PUTC_POLL)
+ blbc r0,1b # } while (R0 == 0)
+ movl 4(ap),r1 # R1 holds char
+ jsb *0x24(r11) # output character (KA630_PUTC)
+ ret # we are done
+
+/*
+ * int ka53_rom_getchar (void) ==> getchar() using ROM-routines on KA53
+ */
+ENTRY(ka53_rom_getchar, 0x0802) # save-mask: R1, R11
+ movl _C_LABEL(ka53_conspage),r11
+ # load location of console page
+1: # do {
+ jsb *0x64(r11) # test for char
+ blbc r0,1b # } while (R0 == 0)
+ jsb *0x6c(r11) # get the char
+ ret # we are done
+
+ENTRY(ka53_rom_testchar, 0)
+ movl _C_LABEL(ka53_conspage),r3
+ jsb *0x64(r3)
+ blbc r0,1f
+ jsb *0x6c(r3) # get the char
+1: ret
+
+/*
+ * int ka53_rom_putchar (int c) ==> putchar() using ROM-routines on KA53
+ */
+ENTRY(ka53_rom_putchar, 0x0802) # save-mask: R1, R11
+ movl _C_LABEL(ka53_conspage),r11
+ # load location of console page
+1: # do {
+ jsb *0x20(r11) # is rom ready?
+ blbc r0,1b # } whi le (R0 == 0)
+ movl 4(ap),r1 # R1 holds char
+ jsb *0x24(r11) # output character
+ ret # we are done
Home |
Main Index |
Thread Index |
Old Index