svn commit: r186370 - user/nyan/pc98/sys/boot/pc98/btx/btxldr
Takahashi Yoshihiro
nyan at FreeBSD.org
Sat Dec 20 20:40:03 PST 2008
Author: nyan
Date: Sun Dec 21 04:40:02 2008
New Revision: 186370
URL: http://svn.freebsd.org/changeset/base/186370
Log:
MFi386: 185779:185781
Respect RBX_MUTE flag from boot2.
Modified:
user/nyan/pc98/sys/boot/pc98/btx/btxldr/btxldr.S
Modified: user/nyan/pc98/sys/boot/pc98/btx/btxldr/btxldr.S
==============================================================================
--- user/nyan/pc98/sys/boot/pc98/btx/btxldr/btxldr.S Sun Dec 21 04:34:20 2008 (r186369)
+++ user/nyan/pc98/sys/boot/pc98/btx/btxldr/btxldr.S Sun Dec 21 04:40:02 2008 (r186370)
@@ -15,6 +15,9 @@
* $FreeBSD$
*/
+#define RBX_MUTE 0x10 /* -m */
+#define OPT_SET(opt) (1 << (opt))
+
/*
* Prototype BTX loader program, written in a couple of hours. The
* real thing should probably be more flexible, and in C.
@@ -64,6 +67,8 @@
*/
start: cld # String ops inc
cli
+ testl $OPT_SET(RBX_MUTE), 4(%esp) # Check first argument
+ setnz muted # for RBX_MUTE, set flag
gdcwait.1: inb $0x60,%al
testb $0x04,%al
jz gdcwait.1
@@ -309,7 +314,9 @@ putstr: lodsb # Load char
/*
* Output character AL to the console.
*/
-putchr: pusha # Save
+putchr: testb $1,muted # Check muted
+ jnz putchr.5 # do a nop
+ pusha # Save
xorl %ecx,%ecx # Zero for loops
movb $SCR_MAT,%ah # Mode/attribute
movl $BDA_POS,%ebx # BDA pointer
@@ -353,7 +360,7 @@ gdcwait.3: inb $0x60,%al
movb %dh,%al
outb %al,$0x60
popa # Restore
- ret # To caller
+putchr.5: ret # To caller
/*
* Convert EAX, AX, or AL to hex, saving the result to [EDI].
*/
@@ -418,6 +425,12 @@ m_segs: .asciz "text segment: offset="
.asciz " memsz=\0\n"
m_done: .asciz "Loading complete\n"
#endif
+
+/*
+ * Flags
+ */
+muted: .byte 0x0
+
/*
* Uninitialized data area.
*/
More information about the svn-src-user
mailing list