Cross Reference: kernel-8086.S
xref
: /
osnet-11
/
usr
/
src
/
grub
/
grub2
/
grub-core
/
tests
/
boot
/
kernel-8086.S
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
#
define
SHUTDOWN_PORT
0x8900
.
text
.
globl
_start
_start
:
base
:
.
code16
jmp
cont
portmsg
:
xorw
%
ax
, %
ax
1
:
movb
0(%
si
), %
al
test
%
ax
, %
ax
jz
1f
outb
%
al
, %
dx
incw
%
si
jmp
1
b
1
:
ret
serialmsg
:
1
:
movb
0(%
si
), %
bl
testb
%
bl
, %
bl
jz
1f
movw
$
0x3fd
, %
dx
2
:
inb
%
dx
, %
al
testb
$
0x20
, %
al
jz
2
b
movw
$
0x3f8
, %
dx
movb
%
bl
, %
al
outb
%
al
, %
dx
incw
%
si
jmp
1
b
1
:
ret
cont
:
#
ifdef
TARGET_NTLDR
movw
$
0x2000
, %
ax
#
elif
defined
(
TARGET_CHAINLOADER
)
xorw
%
ax
, %
ax
#
else
#
error
unsupported
target
#
endif
movw
%
ax
, %
ds
lea
message
, %
si
call
serialmsg
lea
shutdown
, %
si
movw
$
SHUTDOWN_PORT
, %
dx
call
portmsg
1
:
hlt
jmp
1
b
shutdown
:
.
ascii
"Shutdown"
.
byte
0
message
:
.
ascii
"Boot Test Passed Successfully\n"
SUCCESSFUL_BOOT_STRING
"\n"
.
byte
0
. =
base
+
510
.
short
0xaa55