cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; $Id$
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;; @file
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Bootsector that prints the register status at boot.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Copyright (C) 2007-2014 Oracle Corporation
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; available from http://www.virtualbox.org. This file is free software;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; you can redistribute it and/or modify it under the terms of the GNU
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; General Public License (GPL) as published by the Free Software
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; The contents of this file may alternatively be used under the terms
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; of the Common Development and Distribution License Version 1.0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; VirtualBox OSE distribution, in which case the provisions of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; CDDL are applicable instead of those of the GPL.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; You may elect to license modified versions of this file under the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; terms and conditions of either the GPL or the CDDL or both.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "iprt/asmdefs.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "iprt/x86.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "VBox/VMMDevTesting.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Initialize in real mode, preserving the registers.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%define BS2_INIT_RM
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%define BS2_INIT_SAVE_REGS
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "bootsector2-common-init-code.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncmain:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov ax, BS2_REG_SAVE_ADDR
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call NAME(TestDumpRegisters_r86)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync xor ax, ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov al, [es:di]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov al, [es:di + 1]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov al, [es:di + 2]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov al, [es:di + 3]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push ds
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push .s_szPnpFmt1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call NAME(PrintF_r86)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync pop ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push .s_szPnpFmt2
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call NAME(PrintF_r86)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync pop ax
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync push .s_szPnpFmt3
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call NAME(PrintF_r86)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call NAME(Bs2Panic)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync.s_szPnpFmt1:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync db 'es:di -> %RX8 %RX8 %RX8 %RX8 ',0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync.s_szPnpFmt2:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync db '%c%c%c%c', 0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync.s_szPnpFmt3:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync db 13, 10, 0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Pad the image so it loads cleanly.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncBS2_PAD_IMAGE
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncthe_end:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync